diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake index 4ee9df992..80714b8b1 100644 --- a/CMakeInstallation.cmake +++ b/CMakeInstallation.cmake @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ##### # Contains variables and settings used # by the CMake build system in order to @@ -72,7 +78,7 @@ IF(NC_DPKG) ENDMACRO(getdpkg_arch) getdpkg_arch(dpkg_arch) - SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev") + SET(CPACK_DEBIAN_PACKAGE_NAME "netcdf4-dev") SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${dpkg_arch}") SET(CPACK_DEBIAN_PACKAGE_DEPENDS "zlib1g (>= 1:1.2.3.4), libhdf5-7 (>= 1.8.11), libcurl4-openssl-dev (>= 7.22.0)") ENDIF() @@ -127,4 +133,4 @@ set(CPACK_COMPONENT_DEPENDENCIES_DESCRIPTION set(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "The NetCDF-C user documentation.") -INCLUDE(CPack) \ No newline at end of file +INCLUDE(CPack) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0374c5c6b..897d730e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1150,8 +1150,8 @@ IF (ENABLE_PARALLEL_TESTS AND NOT USE_PARALLEL) ENDIF() # Enable special filter test; experimental when using cmake. -OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" OFF) -IF(NOT ENABLE_NETCDF4) +OPTION(ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" ON) +IF(ENABLE_FILTER_TESTING AND NOT ENABLE_NETCDF_4) MESSAGE(WARNING "ENABLE_FILTER_TESTING requires netCDF-4. Disabling.") SET(ENABLE_FILTER_TESTING OFF CACHE BOOL "") ENDIF() diff --git a/COPYRIGHT b/COPYRIGHT index 099435766..af669df4d 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,39 +1,11 @@ -The NetCDF Copyright. +Copyright 2018 Unidata -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -2015, 2016 -University Corporation for Atmospheric Research/Unidata. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Portions of this software were developed by the Unidata Program at the -University Corporation for Atmospheric Research. - -Access and use of this software shall impose the following obligations -and understandings on the user. The user is granted the right, without -any fee or cost, to use, copy, modify, alter, enhance and distribute -this software, and any derivative works thereof, and its supporting -documentation for any purpose whatsoever, provided that this entire -notice appears in all copies of the software, derivative works and -supporting documentation. Further, UCAR requests that the user credit -UCAR/Unidata in any publications that result from the use of this -software or in any product that includes this software, although this -is not an obligation. The names UCAR and/or Unidata, however, may not -be used in any advertising or publicity to endorse or promote any -products or commercial entity unless specific written permission is -obtained from UCAR/Unidata. The user also understands that -UCAR/Unidata is not obligated to provide the user with any support, -consulting, training or assistance of any kind with regard to the use, -operation and performance of this software nor to provide the user -with any updates, revisions, new versions or "bug fixes." - -THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "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 UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING -FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. +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 copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER OR 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. diff --git a/CTestConfig.cmake.in b/CTestConfig.cmake.in index 6c992f34c..fd8321768 100644 --- a/CTestConfig.cmake.in +++ b/CTestConfig.cmake.in @@ -1,4 +1,10 @@ -## This file should be placed in the root directory of your project. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. +# This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. ## diff --git a/CTestCustom.cmake b/CTestCustom.cmake index 4909748ec..7483a775f 100644 --- a/CTestCustom.cmake +++ b/CTestCustom.cmake @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ## This file is used to customize CTest. ## See: ## diff --git a/FixBundle.cmake.in b/FixBundle.cmake.in index 02d43428e..d22728a01 100644 --- a/FixBundle.cmake.in +++ b/FixBundle.cmake.in @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. INCLUDE(BundleUtilities) # Set bundle to the full path name of the executable diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index bd493bd4d..61e9a4808 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -7,6 +7,9 @@ This file contains a high-level description of this package's evolution. Release ## 4.6.3 - TBD +* Update the license from the home-brewed NetCDF license to the standard 3-Clause BSD License. This change does not result in any new restrictions; it is merely the adoption of a standard, well-known and well-understood license in place of the historic NetCDF license written at Unidata. This is part of a broader push by Unidata to adopt modern, standardized licensing. + + * [BugFix][Enhancement] Modified `nccopy` so that `_NCProperties` is not copied over verbatim but is instead generated based on the version of `libnetcdf` used when copying the file. Additionally, `_NCProperties` are displayed if/when associated with a netcdf3 file, now. See [GitHub #803](https://github.com/Unidata/netcdf-c/issues/803) for more information. ## 4.6.2 - November 16, 2018 diff --git a/appveyor.yml b/appveyor.yml index e6d010faf..d61734406 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -36,7 +36,7 @@ build: off build_script: - cmd: mkdir build - cmd: cd build - - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%INSTALL_LOC% -DENABLE_BASH_SCRIPT_TESTING=OFF + - cmd: cmake .. -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%INSTALL_LOC% -DENABLE_BASH_SCRIPT_TESTING=OFF -DENABLE_FILTER_TESTING=OFF - cmd: if errorlevel 1 exit 1 - cmd: cmake --build . --config Release -- /maxcpucount:4 diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in index ace1e7122..9dc757d1a 100644 --- a/cmake_uninstall.cmake.in +++ b/cmake_uninstall.cmake.in @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. CMAKE_POLICY(SET CMP0007 OLD) if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") diff --git a/config.h.cmake.in b/config.h.cmake.in index 912495581..a806a9b00 100644 --- a/config.h.cmake.in +++ b/config.h.cmake.in @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #ifndef CONFIG_H #define CONFIG_H diff --git a/dap4_test/CMakeLists.txt b/dap4_test/CMakeLists.txt index d044b1aba..a0271057e 100644 --- a/dap4_test/CMakeLists.txt +++ b/dap4_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}) remove_definitions(-DDLL_EXPORT) diff --git a/dap4_test/Makefile.am b/dap4_test/Makefile.am index 676cb49df..bf1ab308e 100644 --- a/dap4_test/Makefile.am +++ b/dap4_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2011, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs DAP4 tests. diff --git a/dap4_test/baseline/CMakeLists.txt b/dap4_test/baseline/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/baseline/CMakeLists.txt +++ b/dap4_test/baseline/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/baselineraw/CMakeLists.txt b/dap4_test/baselineraw/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/baselineraw/CMakeLists.txt +++ b/dap4_test/baselineraw/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/baselineremote/CMakeLists.txt b/dap4_test/baselineremote/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/baselineremote/CMakeLists.txt +++ b/dap4_test/baselineremote/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/cdltestfiles/CMakeLists.txt b/dap4_test/cdltestfiles/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/cdltestfiles/CMakeLists.txt +++ b/dap4_test/cdltestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/daptestfiles/CMakeLists.txt b/dap4_test/daptestfiles/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/daptestfiles/CMakeLists.txt +++ b/dap4_test/daptestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/dmrtestfiles/CMakeLists.txt b/dap4_test/dmrtestfiles/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/dmrtestfiles/CMakeLists.txt +++ b/dap4_test/dmrtestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/misctestfiles/CMakeLists.txt b/dap4_test/misctestfiles/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/misctestfiles/CMakeLists.txt +++ b/dap4_test/misctestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/dap4_test/nctestfiles/CMakeLists.txt b/dap4_test/nctestfiles/CMakeLists.txt index 2332d8f85..85d40c3a9 100644 --- a/dap4_test/nctestfiles/CMakeLists.txt +++ b/dap4_test/nctestfiles/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 70a8bf7ad..0132cd3b0 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + ##### # Build doxygen documentation, if need be. ##### diff --git a/docs/COPYRIGHT.dox b/docs/COPYRIGHT.dox deleted file mode 100644 index 1062dd529..000000000 --- a/docs/COPYRIGHT.dox +++ /dev/null @@ -1,37 +0,0 @@ -/*! \page copyright COPYRIGHT - -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, -University Corporation for Atmospheric Research/Unidata. - -Portions of this software were developed by the Unidata Program at the -University Corporation for Atmospheric Research. - -Access and use of this software shall impose the following obligations -and understandings on the user. The user is granted the right, without -any fee or cost, to use, copy, modify, alter, enhance and distribute -this software, and any derivative works thereof, and its supporting -documentation for any purpose whatsoever, provided that this entire -notice appears in all copies of the software, derivative works and -supporting documentation. Further, UCAR requests that the user credit -UCAR/Unidata in any publications that result from the use of this -software or in any product that includes this software, although this -is not an obligation. The names UCAR and/or Unidata, however, may not -be used in any advertising or publicity to endorse or promote any -products or commercial entity unless specific written permission is -obtained from UCAR/Unidata. The user also understands that -UCAR/Unidata is not obligated to provide the user with any support, -consulting, training or assistance of any kind with regard to the use, -operation and performance of this software nor to provide the user -with any updates, revisions, new versions or "bug fixes." - -THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "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 UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, -INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING -FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. - -*/ \ No newline at end of file diff --git a/docs/COPYRIGHT.md b/docs/COPYRIGHT.md new file mode 100644 index 000000000..a1d249f5a --- /dev/null +++ b/docs/COPYRIGHT.md @@ -0,0 +1,16 @@ +COPYRIGHT {#copyright} +===================== + +Copyright 2018 Unidata + +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 copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER OR 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. + +*/ diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index 6c5e98a99..5aebe4a52 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -761,7 +761,7 @@ INPUT = \ @abs_top_srcdir@/docs/all-error-codes.md \ @abs_top_srcdir@/docs/FAQ.md \ @abs_top_srcdir@/docs/known_problems.md \ - @abs_top_srcdir@/docs/COPYRIGHT.dox \ + @abs_top_srcdir@/docs/COPYRIGHT.md \ @abs_top_srcdir@/docs/credits.md \ @abs_top_srcdir@/docs/bestpractices.md \ @abs_top_srcdir@/docs/tutorial.dox \ diff --git a/docs/Makefile.am b/docs/Makefile.am index 3290059a1..2e8ea4704 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,6 +1,10 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005-2011, see the COPYRIGHT file for more information. -# This file builds the netcdf documentation. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # These files will be included with the dist. EXTRA_DIST = netcdf.m4 DoxygenLayout.xml Doxyfile.in footer.html \ @@ -10,7 +14,7 @@ building-with-cmake.md CMakeLists.txt groups.dox install.md notes.md \ install-fortran.md all-error-codes.md credits.md auth.md \ obsolete/fan_utils.html bestpractices.md filters.md indexing.dox \ inmemory.md DAP2.dox attribute_conventions.md FAQ.md \ -file_format_specifications.md known_problems.md COPYRIGHT.dox \ +file_format_specifications.md known_problems.md COPYRIGHT.md \ user_defined_formats.md inmeminternal.dox DAP4.md DAP4.dox # Turn off parallel builds in this directory. diff --git a/docs/images/Makefile.am b/docs/images/Makefile.am index 341f444a0..4bae23ecc 100644 --- a/docs/images/Makefile.am +++ b/docs/images/Makefile.am @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + EXTRA_DIST = aqua.jpg chunking2.png compatibility3.png compression.png \ groups.png nc4-model.png ncatts.png nc-classic-uml.png nccoords.png \ ncfile.png pnetcdf.png terra.jpg netcdf_architecture.png \ diff --git a/docs/user_defined_formats.md b/docs/user_defined_formats.md index 1d874c402..f8ea7f9ad 100644 --- a/docs/user_defined_formats.md +++ b/docs/user_defined_formats.md @@ -111,4 +111,3 @@ user-defined format. (This is unnecessary if you just want to read HDF4 SD files, since the netCDF C library already includes an HDF4 SD file reader. This user-defined format library uses the same code. It is repackaged as a user-defined library to provide a working sample.) - diff --git a/examples/C/CMakeLists.txt b/examples/C/CMakeLists.txt index 191bc2d74..bea8f4c41 100644 --- a/examples/C/CMakeLists.txt +++ b/examples/C/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(exam_C_tests simple_xy_wr simple_xy_rd sfc_pres_temp_wr sfc_pres_temp_rd pres_temp_4D_wr pres_temp_4D_rd) SET(exam_C_tests_source "") FOREACH(F ${exam_C_tests}) diff --git a/examples/C/Makefile.am b/examples/C/Makefile.am index 7400f6a43..bd8c54557 100644 --- a/examples/C/Makefile.am +++ b/examples/C/Makefile.am @@ -1,5 +1,5 @@ # This is a automake file, part of Unidata's netCDF package. -# Copyright 2006, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds the C examples. diff --git a/examples/C/file.c b/examples/C/file.c index f1781d245..836f044df 100644 --- a/examples/C/file.c +++ b/examples/C/file.c @@ -1,5 +1,17 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program demonstrates various ways to create a netCDF file, open an existing file, and close a file. @@ -18,7 +30,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return e; \ -} while (0) +} while (0) #define FILENAME "test.nc" #define VARNAME "var1" @@ -31,7 +43,7 @@ int main() { /* These are netCDF IDs for file, dimension, and variable. */ - int ncid, dimid, varid; + int ncid, dimid, varid; /* This array will hold one ID for each dimension in the variable, in this case, one. */ @@ -41,7 +53,7 @@ main() int data_out[] = {0,1,2,3,4,5,6,7,8,9}; int data_in[DIMLEN]; - int i, res; + int i, res; /* Create a classic format netCDF file, overwritting any file of this name that may already exist. */ @@ -99,11 +111,10 @@ main() fprintf(stderr, "Unexpected value!\n"); return ERROR; } - + /* Close the file again. */ if ((res = nc_close(ncid))) BAIL(res); return 0; } - diff --git a/examples/C/format.c b/examples/C/format.c index 79b0f7834..555951203 100644 --- a/examples/C/format.c +++ b/examples/C/format.c @@ -1,5 +1,17 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This example shows how to create and deal with files of different netcdf formats (i.e. classic vs. 64-bit-offset). @@ -19,7 +31,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 2 #define NUMVARS 1 @@ -33,7 +45,7 @@ main() float temp[LAT_LEN][LON_LEN], *fp; char classic_file[] = "classic.nc", offset64_file[] = "offset.nc"; char *file = classic_file; - int i, res; + int i, res; /* Create a bunch of phoney data so we have something to write in the example file. */ @@ -59,12 +71,12 @@ main() BAIL(res); if ((res = nc_def_dim(ncid, "longitude", LON_LEN, &dimids[1]))) BAIL(res); - + /* Define the variable. */ - if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, + if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, dimids, &temp_varid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -79,4 +91,3 @@ main() return 0; } - diff --git a/examples/C/large_files.c b/examples/C/large_files.c index 12511aee2..d4642d709 100644 --- a/examples/C/large_files.c +++ b/examples/C/large_files.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -135,7 +146,7 @@ main() { /* create rec2Gp.nc */ for(j=0; j function, which can write any array subset of the variable. */ start[0] = rec; /* We want to write *this* record. */ - if ((res = nc_put_vara_float(ncid, temp_varid, start, count, + if ((res = nc_put_vara_float(ncid, temp_varid, start, count, (float *)temp))) BAIL(res); if ((res = nc_put_vara_float(ncid, pres_varid, start, count, (float *)pres))) BAIL(res); /* We're done writing one record. */ - } + } /* Close the file. We're done, so we can go out and see the new Harry Potter movie! */ @@ -278,4 +289,3 @@ main() return 0; } - diff --git a/examples/C/parallel_vara.c b/examples/C/parallel_vara.c index 240d28360..d958f36b3 100644 --- a/examples/C/parallel_vara.c +++ b/examples/C/parallel_vara.c @@ -188,4 +188,3 @@ fn_exit: MPI_Finalize(); return 0; } - diff --git a/examples/C/pres_temp_4D_wr.c b/examples/C/pres_temp_4D_wr.c index 7524c63b2..b2848ce2d 100644 --- a/examples/C/pres_temp_4D_wr.c +++ b/examples/C/pres_temp_4D_wr.c @@ -6,7 +6,7 @@ temperatures. It is intended to illustrate the use of the netCDF C API. The companion program pres_temp_4D_rd.c shows how to read the netCDF data file created by this program. -Copyright 2006 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -76,7 +76,7 @@ main() /* Loop indexes. */ int lvl, lat, lon, rec, i = 0; - + /* Error handling. */ int retval; @@ -87,7 +87,7 @@ main() lats[lat] = START_LAT + 5.*lat; for (lon = 0; lon < NLON; lon++) lons[lon] = START_LON + 5.*lon; - + for (lvl = 0; lvl < NLVL; lvl++) for (lat = 0; lat < NLAT; lat++) for (lon = 0; lon < NLON; lon++) @@ -118,18 +118,18 @@ main() since coordinate variables only have one dimension, we can simply provide the address of that dimension ID (&lat_dimid) and similarly for (&lon_dimid). */ - if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, + if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, + if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid))) ERR(retval); /* Assign units attributes to coordinate variables. */ - if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, strlen(DEGREES_NORTH), DEGREES_NORTH))) ERR(retval); - if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, strlen(DEGREES_EAST), DEGREES_EAST))) ERR(retval); @@ -144,18 +144,18 @@ main() /* Define the netCDF variables for the pressure and temperature * data. */ - if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, dimids, &pres_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, dimids, &temp_varid))) ERR(retval); /* Assign units attributes to the netCDF variables. */ - if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, + if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, strlen(PRES_UNITS), PRES_UNITS))) ERR(retval); - if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, + if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, strlen(TEMP_UNITS), TEMP_UNITS))) ERR(retval); @@ -188,10 +188,10 @@ main() for (rec = 0; rec < NREC; rec++) { start[0] = rec; - if ((retval = nc_put_vara_float(ncid, pres_varid, start, count, + if ((retval = nc_put_vara_float(ncid, pres_varid, start, count, &pres_out[0][0][0]))) ERR(retval); - if ((retval = nc_put_vara_float(ncid, temp_varid, start, count, + if ((retval = nc_put_vara_float(ncid, temp_varid, start, count, &temp_out[0][0][0]))) ERR(retval); } @@ -199,7 +199,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) ERR(retval); - + printf("*** SUCCESS writing example file %s!\n", FILE_NAME); return 0; } diff --git a/examples/C/quick_large_files.c b/examples/C/quick_large_files.c index 4ba7a5b39..f5aaa2989 100644 --- a/examples/C/quick_large_files.c +++ b/examples/C/quick_large_files.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program (quickly, but not thoroughly) tests the large file features. @@ -19,14 +30,14 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 1 #define NUMVARS 2 /* This dim len is the max size for an 8-byte type in 64-bit offset format: (2*32 - 4) / 8, that is, 4 GB minus a bit, on an 8 byte boundary. */ -#define DIM_LEN 536870911 +#define DIM_LEN 536870911 int main() @@ -34,7 +45,7 @@ main() int ncid, spockid, kirkid, dimids[NUMDIMS]; double val_in, val_out = 999.99; size_t index[NUMDIMS] = {DIM_LEN-1}; - int i, res; + int i, res; /* Create the netCDF 64-bit offset format file. */ if ((res = nc_create("example.nc", NC_CLOBBER|NC_64BIT_OFFSET, &ncid))) @@ -47,15 +58,15 @@ main() /* Define dimension. */ if ((res = nc_def_dim(ncid, "longdim", DIM_LEN, dimids))) BAIL(res); - + /* Define two variables. */ - if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, dimids, &spockid))) BAIL(res); - if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, dimids, &kirkid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -69,9 +80,3 @@ main() return 0; } - - - - - - diff --git a/examples/C/quick_small_files.c b/examples/C/quick_small_files.c index 9be8dab68..70f281a61 100644 --- a/examples/C/quick_small_files.c +++ b/examples/C/quick_small_files.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. This program will create a large file in netCDF classic format. From the netcdf docs: @@ -25,7 +36,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 1 #define NUMVARS 2 @@ -40,7 +51,7 @@ main() int ncid, spockid, kirkid, dimids[NUMDIMS]; double val_in, val_out = 999.99; size_t index[NUMDIMS] = {1}; - int i, res; + int i, res; /* Create the netCDF classic format file. */ if ((res = nc_create("example.nc", NC_CLOBBER, &ncid))) @@ -53,15 +64,15 @@ main() /* Define dimension. */ if ((res = nc_def_dim(ncid, "longdim", DIM_LEN, dimids))) BAIL(res); - + /* Define two variables. */ - if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "spock", NC_DOUBLE, NUMDIMS, dimids, &spockid))) BAIL(res); - if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, + if ((res = nc_def_var(ncid, "kirk", NC_DOUBLE, NUMDIMS, dimids, &kirkid))) BAIL(res); - + /* We're finished defining metadata. */ if ((res = nc_enddef(ncid))) BAIL(res); @@ -75,4 +86,3 @@ main() return 0; } - diff --git a/examples/C/run_examples.sh b/examples/C/run_examples.sh index 655314bfa..e7e08bf2c 100755 --- a/examples/C/run_examples.sh +++ b/examples/C/run_examples.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the examples. # Ed Hartnett diff --git a/examples/C/run_examples4.sh b/examples/C/run_examples4.sh index 24691af4e..5cecfa3a7 100755 --- a/examples/C/run_examples4.sh +++ b/examples/C/run_examples4.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the examples for netCDF4. # Ed Hartnett diff --git a/examples/C/run_filter.sh b/examples/C/run_filter.sh index acd2f787f..64d1a0a54 100755 --- a/examples/C/run_filter.sh +++ b/examples/C/run_filter.sh @@ -1,6 +1,10 @@ #!/bin/sh -# This shell script runs the examples for netCDF4. -# Ed Hartnett +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../../test_common.sh diff --git a/examples/C/sfc_pres_temp_more.c b/examples/C/sfc_pres_temp_more.c index 0dd51b6ef..d2780a68c 100644 --- a/examples/C/sfc_pres_temp_more.c +++ b/examples/C/sfc_pres_temp_more.c @@ -1,6 +1,6 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a simple example which writes and then reads some surface @@ -72,7 +72,7 @@ main() * applies to the entire file, not just to one variable. Don't * forget that sizeof does not include the null terminator, so if * you want it, you need to add one more byte. */ - if ((retval = nc_put_att_text(ncid, NC_GLOBAL, SONNET_NAME, + if ((retval = nc_put_att_text(ncid, NC_GLOBAL, SONNET_NAME, sizeof(poem) + 1, poem))) return retval; @@ -118,7 +118,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) return retval; - + /* Open the file and check that everything's OK. */ if ((retval = nc_open(FILE_NAME, 0, &ncid))) return retval; @@ -134,7 +134,7 @@ main() free(att_in); if (error) return -2; - + /* Read the data. */ if ((retval = nc_get_var_float(ncid, pres_varid, pres_in))) return retval; diff --git a/examples/C/sfc_pres_temp_rd.c b/examples/C/sfc_pres_temp_rd.c index 315f1bcbe..d8ff39383 100644 --- a/examples/C/sfc_pres_temp_rd.c +++ b/examples/C/sfc_pres_temp_rd.c @@ -5,8 +5,8 @@ This is an example which reads some surface pressure and temperatures. The data file read by this program is produced by the companion program sfc_pres_temp_wr.c. It is intended to illustrate the use of the netCDF C API. - -Copyright 2006 University Corporation for Atmospheric + +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -82,14 +82,14 @@ main() many netCDF variables, dimensions, and global attributes are in the file; also the dimension id of the unlimited dimension, if there is one. */ - if ((retval = nc_inq(ncid, &ndims_in, &nvars_in, &ngatts_in, + if ((retval = nc_inq(ncid, &ndims_in, &nvars_in, &ngatts_in, &unlimdimid_in))) ERR(retval); /* In this case we know that there are 2 netCDF dimensions, 4 netCDF variables, no global attributes, and no unlimited dimension. */ - if (ndims_in != 2 || nvars_in != 4 || ngatts_in != 0 || + if (ndims_in != 2 || nvars_in != 4 || ngatts_in != 0 || unlimdimid_in != -1) return 2; /* Get the varids of the latitude and longitude coordinate @@ -139,12 +139,12 @@ main() them and check them. */ if ((retval = nc_get_att_text(ncid, lat_varid, UNITS, lat_units_in))) ERR(retval); - if (strncmp(lat_units_in, LAT_UNITS, strlen(LAT_UNITS))) + if (strncmp(lat_units_in, LAT_UNITS, strlen(LAT_UNITS))) return 2; if ((retval = nc_get_att_text(ncid, lon_varid, UNITS, lon_units_in))) ERR(retval); - if (strncmp(lon_units_in, LON_UNITS, strlen(LON_UNITS))) + if (strncmp(lon_units_in, LON_UNITS, strlen(LON_UNITS))) return 2; if ((retval = nc_get_att_text(ncid, pres_varid, UNITS, pres_units_in))) diff --git a/examples/C/sfc_pres_temp_wr.c b/examples/C/sfc_pres_temp_wr.c index 9928368a4..803baf0a4 100644 --- a/examples/C/sfc_pres_temp_wr.c +++ b/examples/C/sfc_pres_temp_wr.c @@ -5,8 +5,8 @@ This example writes some surface pressure and temperatures. It is intended to illustrate the use of the netCDF C API. The companion program sfc_pres_temp_rd.c shows how to read the netCDF data file created by this program. - -Copyright 2006 University Corporation for Atmospheric + +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. */ @@ -68,7 +68,7 @@ main() /* Loop indexes. */ int lat, lon; - + /* Error handling. */ int retval; @@ -79,7 +79,7 @@ main() lats[lat] = START_LAT + 5.*lat; for (lon = 0; lon < NLON; lon++) lons[lon] = START_LON + 5.*lon; - + for (lat = 0; lat < NLAT; lat++) for (lon = 0; lon < NLON; lon++) { @@ -100,10 +100,10 @@ main() /* Define coordinate netCDF variables. They will hold the coordinate information, that is, the latitudes and longitudes. A varid is returned for each.*/ - if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, + if ((retval = nc_def_var(ncid, LAT_NAME, NC_FLOAT, 1, &lat_dimid, &lat_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, + if ((retval = nc_def_var(ncid, LON_NAME, NC_FLOAT, 1, &lon_dimid, &lon_varid))) ERR(retval); @@ -114,10 +114,10 @@ main() not use null-terminated strings. In general it is up to the reading C program to ensure that it puts null-terminators on strings where necessary.*/ - if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lat_varid, UNITS, strlen(DEGREES_NORTH), DEGREES_NORTH))) ERR(retval); - if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, + if ((retval = nc_put_att_text(ncid, lon_varid, UNITS, strlen(DEGREES_EAST), DEGREES_EAST))) ERR(retval); @@ -125,18 +125,18 @@ main() the dimids of the dimensions of the variables.*/ dimids[0] = lat_dimid; dimids[1] = lon_dimid; - if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, PRES_NAME, NC_FLOAT, NDIMS, dimids, &pres_varid))) ERR(retval); - if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, + if ((retval = nc_def_var(ncid, TEMP_NAME, NC_FLOAT, NDIMS, dimids, &temp_varid))) ERR(retval); /* Define units attributes for vars. */ - if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, + if ((retval = nc_put_att_text(ncid, pres_varid, UNITS, strlen(pres_units), pres_units))) ERR(retval); - if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, + if ((retval = nc_put_att_text(ncid, temp_varid, UNITS, strlen(temp_units), temp_units))) ERR(retval); @@ -162,7 +162,7 @@ main() /* Close the file. */ if ((retval = nc_close(ncid))) ERR(retval); - + printf("*** SUCCESS writing example file sfc_pres_temp.nc!\n"); return 0; } diff --git a/examples/C/simple.c b/examples/C/simple.c index a2a3db3ab..609159674 100644 --- a/examples/C/simple.c +++ b/examples/C/simple.c @@ -1,5 +1,16 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This example program is part of Unidata's netCDF library for - scientific data access. + scientific data access. How about a short, but meaningful, netCDF program? @@ -18,7 +29,7 @@ printf("Bailing out in file %s, line %d, error:%s.\n", \ __FILE__, __LINE__, nc_strerror(e)); \ return NC_EXAMPLE_ERROR; \ -} while (0) +} while (0) #define NUMDIMS 2 #define NUMVARS 1 @@ -31,7 +42,7 @@ main() { int ncid, temp_varid, dimids[NUMDIMS]; float temp[LAT_LEN][LON_LEN], *fp; - int i, res; + int i, res; /* Create a bunch of phoney data so we have something to write in the example file. */ @@ -47,14 +58,14 @@ main() BAIL(res); if ((res = nc_def_dim(ncid, "longitude", LON_LEN, &dimids[1]))) BAIL(res); - + /* Define the variable. */ - if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, + if ((res = nc_def_var(ncid, "sfc_temp", NC_FLOAT, NUMDIMS, dimids, &temp_varid))) BAIL(res); - + /* We'll store the units. */ - if ((res = nc_put_att_text(ncid, temp_varid, "units", + if ((res = nc_put_att_text(ncid, temp_varid, "units", strlen(CELSIUS), CELSIUS))) BAIL(res); @@ -71,4 +82,3 @@ main() return 0; } - diff --git a/examples/C/simple_nc4_rd.c b/examples/C/simple_nc4_rd.c index cf2adc031..55768cefc 100644 --- a/examples/C/simple_nc4_rd.c +++ b/examples/C/simple_nc4_rd.c @@ -7,7 +7,7 @@ features of netCDF-4.0. This example reads a simple file created by simple_nc4_wr.c. This is intended to illustrate the use of the netCDF-4 C API. -This is part of the netCDF package. Copyright 2006-2011 University +This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. Full documentation of the netCDF can be found at http://www.unidata.ucar.edu/software/netcdf/docs. @@ -41,7 +41,7 @@ main() int x, y, retval; /* The following struct is written as a compound type. */ - struct s1 + struct s1 { int i1; int i2; @@ -61,7 +61,7 @@ main() /* Get the varid of the uint64 data variable, based on its name, in * grp1. */ - if ((retval = nc_inq_varid(grp1id, "data", &varid1))) + if ((retval = nc_inq_varid(grp1id, "data", &varid1))) ERR(retval); /* Read the data. */ @@ -70,7 +70,7 @@ main() /* Get the varid of the compound data variable, based on its name, * in grp2. */ - if ((retval = nc_inq_varid(grp2id, "data", &varid2))) + if ((retval = nc_inq_varid(grp2id, "data", &varid2))) ERR(retval); /* Read the data. */ diff --git a/examples/C/simple_nc4_wr.c b/examples/C/simple_nc4_wr.c index b14b822ad..407db6db7 100644 --- a/examples/C/simple_nc4_wr.c +++ b/examples/C/simple_nc4_wr.c @@ -6,7 +6,7 @@ some netCDF variables in different subgroups. The variables will include a compound and an enum type, as well as some of the new atomic types, like the unsigned 64-bit integer. -This is part of the netCDF package. Copyright 2006-2011 University +This is part of the netCDF package. Copyright 2006-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. Full documentation of the netCDF can be found at http://www.unidata.ucar.edu/software/netcdf/docs. @@ -45,7 +45,7 @@ main() int x, y, retval; /* The following struct is written as a compound type. */ - struct s1 + struct s1 { int i1; int i2; @@ -85,7 +85,7 @@ main() /* Define an unsigned 64bit integer variable in grp1, using dimensions * in the root group. */ - if ((retval = nc_def_var(grp1id, "data", NC_UINT64, NDIMS, + if ((retval = nc_def_var(grp1id, "data", NC_UINT64, NDIMS, dimids, &varid1))) ERR(retval); @@ -95,19 +95,19 @@ main() ERR(retval); /* Create a compound type. This will cause nc_reddef to be called. */ - if (nc_def_compound(grp2id, sizeof(struct s1), "sample_compound_type", + if (nc_def_compound(grp2id, sizeof(struct s1), "sample_compound_type", &typeid)) ERR(retval); - if (nc_insert_compound(grp2id, typeid, "i1", + if (nc_insert_compound(grp2id, typeid, "i1", offsetof(struct s1, i1), NC_INT)) ERR(retval); - if (nc_insert_compound(grp2id, typeid, "i2", + if (nc_insert_compound(grp2id, typeid, "i2", offsetof(struct s1, i2), NC_INT)) ERR(retval); /* Define a compound type variable in grp2, using dimensions * in the root group. */ - if ((retval = nc_def_var(grp2id, "data", typeid, NDIMS, + if ((retval = nc_def_var(grp2id, "data", typeid, NDIMS, dimids, &varid2))) ERR(retval); diff --git a/examples/C/simple_xy_wr.c b/examples/C/simple_xy_wr.c index 5aba7c417..441aa2e30 100644 --- a/examples/C/simple_xy_wr.c +++ b/examples/C/simple_xy_wr.c @@ -1,6 +1,11 @@ /*! \file An example program demonstrating a simple 2D write. +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. +See netcdf-c/COPYRIGHT file for more info. */ #include @@ -65,7 +70,7 @@ main() /* Define the variable. The type of the variable in this case is * NC_INT (4-byte integer). */ - if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS, + if ((retval = nc_def_var(ncid, "data", NC_INT, NDIMS, dimids, &varid))) ERR(retval); diff --git a/examples/CDL/CMakeLists.txt b/examples/CDL/CMakeLists.txt index 6507bb7d5..2c06bf14b 100644 --- a/examples/CDL/CMakeLists.txt +++ b/examples/CDL/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(CDL_EXAMPLE_TESTS do_comps) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl) diff --git a/examples/CDL/Makefile.am b/examples/CDL/Makefile.am index 0af9bd3aa..77123a117 100644 --- a/examples/CDL/Makefile.am +++ b/examples/CDL/Makefile.am @@ -1,6 +1,11 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2006, see the COPYRIGHT file for more information. -# This file builds CDL examples. + +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Ed Hartnett # Note which tests depend on other tests. Necessary for make -j check. diff --git a/examples/CDL/do_comps.sh b/examples/CDL/do_comps.sh index 88f80f91f..ed6709d55 100755 --- a/examples/CDL/do_comps.sh +++ b/examples/CDL/do_comps.sh @@ -1,4 +1,11 @@ #!/bin/sh + +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # This shell script runs the cmp test on the example programs. # $Id: do_comps.sh,v 1.1 2006/06/27 17:44:54 ed Exp $ diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 5a253c245..4200674d7 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. ADD_SUBDIRECTORY(C) IF(BUILD_UTILITIES) diff --git a/examples/Makefile.am b/examples/Makefile.am index 52b9dd177..58f1a88be 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,16 +1,18 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. -# This is the main automake file for netCDF. It builds the different -# netcdf directories. Not all directories are built, depending on the -# options selected during configure. +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Build ncgen/ncdump. if BUILD_UTILITIES CDL_DIR = CDL endif -# These are the subdirectories that will be built. +# These are the subdirectories that will be built. SUBDIRS = C $(CDL_DIR) EXTRA_DIST=CMakeLists.txt diff --git a/h5_test/CMakeLists.txt b/h5_test/CMakeLists.txt index 5b51ddfd8..c6838aecb 100644 --- a/h5_test/CMakeLists.txt +++ b/h5_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(H5TESTS tst_h_files tst_h_files2 tst_h_files4 tst_h_atts tst_h_atts3 tst_h_atts4 tst_h_vars tst_h_vars2 tst_h_vars3 tst_h_grps tst_h_compounds tst_h_compounds2 tst_h_wrt_cmp tst_h_vl tst_h_opaques tst_h_strings tst_h_strings1 tst_h_strings2 tst_h_ints tst_h_dimscales tst_h_dimscales1 tst_h_dimscales2 tst_h_dimscales3 tst_h_enums tst_h_dimscales4) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h5 ${CMAKE_CURRENT_SOURCE_DIR}/*.nc) diff --git a/h5_test/Makefile.am b/h5_test/Makefile.am index f114d7ceb..9518ab6e2 100644 --- a/h5_test/Makefile.am +++ b/h5_test/Makefile.am @@ -1,5 +1,5 @@ # This is part of the netCDF package. -# Copyright 2011 University Corporation for Atmospheric Research/Unidata +# Copyright 2018 University Corporation for Atmospheric Research/Unidata # See COPYRIGHT file for conditions of use. # # This entire directory will be skipped, unless the configure script diff --git a/h5_test/h5_err_macros.h b/h5_test/h5_err_macros.h index d2889b39d..81c729ec7 100644 --- a/h5_test/h5_err_macros.h +++ b/h5_test/h5_err_macros.h @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/h5_test/run_par_tests.sh b/h5_test/run_par_tests.sh index ee0b8c748..a594a208b 100755 --- a/h5_test/run_par_tests.sh +++ b/h5_test/run_par_tests.sh @@ -1,4 +1,10 @@ #!/bin/sh +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../test_common.sh diff --git a/h5_test/tst_h_atts.c b/h5_test/tst_h_atts.c index a32109381..ecefb2665 100644 --- a/h5_test/tst_h_atts.c +++ b/h5_test/tst_h_atts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -52,14 +52,14 @@ main() { float val = 99; - char emp[NUM_EMPS][MAX_LEN + 1] = {"Augustus", "Tiberius", - "Caligula", "Claudius", + char emp[NUM_EMPS][MAX_LEN + 1] = {"Augustus", "Tiberius", + "Caligula", "Claudius", "Ne_r_o", "V.esp.asi.an"}; char obj_name[MAX_LEN + 1]; int e, i; /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, EMP_GRP, 0)) < 0) ERR; @@ -69,7 +69,7 @@ main() /* Attach some zero-length float attributes! */ for (e = 0; e < NUM_EMPS; e++) { - if ((attid = H5Acreate(grpid, emp[e], H5T_NATIVE_FLOAT, spaceid, + if ((attid = H5Acreate(grpid, emp[e], H5T_NATIVE_FLOAT, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_FLOAT, &val) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -79,15 +79,15 @@ main() if (H5Sclose(spaceid) < 0) ERR; if (H5Gclose(grpid) < 0) ERR; if (H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attributes. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, EMP_GRP)) < 0) ERR; /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != NUM_EMPS) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -104,7 +104,7 @@ main() printf("*** Checking HDF5 attribute deletes..."); { /* Create a file and open the root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; @@ -112,7 +112,7 @@ main() if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; @@ -121,7 +121,7 @@ main() if (H5Adelete(grpid, ATT1_NAME) < 0) ERR; /* Create and write it again. */ - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; @@ -137,7 +137,7 @@ main() printf("*** Checking HDF5 attributes attached to the fileid..."); { /* See if we can write an attribute to the root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; @@ -145,7 +145,7 @@ main() if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; if (H5Aclose(attid) < 0 || @@ -158,15 +158,15 @@ main() printf("*** Checking HDF5 attributes in a group..."); { /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, GRP_NAME, 0)) < 0) ERR; - + /* Attach a text attribute with some of Hamlet's lines. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, strlen(txt) + 1) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, txt) < 0) ERR; if (H5Aclose(attid) < 0 || @@ -176,7 +176,7 @@ main() H5Fclose(fileid) < 0) ERR; /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT1_NAME)) < 0) ERR; @@ -221,19 +221,19 @@ main() float val = 99; /* Open file and create group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gcreate(fileid, GRP_NAME, 0)) < 0) ERR; - + /* Attach a float attribute with no data. The * hell with Hamlet anyway! */ if ((spaceid = H5Screate(H5S_NULL)) < 0) ERR; if ((typeid = H5Tcopy(H5T_NATIVE_FLOAT)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT1_NAME, + if ((attid = H5Acreate(grpid, ATT1_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_FLOAT, &val) < 0) ERR; @@ -242,9 +242,9 @@ main() if (H5Tclose(typeid) < 0) ERR; if (H5Gclose(grpid) < 0) ERR; if (H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT1_NAME)) < 0) ERR; @@ -258,7 +258,7 @@ main() if ((spaceid = H5Screate(H5S_NULL)) < 0) ERR; if ((typeid = H5Tcopy(H5T_C_S1)) < 0) ERR; if (H5Tset_size(typeid, 1) < 0) ERR; - if ((attid1 = H5Acreate(grpid, ATT2_NAME, typeid, spaceid, + if ((attid1 = H5Acreate(grpid, ATT2_NAME, typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_FLOAT, &val) < 0) ERR; if (H5Sclose(spaceid) < 0 || @@ -267,9 +267,9 @@ main() H5Tclose(typeid) < 0 || H5Gclose(grpid) < 0 || H5Fclose(fileid) < 0) ERR; - + /* Now open the file again and read in the attribute. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, GRP_NAME)) < 0) ERR; if ((attid = H5Aopen_name(grpid, ATT2_NAME)) < 0) ERR; @@ -322,21 +322,21 @@ main() "So tell him, with th' occurrents, more and less,\n" "Which have solicited- the rest is silence."}; - char speech_name[NUM_SPEECHES][MAX_LEN + 1] = {"Act_1_Scene_2", - "Act_3_Scene_2", + char speech_name[NUM_SPEECHES][MAX_LEN + 1] = {"Act_1_Scene_2", + "Act_3_Scene_2", "Act_5_Scene_2"}; char obj_name[MAX_LEN + 1]; int i; /* Create a file and get its root group. */ - if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, + if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; /* Create a dataset. */ dims[0] = DIM1_LEN; if ((var_spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; - if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, + if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, var_spaceid, H5P_DEFAULT)) < 0) ERR; /* Attach three text attributes with some of Hamlet's lines to @@ -347,7 +347,7 @@ main() for (i = 0; i < NUM_SPEECHES; i++) { if (H5Tset_size(typeid, strlen(speech[i]) + 1) < 0) ERR; - if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, + if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, speech[i]) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -364,14 +364,14 @@ main() * attributes). */ /* Open file, group, and dataset. */ - if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, + if ((fileid = H5Fopen(FILE_NAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) ERR; if ((grpid = H5Gopen(fileid, "/")) < 0) ERR; if ((datasetid = H5Dopen1(grpid, VAR_NAME)) < 0) ERR; /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(datasetid)) != NUM_SPEECHES) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -387,7 +387,7 @@ main() /* Recreate it and add the attributes again. */ if ((var_spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; - if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, + if ((datasetid = H5Dcreate(grpid, VAR_NAME, H5T_NATIVE_HBOOL, var_spaceid, H5P_DEFAULT)) < 0) ERR; /* Attach three text attributes with some of Hamlet's lines to @@ -398,7 +398,7 @@ main() for (i = 0; i < NUM_SPEECHES; i++) { if (H5Tset_size(typeid, strlen(speech[i]) + 1) < 0) ERR; - if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, + if ((attid = H5Acreate(datasetid, speech_name[i], typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, typeid, speech[i]) < 0) ERR; if (H5Aclose(attid) < 0) ERR; @@ -406,7 +406,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(datasetid)) != NUM_SPEECHES) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -448,7 +448,7 @@ main() /* Write an attribute. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; - if ((attid = H5Acreate2(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, + if ((attid = H5Acreate2(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Sclose(spaceid) < 0) ERR; @@ -456,15 +456,15 @@ main() H5Fflush(hdfid, H5F_SCOPE_GLOBAL); dims[0] = 1; if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "l", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "l", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; @@ -506,7 +506,7 @@ main() /* Write an attribute. */ if ((spaceid = H5Screate(H5S_SCALAR)) < 0) ERR; - if ((attid = H5Acreate(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, + if ((attid = H5Acreate(grpid, NC3_STRICT_ATT_NAME, H5T_NATIVE_INT, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Sclose(spaceid) < 0) ERR; @@ -514,15 +514,15 @@ main() H5Fflush(hdfid, H5F_SCOPE_GLOBAL); dims[0] = 1; if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "z", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "z", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "y", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; - if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, + if ((attid1 = H5Acreate2(grpid, "c", H5T_NATIVE_INT, spaceid, H5P_DEFAULT, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid1, H5T_NATIVE_INT, &one) < 0) ERR; if (H5Aclose(attid1) < 0) ERR; @@ -579,10 +579,10 @@ main() if ((dimscaleid = H5Dcreate(grpid, "D1", H5T_IEEE_F32BE, spaceid, H5P_DEFAULT)) < 0) ERR; - + /* Indicate that this is a scale. */ if (H5DSset_scale(dimscaleid, NULL) < 0) ERR; - + /* Add another attribute to the group. Call it "third". */ if ((attid = H5Acreate(grpid , att_name[2], H5T_NATIVE_UCHAR, att_spaceid, H5P_DEFAULT)) < 0) ERR; @@ -610,7 +610,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != 3) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { @@ -676,7 +676,7 @@ main() /* How many attributes are there? */ if ((num_obj = H5Aget_num_attrs(grpid)) != NUM_SIMPLE_ATTS) ERR; - + /* Make sure the names are in the correct order. */ for (i = 0; i < num_obj; i++) { diff --git a/h5_test/tst_h_atts3.c b/h5_test/tst_h_atts3.c index 7976821b0..c65968c80 100644 --- a/h5_test/tst_h_atts3.c +++ b/h5_test/tst_h_atts3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -25,10 +25,10 @@ #define X_NAME "x" #define Y_NAME "y" #define S1_NAME "s1" -#define VLEN_TYPE_NAME "Magna_Carta_VLEN" +#define VLEN_TYPE_NAME "Magna_Carta_VLEN" #define S3_ATT_NAME "King_John" #define S3_TYPE_NAME "barons" -#define VL_NAME "No scutage or aid may be levied in our kingdom without its general consent" +#define VL_NAME "No scutage or aid may be levied in our kingdom without its general consent" #define ATT_LEN 1 int @@ -67,7 +67,7 @@ main() for (i = 0; i < ATT_LEN; i++) for (j = 0; j < NUM_VL; j++) { - cvc_out[i].data[j].len = i + 1; + cvc_out[i].data[j].len = i + 1; if (!(cvc_out[i].data[j].p = calloc(sizeof(struct s1), cvc_out[i].data[j].len))) ERR; for (k = 0; k < cvc_out[i].data[j].len; k++) { @@ -80,14 +80,14 @@ main() * all the timmings. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_STRONG)) ERR; - if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, + if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, chunk_cache_preemption) < 0) ERR; - if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, + if (H5Pset_libver_bounds(fapl_id, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; @@ -98,9 +98,9 @@ main() /* Create the compound type for struct s1. */ if ((s1_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; - if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), + if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), H5T_NATIVE_FLOAT) < 0) ERR; - if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), + if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), H5T_NATIVE_DOUBLE) < 0) ERR; if (H5Tcommit(grpid, S1_TYPE_NAME, s1_typeid) < 0) ERR; @@ -110,13 +110,13 @@ main() /* Create the struct s3 type, which contains the vlen. */ if ((s3_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s3))) < 0) ERR; - if (H5Tinsert(s3_typeid, VL_NAME, offsetof(struct s3, data), + if (H5Tinsert(s3_typeid, VL_NAME, offsetof(struct s3, data), vlen_typeid) < 0) ERR; if (H5Tcommit(grpid, S3_TYPE_NAME, s3_typeid) < 0) ERR; /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, S3_ATT_NAME, s3_typeid, spaceid, + if ((attid = H5Acreate(grpid, S3_ATT_NAME, s3_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, s3_typeid, cvc_out) < 0) ERR; @@ -127,7 +127,7 @@ main() /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; @@ -156,7 +156,7 @@ main() /* Get the typeid and native typeid. */ if ((file_typeid1[i] = H5Topen2(grpid, obj_name, H5P_DEFAULT)) < 0) ERR; - if ((native_typeid1[i] = H5Tget_native_type(file_typeid1[i], + if ((native_typeid1[i] = H5Tget_native_type(file_typeid1[i], H5T_DIR_DEFAULT)) < 0) ERR; } @@ -211,42 +211,42 @@ main() * int. */ for (i = 0; i < ATT_LEN; i++) { - vc_out[i].len = i + 1; + vc_out[i].len = i + 1; if (!(vc_out[i].p = calloc(sizeof(int), vc_out[i].len))) ERR; for (k = 0; k < vc_out[i].len; k++) ((int *)vc_out[i].p)[k] = 42; } - + /* Create the HDF5 file with creation order. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; if (H5Pclose(fcpl_id) < 0) ERR; - + /* Open the root group. */ if ((grpid = H5Gopen2(fileid, "/", H5P_DEFAULT)) < 0) ERR; - + /* Create a vlen type. Its a vlen of int. */ if ((vlen_typeid = H5Tvlen_create(H5T_NATIVE_INT)) < 0) ERR; if (H5Tcommit(grpid, VLEN_TYPE_NAME, vlen_typeid) < 0) ERR; - + /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, vlen_typeid, vc_out) < 0) ERR; - + /* Close the type. */ if (H5Tclose(vlen_typeid) < 0) ERR; - + /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; diff --git a/h5_test/tst_h_atts4.c b/h5_test/tst_h_atts4.c index 6228dd661..e42cd171e 100644 --- a/h5_test/tst_h_atts4.c +++ b/h5_test/tst_h_atts4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -26,10 +26,10 @@ #define X_NAME "x" #define Y_NAME "y" #define S1_NAME "s1" -#define VLEN_TYPE_NAME "Percy_Jackson_VLEN" +#define VLEN_TYPE_NAME "Percy_Jackson_VLEN" #define ATT_NAME "Poseidon" #define S3_TYPE_NAME "Olympus" -#define VL_NAME "Trident" +#define VL_NAME "Trident" #define ATT_LEN 1 int @@ -67,7 +67,7 @@ main() if (!(vc_out = calloc(sizeof(hvl_t), ATT_LEN))) ERR; for (i = 0; i < ATT_LEN; i++) { - vc_out[i].len = i + 1; + vc_out[i].len = i + 1; if (!(vc_out[i].p = calloc(sizeof(struct s1), vc_out[i].len))) ERR; for (k = 0; k < vc_out[i].len; k++) { @@ -75,50 +75,50 @@ main() ((struct s1 *)vc_out[i].p)[k].y = 2.0; } } - + /* Create the HDF5 file, with cache control, creation order, and * all the timmings. */ if ((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; if (H5Pset_fclose_degree(fapl_id, H5F_CLOSE_STRONG)) ERR; - if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, + if (H5Pset_cache(fapl_id, 0, chunk_cache_nelems, chunk_cache_size, chunk_cache_preemption) < 0) ERR; if ((fcpl_id = H5Pcreate(H5P_FILE_CREATE)) < 0) ERR; - if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_link_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; - if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | + if (H5Pset_attr_creation_order(fcpl_id, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED)) < 0) ERR; if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, fcpl_id, fapl_id)) < 0) ERR; if (H5Pclose(fapl_id) < 0) ERR; if (H5Pclose(fcpl_id) < 0) ERR; - + /* Open the root group. */ if ((grpid = H5Gopen2(fileid, "/", H5P_DEFAULT)) < 0) ERR; - + /* Create the compound type for struct s1. */ if ((s1_typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; - if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), + if (H5Tinsert(s1_typeid, X_NAME, offsetof(struct s1, x), H5T_NATIVE_FLOAT) < 0) ERR; - if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), + if (H5Tinsert(s1_typeid, Y_NAME, offsetof(struct s1, y), H5T_NATIVE_DOUBLE) < 0) ERR; if (H5Tcommit(grpid, S1_TYPE_NAME, s1_typeid) < 0) ERR; - + /* Create a vlen type. Its a vlen of struct s1. */ if ((vlen_typeid = H5Tvlen_create(s1_typeid)) < 0) ERR; if (H5Tcommit(grpid, VLEN_TYPE_NAME, vlen_typeid) < 0) ERR; - + /* Create an attribute of this new type. */ if ((spaceid = H5Screate_simple(1, dims, NULL)) < 0) ERR; - if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, + if ((attid = H5Acreate(grpid, ATT_NAME, vlen_typeid, spaceid, H5P_DEFAULT)) < 0) ERR; if (H5Awrite(attid, vlen_typeid, vc_out) < 0) ERR; - + /* Close the types. */ if (H5Tclose(s1_typeid) < 0 || H5Tclose(vlen_typeid) < 0) ERR; - + /* Close the att. */ if (H5Aclose(attid) < 0) ERR; - + /* Close the space. */ if (H5Sclose(spaceid) < 0) ERR; diff --git a/h5_test/tst_h_compounds.c b/h5_test/tst_h_compounds.c index b14b00b55..a38d221ad 100644 --- a/h5_test/tst_h_compounds.c +++ b/h5_test/tst_h_compounds.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, @@ -42,11 +42,11 @@ main() /* REALLY initialize the data (even the gaps in the structs). This * is only needed to pass valgrind. */ if (!(dummy = calloc(sizeof(struct s2), DIM1_LEN))) ERR; - memcpy((void *)data2, (void *)dummy, sizeof(struct s2) * DIM1_LEN); - free(dummy); + memcpy((void *)data2, (void *)dummy, sizeof(struct s2) * DIM1_LEN); + free(dummy); if (!(dummy = calloc(sizeof(struct s1), DIM1_LEN))) ERR; - memcpy((void *)data2, (void *)dummy, sizeof(struct s1) * DIM1_LEN); - free(dummy); + memcpy((void *)data2, (void *)dummy, sizeof(struct s1) * DIM1_LEN); + free(dummy); for (i=0; i diff --git a/include/nc_logging.h b/include/nc_logging.h index c4735b71f..2ed73a43b 100644 --- a/include/nc_logging.h +++ b/include/nc_logging.h @@ -1,4 +1,4 @@ -/* Copyright 2010, University Corporation for Atmospheric Research. See +/* Copyright 2018, University Corporation for Atmospheric Research. See COPYRIGHT file for copying and redistribution conditions. */ /** * @file @internal This file is part of netcdf-4, a netCDF-like diff --git a/include/nc_provenance.h b/include/nc_provenance.h index 18708a632..685ad5acd 100644 --- a/include/nc_provenance.h +++ b/include/nc_provenance.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/nc_tests.h b/include/nc_tests.h index bca0ec129..8d975f66d 100644 --- a/include/nc_tests.h +++ b/include/nc_tests.h @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University * Corporation for Atmospheric Research/Unidata. See \ref copyright * file for conditions of use. */ /** @internal @file diff --git a/include/ncauth.h b/include/ncauth.h index a3087eb8f..f18bad720 100644 --- a/include/ncauth.h +++ b/include/ncauth.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* diff --git a/include/ncbytes.h b/include/ncbytes.h index 824f7c70b..29feaa10e 100644 --- a/include/ncbytes.h +++ b/include/ncbytes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCBYTES_H diff --git a/include/ncconfigure.h b/include/ncconfigure.h index 0e00727bb..42085dc88 100644 --- a/include/ncconfigure.h +++ b/include/ncconfigure.h @@ -1,5 +1,5 @@ /* - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This header file is for the parallel I/O functions of netCDF. diff --git a/include/ncdap.h b/include/ncdap.h index 6dac5aa9f..40894ba61 100644 --- a/include/ncdap.h +++ b/include/ncdap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/include/ncdimscale.h b/include/ncdimscale.h index e4e206005..8853708ef 100644 --- a/include/ncdimscale.h +++ b/include/ncdimscale.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/ncdispatch.h b/include/ncdispatch.h index 31d9ac4cf..5b18be38f 100644 --- a/include/ncdispatch.h +++ b/include/ncdispatch.h @@ -1,4 +1,4 @@ -/* Copyright 2005-2018 University Corporation for Atmospheric +/* Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata. */ /** * @file diff --git a/include/ncexternl.h b/include/ncexternl.h index e3e8e52c9..3fa65a749 100644 --- a/include/ncexternl.h +++ b/include/ncexternl.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncfilter.h b/include/ncfilter.h index 17806e714..3c0078463 100644 --- a/include/ncfilter.h +++ b/include/ncfilter.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCFILTER_H diff --git a/include/nchashmap.h b/include/nchashmap.h index f89c4b826..0606d6a2f 100644 --- a/include/nchashmap.h +++ b/include/nchashmap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncindex.h b/include/ncindex.h index 5e83390ac..20e2895b6 100644 --- a/include/ncindex.h +++ b/include/ncindex.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #ifndef NCINDEX_H @@ -100,7 +100,7 @@ static int ncindexsize(NCindex* index) { int i; if(index == NULL) return 0; - i = nclistlength(index->list); + i = nclistlength(index->list); return i; } #else diff --git a/include/nclist.h b/include/nclist.h index a47ba401c..73d5f225b 100644 --- a/include/nclist.h +++ b/include/nclist.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef NCLIST_H #define NCLIST_H 1 diff --git a/include/nclog.h b/include/nclog.h index dd9fe85ce..ce4c84d14 100644 --- a/include/nclog.h +++ b/include/nclog.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/include/ncoffsets.h b/include/ncoffsets.h index 36381432b..dad9a29dd 100644 --- a/include/ncoffsets.h +++ b/include/ncoffsets.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/include/ncrc.h b/include/ncrc.h index 4998efb49..27db1cb0d 100644 --- a/include/ncrc.h +++ b/include/ncrc.h @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* diff --git a/include/nctestserver.h b/include/nctestserver.h index 175574efa..cbe9c4fec 100644 --- a/include/nctestserver.h +++ b/include/nctestserver.h @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -26,7 +37,7 @@ parseServers(const char* remotetestservers) char* p; char* svc; char** l; - + list = (char**)malloc(sizeof(char*) * (int)(strlen(remotetestservers)/2)); if(list == NULL) return NULL; rts = strdup(remotetestservers); @@ -71,7 +82,7 @@ nc_findtestserver(const char* path, int isdap4, const char* serverlist) return NULL; } for(svc=svclist;*svc;svc++) { - if(strlen(*svc) == 0) + if(strlen(*svc) == 0) goto done; if(path == NULL) path = ""; if(strlen(path) > 0 && path[0] == '/') @@ -87,7 +98,7 @@ nc_findtestserver(const char* path, int isdap4, const char* serverlist) } done: /* Free up the envv list of servers */ - if(svclist != NULL) { + if(svclist != NULL) { char** p; for(p=svclist;*p;p++) free(*p); diff --git a/include/nctime.h b/include/nctime.h index d740f9c7b..bbab97228 100644 --- a/include/nctime.h +++ b/include/nctime.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.h,v 1.6 2010/03/18 19:24:26 russ Exp $ *********************************************************************/ diff --git a/include/ncuri.h b/include/ncuri.h index a60febf52..bab9cd589 100644 --- a/include/ncuri.h +++ b/include/ncuri.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/include/ncutf8.h b/include/ncutf8.h index fca22ca14..cff2efa22 100644 --- a/include/ncutf8.h +++ b/include/ncutf8.h @@ -1,5 +1,5 @@ /* - * Copyright 2017, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/include/ncwinpath.h b/include/ncwinpath.h index e62368d97..e899a27d1 100644 --- a/include/ncwinpath.h +++ b/include/ncwinpath.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ #ifndef _NCWINIO_H_ diff --git a/include/netcdf.h b/include/netcdf.h index 96790560b..3570cdde1 100644 --- a/include/netcdf.h +++ b/include/netcdf.h @@ -2,8 +2,9 @@ Main header file for the C API. -Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 +Copyright 2018, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. diff --git a/include/netcdf_aux.h b/include/netcdf_aux.h index ef96cc037..5ea0c042c 100644 --- a/include/netcdf_aux.h +++ b/include/netcdf_aux.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id$ * $Header$ diff --git a/include/netcdf_f.h b/include/netcdf_f.h index 9f064cedf..e7bd2db6b 100644 --- a/include/netcdf_f.h +++ b/include/netcdf_f.h @@ -1,6 +1,6 @@ /* - * Copyright 1993-2011 University Corporation for Atmospheric Research/Unidata - * + * Copyright 2018-2018 University Corporation for Atmospheric Research/Unidata + * * This header contains prototypes for functions only called by fortran 77. */ #ifndef _NETCDF_F_ @@ -19,11 +19,11 @@ EXTERNL int nc_def_var_chunking_ints(int ncid, int varid, int contiguous, int *chunksizesp); EXTERNL int -nc_open_par_fortran(const char *path, int mode, int comm, +nc_open_par_fortran(const char *path, int mode, int comm, int info, int *ncidp); EXTERNL int -nc_create_par_fortran(const char *path, int cmode, int comm, +nc_create_par_fortran(const char *path, int cmode, int comm, int info, int *ncidp); EXTERNL int @@ -33,27 +33,27 @@ EXTERNL int nc_get_chunk_cache_ints(int *sizep, int *nelemsp, int *preemptionp); EXTERNL int -nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, +nc_set_var_chunk_cache_ints(int ncid, int varid, int size, int nelems, int preemption); EXTERNL int -nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, +nc_get_var_chunk_cache_ints(int ncid, int varid, int *sizep, int *nelemsp, int *preemptionp); /* Prototypes for some extra functions in fort-lib.c. */ -EXTERNL int +EXTERNL int nc_inq_varids_f(int ncid, int *nvars, int *fvarids); -EXTERNL int +EXTERNL int nc_inq_dimids_f(int ncid, int *ndims, int *fdimids, int parent); -EXTERNL int -nc_insert_array_compound_f(int ncid, int typeid1, char *name, +EXTERNL int +nc_insert_array_compound_f(int ncid, int typeid1, char *name, size_t offset, nc_type field_typeid, int ndims, int *dim_sizesp); -EXTERNL int -nc_inq_compound_field_f(int ncid, nc_type xtype, int fieldid, char *name, - size_t *offsetp, nc_type *field_typeidp, int *ndimsp, +EXTERNL int +nc_inq_compound_field_f(int ncid, nc_type xtype, int fieldid, char *name, + size_t *offsetp, nc_type *field_typeidp, int *ndimsp, int *dim_sizesp); #if defined(__cplusplus) diff --git a/include/netcdf_mem.h b/include/netcdf_mem.h index 3024473f4..8f7769aa9 100644 --- a/include/netcdf_mem.h +++ b/include/netcdf_mem.h @@ -2,7 +2,7 @@ * * Main header file for in-memory (diskless) functionality. * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * See \ref copyright file for more info. diff --git a/include/netcdf_meta.h.in b/include/netcdf_meta.h.in index e3859aef3..f9b960456 100644 --- a/include/netcdf_meta.h.in +++ b/include/netcdf_meta.h.in @@ -13,8 +13,10 @@ * in conditionals. * * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 * University Corporation for Atmospheric Research/Unidata. + * * See \ref copyright file for more info. */ diff --git a/include/netcdf_par.h b/include/netcdf_par.h index f35365b99..13da607bd 100644 --- a/include/netcdf_par.h +++ b/include/netcdf_par.h @@ -2,7 +2,7 @@ * * Main header file for the Parallel C API. * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This header file is for the parallel I/O functions of netCDF. diff --git a/include/onstack.h b/include/onstack.h index 29d84d8c4..bd3b8e39e 100644 --- a/include/onstack.h +++ b/include/onstack.h @@ -1,5 +1,5 @@ /* - * Copyright 1997, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: onstack.h,v 2.7 2006/09/15 20:40:39 ed Exp $ */ diff --git a/include/rnd.h b/include/rnd.h index 90da7d2a1..d06b0e0f9 100644 --- a/include/rnd.h +++ b/include/rnd.h @@ -1,4 +1,4 @@ -/* Copyright 1996-2018, University Corporation for Atmospheric +/* Copyright 2018-2018, University Corporation for Atmospheric * Research See netcdf/COPYRIGHT file for copying and redistribution * conditions. * diff --git a/lib_flags.am b/lib_flags.am index 58accdf60..72f45e597 100644 --- a/lib_flags.am +++ b/lib_flags.am @@ -1,20 +1,16 @@ # This is part of the netCDF package. -# Copyright 2005 University Corporation for Atmospheric Research/Unidata +# Copyright 2018 University Corporation for Atmospheric Research/Unidata # See COPYRIGHT file for conditions of use. -# +# # Assemble the CPPFLAGS and LDFLAGS that point to all the needed # libraries for netCDF-4. # -AM_CPPFLAGS = -I$(top_srcdir)/include -AM_LDFLAGS = +AM_CPPFLAGS = -I$(top_srcdir)/include +AM_LDFLAGS = if USE_DAP AM_CPPFLAGS += -I${top_srcdir}/oc2 endif -AM_TESTS_ENVIRONMENT = export TOPSRCDIR=${abs_top_srcdir}; export TOPBUILDDIR=${abs_top_builddir}; - - - - +AM_TESTS_ENVIRONMENT = export TOPSRCDIR=${abs_top_srcdir}; export TOPBUILDDIR=${abs_top_builddir}; diff --git a/libdap2/CMakeLists.txt b/libdap2/CMakeLists.txt index a5bfb1023..126385c97 100644 --- a/libdap2/CMakeLists.txt +++ b/libdap2/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(dap2_SOURCES constraints.c dapcvt.c dapodom.c daputil.c ncdaperr.c cdf.c cache.c dapdump.c dapdebug.c dapattr.c ncd2dispatch.c getvara.c dceconstraints.c dcetab.c dceparse.c dcelex.c) add_library(dap2 OBJECT ${dap2_SOURCES}) diff --git a/libdap2/Makefile.am b/libdap2/Makefile.am index 01bf244c1..765a2f2fc 100644 --- a/libdap2/Makefile.am +++ b/libdap2/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to libdap2. Whatever that # is! diff --git a/libdap2/cache.c b/libdap2/cache.c index 61b44f70a..b05870058 100644 --- a/libdap2/cache.c +++ b/libdap2/cache.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/cdf.c b/libdap2/cdf.c index c213cad52..e22e2c209 100644 --- a/libdap2/cdf.c +++ b/libdap2/cdf.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/common.c b/libdap2/common.c index cf366c196..1bfb2c4e8 100644 --- a/libdap2/common.c +++ b/libdap2/common.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/constraints.c b/libdap2/constraints.c index 0be99dd07..52976f642 100644 --- a/libdap2/constraints.c +++ b/libdap2/constraints.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT filey for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/constraints.h b/libdap2/constraints.h index 2231b432d..0bb2df32c 100644 --- a/libdap2/constraints.h +++ b/libdap2/constraints.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef CONSTRAINTS_H diff --git a/libdap2/dapattr.c b/libdap2/dapattr.c index f491cf9ca..03a31e939 100644 --- a/libdap2/dapattr.c +++ b/libdap2/dapattr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapcvt.c b/libdap2/dapcvt.c index 2e4009af0..c4dc3bc7b 100644 --- a/libdap2/dapcvt.c +++ b/libdap2/dapcvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap2/dapdebug.c b/libdap2/dapdebug.c index e9b504f15..2c7856d3e 100644 --- a/libdap2/dapdebug.c +++ b/libdap2/dapdebug.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap2/dapdebug.h b/libdap2/dapdebug.h index dde23e53d..55ff86cad 100644 --- a/libdap2/dapdebug.h +++ b/libdap2/dapdebug.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DEBUG_H diff --git a/libdap2/dapdump.c b/libdap2/dapdump.c index a457862c0..4f65a2bc1 100644 --- a/libdap2/dapdump.c +++ b/libdap2/dapdump.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapdump.h b/libdap2/dapdump.h index c5488a45f..17d631d7a 100644 --- a/libdap2/dapdump.h +++ b/libdap2/dapdump.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DUMP_H diff --git a/libdap2/dapincludes.h b/libdap2/dapincludes.h index c8b02bd9e..6275b662b 100644 --- a/libdap2/dapincludes.h +++ b/libdap2/dapincludes.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPINCLUDES_H diff --git a/libdap2/dapnc.h b/libdap2/dapnc.h index afac5f09a..bc99fe8f4 100644 --- a/libdap2/dapnc.h +++ b/libdap2/dapnc.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPNC_H diff --git a/libdap2/dapodom.c b/libdap2/dapodom.c index 965f335e2..ce5cc7cb1 100644 --- a/libdap2/dapodom.c +++ b/libdap2/dapodom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dapodom.h b/libdap2/dapodom.h index 8e79c1743..8093ef09e 100644 --- a/libdap2/dapodom.h +++ b/libdap2/dapodom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/daputil.c b/libdap2/daputil.c index bef69c202..d2348c0e0 100644 --- a/libdap2/daputil.c +++ b/libdap2/daputil.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/daputil.h b/libdap2/daputil.h index 816b063d8..836e06417 100644 --- a/libdap2/daputil.h +++ b/libdap2/daputil.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef DAPUTIL_H diff --git a/libdap2/dce.y b/libdap2/dce.y index e7030a4c5..b0e30c629 100644 --- a/libdap2/dce.y +++ b/libdap2/dce.y @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /*The lines down to DO NOT DELETE ... comment are specific to the C Parser. @@ -82,7 +82,7 @@ segment: {$$=segment(parsestate,$1,$2);} ; -rangelist: +rangelist: range {$$=rangelist(parsestate,null,$1);} | rangelist range diff --git a/libdap2/dceconstraints.c b/libdap2/dceconstraints.c index 2e5a85165..754e289f8 100644 --- a/libdap2/dceconstraints.c +++ b/libdap2/dceconstraints.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dceconstraints.h b/libdap2/dceconstraints.h index f4fa22a0f..1b6c2975b 100644 --- a/libdap2/dceconstraints.h +++ b/libdap2/dceconstraints.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/dcelex.c b/libdap2/dcelex.c index c6153711a..58f39ad0c 100644 --- a/libdap2/dcelex.c +++ b/libdap2/dcelex.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #define URLDECODE diff --git a/libdap2/dceparse.c b/libdap2/dceparse.c index c356a7d28..02239b889 100644 --- a/libdap2/dceparse.c +++ b/libdap2/dceparse.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /* Parser actions for constraint expressions */ diff --git a/libdap2/dceparselex.h b/libdap2/dceparselex.h index 88bc9ae80..4b1ff9ad2 100644 --- a/libdap2/dceparselex.h +++ b/libdap2/dceparselex.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef DCEPARSELEX_H diff --git a/libdap2/getvara.c b/libdap2/getvara.c index a2c0283c2..b42568567 100644 --- a/libdap2/getvara.c +++ b/libdap2/getvara.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribuution conditions. *********************************************************************/ diff --git a/libdap2/getvara.h b/libdap2/getvara.h index 1b9b1238f..c22b03487 100644 --- a/libdap2/getvara.h +++ b/libdap2/getvara.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef GETVARA_H diff --git a/libdap2/main.c b/libdap2/main.c index 8111ebad6..cb001f112 100644 --- a/libdap2/main.c +++ b/libdap2/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/nccommon.h b/libdap2/nccommon.h index e3bbdedd5..4b9b734fe 100644 --- a/libdap2/nccommon.h +++ b/libdap2/nccommon.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncd2dispatch.c b/libdap2/ncd2dispatch.c index d9f2dd224..6bc51100b 100644 --- a/libdap2/ncd2dispatch.c +++ b/libdap2/ncd2dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncd2dispatch.h b/libdap2/ncd2dispatch.h index fd6731d22..622806dce 100644 --- a/libdap2/ncd2dispatch.h +++ b/libdap2/ncd2dispatch.h @@ -1,5 +1,5 @@ /* - * Copyright 1993-1996 University Corporation for Atmospheric Research/Unidata + * Copyright 1993-2018 University Corporation for Atmospheric Research/Unidata * * Portions of this software were developed by the Unidata Program at the * University Corporation for Atmospheric Research. diff --git a/libdap2/ncdap.c b/libdap2/ncdap.c index 62aaea454..d4aeb18a8 100644 --- a/libdap2/ncdap.c +++ b/libdap2/ncdap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncdapa.c b/libdap2/ncdapa.c index 12a912a84..0aa5580fc 100644 --- a/libdap2/ncdapa.c +++ b/libdap2/ncdapa.c @@ -1,5 +1,5 @@ /********************************************************************* \ - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/ncdaperr.c b/libdap2/ncdaperr.c index 1833280c2..c616e3891 100644 --- a/libdap2/ncdaperr.c +++ b/libdap2/ncdaperr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap2/test_vara.c b/libdap2/test_vara.c index a2c9e8715..d45cc4a53 100644 --- a/libdap2/test_vara.c +++ b/libdap2/test_vara.c @@ -1,3 +1,15 @@ + +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -7,7 +19,7 @@ #define DTSTEST "/dts/test.06" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: t = 10 ; @@ -41,7 +53,7 @@ variables: /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -81,7 +93,7 @@ main() size_t count[RANK]; char URL[4096]; const char* svc = NULL; - + /* Find Test Server */ svc = nc_findtestserver("dts",0); if(svc == NULL) { @@ -181,7 +193,7 @@ static void odom_reclaim(Odom* odom) } -static void odom_set(Odom* odom, size_t* start, size_t* count) +static void odom_set(Odom* odom, size_t* start, size_t* count) { int i; /* Init the odometer */ @@ -203,7 +215,7 @@ static int odom_more(Odom* odom) static int odom_incr(Odom* odom) { int i; /* do not make unsigned */ - if(odom->rank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -221,364 +233,364 @@ static size_t odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } static float target_data[X][Y][Z] = { - 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, - 0.999200106660978, 0.998750260394966, 0.998200539935204, + 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, + 0.999200106660978, 0.998750260394966, 0.998200539935204, 0.99755100025328, 0.996801706302619, 0.995952733011994, - 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, - 0.990215996212637, 0.988771077936042, 0.987227283375627, + 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, + 0.990215996212637, 0.988771077936042, 0.987227283375627, 0.985584766909561, 0.983843692788121, 0.98200423511727, - 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, - 0.97133797485203, 0.968912421710645, 0.966389978134513, + 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, + 0.97133797485203, 0.968912421710645, 0.966389978134513, 0.963770896365891, 0.961055438310771, 0.958243875512697, - 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, - 0.942754665528346, 0.939372712847379, 0.935896823677935, + 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, + 0.942754665528346, 0.939372712847379, 0.935896823677935, 0.932327345606034, 0.92866463557651, 0.924909059857313, - 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, - 0.904751663219963, 0.900447102352677, 0.896052497525525, + 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, + 0.904751663219963, 0.900447102352677, 0.896052497525525, 0.891568288195329, 0.886994922779284, 0.882332858610121, - 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, - 0.857708681363824, 0.852524522059506, 0.847255111013416, + 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, + 0.857708681363824, 0.852524522059506, 0.847255111013416, 0.841900975162269, 0.836462649915187, 0.830940679100164, - 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, - 0.802095757884293, 0.796083798549056, 0.789992231497365, + 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, + 0.802095757884293, 0.796083798549056, 0.789992231497365, 0.783821665880849, 0.777572718750928, 0.771246014997107, - 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, - 0.738468558729588, 0.731688868873821, 0.724836010740905, + 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, + 0.738468558729588, 0.731688868873821, 0.724836010740905, 0.717910669610943, 0.710913538012277, 0.703845315652236, - 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, - 0.667462825841308, 0.659983145884982, 0.652437468164052, + 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, + 0.667462825841308, 0.659983145884982, 0.652437468164052, 0.644826547240001, 0.63715114419858, 0.629412026573697, - 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, - 0.589788025031098, 0.581683089463883, 0.573519986072457, + 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, + 0.589788025031098, 0.581683089463883, 0.573519986072457, 0.565299531160354, 0.557022546766217, 0.548689860581588, - 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, - 0.506220257232778, 0.497571047891727, 0.488872081860527, + 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, + 0.506220257232778, 0.497571047891727, 0.488872081860527, 0.480124229028534, 0.47132836417374, 0.462485366875301, - 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, - 0.417594503958358, 0.408487440884157, 0.399339529406273, + 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, + 0.417594503958358, 0.408487440884157, 0.399339529406273, 0.39015168430823, 0.380924824366882, 0.371659872260533, - 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, - 0.324796284438776, 0.315322362395269, 0.305816908378289, + 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, + 0.324796284438776, 0.315322362395269, 0.305816908378289, 0.296280872925319, 0.286715209631956, 0.277120875056558, - 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, - 0.228752807808459, 0.219006687093041, 0.209238665891419, + 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, + 0.228752807808459, 0.219006687093041, 0.209238665891419, 0.199449720997573, 0.189640831297834, 0.179812977673, - 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, - 0.130423708738146, 0.120502769367367, 0.11056977982007, + 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, + 0.130423708738146, 0.120502769367367, 0.11056977982007, 0.100625733386932, 0.0906716244643097, 0.0807084484548006, - 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, - 0.040785011241591, 0.0307914590824661, 0.0207948278030924, - 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, + 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, + 0.040785011241591, 0.0307914590824661, 0.0207948278030924, + 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, -0.0192024929016926, - -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, - -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, - -0.089085416936459, -0.099041036598728, -0.108986752239871, + -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, + -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, + -0.089085416936459, -0.099041036598728, -0.108986752239871, -0.118921569296612, - -0.128844494295525, -0.138754534952378, -0.148650700271364, - -0.158532000644198, -0.168397447949077, -0.178246055649492, - -0.18807683889288, -0.197888814609109, -0.207681001608784, + -0.128844494295525, -0.138754534952378, -0.148650700271364, + -0.158532000644198, -0.168397447949077, -0.178246055649492, + -0.18807683889288, -0.197888814609109, -0.207681001608784, -0.217452420681365, - -0.227202094693087, -0.236929048684675, -0.246632309968834, - -0.256310908227523, -0.26596387560898, -0.275590246824513, - -0.285189059245021, -0.294759352997261, -0.304300171059833, + -0.227202094693087, -0.236929048684675, -0.246632309968834, + -0.256310908227523, -0.26596387560898, -0.275590246824513, + -0.285189059245021, -0.294759352997261, -0.304300171059833, -0.313810559358882, - -0.323289566863503, -0.332736245680845, -0.342149651150898, - -0.35152884194096, -0.360872880139767, -0.370180831351287, - -0.379451764788155, -0.388684753364752, -0.397878873789916, + -0.323289566863503, -0.332736245680845, -0.342149651150898, + -0.35152884194096, -0.360872880139767, -0.370180831351287, + -0.379451764788155, -0.388684753364752, -0.397878873789916, -0.407033206659266, - -0.416146836547142, -0.425218852098152, -0.4342483461183, - -0.443234415665709, -0.452176162140912, -0.461072691376713, - -0.469923113727602, -0.47872654415872, -0.487482102334359, + -0.416146836547142, -0.425218852098152, -0.4342483461183, + -0.443234415665709, -0.452176162140912, -0.461072691376713, + -0.469923113727602, -0.47872654415872, -0.487482102334359, -0.496188912705999, - -0.504846104599858, -0.513452812303959, -0.522008175154707, - -0.530511337622945, -0.538961449399512, -0.547357665480271, - -0.555699146250613, -0.56398505756941, -0.572214570852437, + -0.504846104599858, -0.513452812303959, -0.522008175154707, + -0.530511337622945, -0.538961449399512, -0.547357665480271, + -0.555699146250613, -0.56398505756941, -0.572214570852437, -0.580386863155222, - -0.588501117255346, -0.59655652173416, -0.60455227105793, - -0.612487565658385, -0.62036161201268, -0.628173622722739, - -0.635922816594002, -0.643608418713541, -0.651229660527546, + -0.588501117255346, -0.59655652173416, -0.60455227105793, + -0.612487565658385, -0.62036161201268, -0.628173622722739, + -0.635922816594002, -0.643608418713541, -0.651229660527546, -0.658785779918188, - -0.666276021279824, -0.673699635594561, -0.681055880507152, - -0.688344020399238, -0.695563326462902, -0.702713076773554, - -0.70979255636212, -0.716801057286543, -0.723737878702569, + -0.666276021279824, -0.673699635594561, -0.681055880507152, + -0.688344020399238, -0.695563326462902, -0.702713076773554, + -0.70979255636212, -0.716801057286543, -0.723737878702569, -0.730602326933837, - -0.737393715541245, -0.744111365391593, -0.750754604725491, - -0.757322769224544, -0.763815202077774, -0.770231254047307, - -0.776570283533293, -0.782831656638065, -0.789014747229531, + -0.737393715541245, -0.744111365391593, -0.750754604725491, + -0.757322769224544, -0.763815202077774, -0.770231254047307, + -0.776570283533293, -0.782831656638065, -0.789014747229531, -0.795118937003784, - -0.801143615546934, -0.807088180396146, -0.81295203709989, - -0.818734599277382, -0.824435288677222, -0.830053535235222, - -0.835588777131408, -0.841040460846201, -0.846408041215776, + -0.801143615546934, -0.807088180396146, -0.81295203709989, + -0.818734599277382, -0.824435288677222, -0.830053535235222, + -0.835588777131408, -0.841040460846201, -0.846408041215776, -0.851690981486566, - -0.856888753368947, -0.862000837090063, -0.867026721445802, - -0.871965903851917, -0.876817890394281, -0.881582195878286, - -0.886258343877352, -0.890845866780576, -0.895344305839492, + -0.856888753368947, -0.862000837090063, -0.867026721445802, + -0.871965903851917, -0.876817890394281, -0.881582195878286, + -0.886258343877352, -0.890845866780576, -0.895344305839492, -0.899753211213941, - -0.904072142017061, -0.90830066635937, -0.912438361391958, - -0.916484813348769, -0.920439617587981, -0.924302378632464, - -0.928072710209333, -0.931750235288572, -0.935334586120739, + -0.904072142017061, -0.90830066635937, -0.912438361391958, + -0.916484813348769, -0.920439617587981, -0.924302378632464, + -0.928072710209333, -0.931750235288572, -0.935334586120739, -0.938825404273736, - -0.942222340668658, -0.945525055614696, -0.948733218843107, - -0.951846509540242, -0.954864616379626, -0.95778723755309, - -0.960614080800952, -0.963344863441243, -0.965979312397975, + -0.942222340668658, -0.945525055614696, -0.948733218843107, + -0.951846509540242, -0.954864616379626, -0.95778723755309, + -0.960614080800952, -0.963344863441243, -0.965979312397975, -0.968517164228447, - -0.970958165149591, -0.973302071063349, -0.975548647581083, - -0.977697670047013, -0.979748923560684, -0.981702202998454, - -0.983557313034006, -0.985314068157884, -0.986972292696038, + -0.970958165149591, -0.973302071063349, -0.975548647581083, + -0.977697670047013, -0.979748923560684, -0.981702202998454, + -0.983557313034006, -0.985314068157884, -0.986972292696038, -0.988531820827396, - -0.989992496600445, -0.991354173948826, -0.992616716705937, - -0.993779998618556, -0.994843903359459, -0.995808324539061, - -0.996673165716047, -0.997438340407019, -0.998103772095146, + -0.989992496600445, -0.991354173948826, -0.992616716705937, + -0.993779998618556, -0.994843903359459, -0.995808324539061, + -0.996673165716047, -0.997438340407019, -0.998103772095146, -0.998669394237814, - -0.999135150273279, -0.999500993626328, -0.999766887712928, - -0.999932805943894, -0.99999873172754, -0.999964658471342, - -0.999830589582598, -0.999596538468086, -0.999262528532721, + -0.999135150273279, -0.999500993626328, -0.999766887712928, + -0.999932805943894, -0.99999873172754, -0.999964658471342, + -0.999830589582598, -0.999596538468086, -0.999262528532721, -0.998828593177219, - -0.998294775794753, -0.997661129766618, -0.996927718456887, - -0.996094615206081, -0.99516190332383, -0.994129676080546, - -0.992998036698093, -0.991767098339465, -0.990436984097473, + -0.998294775794753, -0.997661129766618, -0.996927718456887, + -0.996094615206081, -0.99516190332383, -0.994129676080546, + -0.992998036698093, -0.991767098339465, -0.990436984097473, -0.989007826982433, - -0.987479769908865, -0.985852965681203, -0.984127576978514, - -0.982303776338232, -0.980381746138899, -0.978361678581934, - -0.97624377567241, -0.974028249198852, -0.971715320712062, + -0.987479769908865, -0.985852965681203, -0.984127576978514, + -0.982303776338232, -0.980381746138899, -0.978361678581934, + -0.97624377567241, -0.974028249198852, -0.971715320712062, -0.969305221502961, - -0.966798192579461, -0.964194484642366, -0.961494358060299, - -0.958698082843669, -0.955805938617666, -0.952818214594305, - -0.949735209543496, -0.946557231763177, -0.943284599048476, + -0.966798192579461, -0.964194484642366, -0.961494358060299, + -0.958698082843669, -0.955805938617666, -0.952818214594305, + -0.949735209543496, -0.946557231763177, -0.943284599048476, -0.939917638659938, - -0.936456687290796, -0.932902091033304, -0.929254205344123, - -0.925513395008784, -0.921680034105203, -0.917754505966276, - -0.913737203141545, -0.909628527357945, -0.90542888947963, + -0.936456687290796, -0.932902091033304, -0.929254205344123, + -0.925513395008784, -0.921680034105203, -0.917754505966276, + -0.913737203141545, -0.909628527357945, -0.90542888947963, -0.901138709466889, - -0.896758416334147, -0.892288448107068, -0.88772925177875, - -0.883081283265026, -0.878345007358874, -0.873520897683938, - -0.868609436647165, -0.863611115390566, -0.858526433742102, + -0.896758416334147, -0.892288448107068, -0.88772925177875, + -0.883081283265026, -0.878345007358874, -0.873520897683938, + -0.868609436647165, -0.863611115390566, -0.858526433742102, -0.8533559001657, - -0.848100031710408, -0.842759353958694, -0.83733440097388, - -0.831825715246746, -0.826233847641272, -0.820559357339561, - -0.814802811785913, -0.808964786630086, -0.803045865669731, + -0.848100031710408, -0.842759353958694, -0.83733440097388, + -0.831825715246746, -0.826233847641272, -0.820559357339561, + -0.814802811785913, -0.808964786630086, -0.803045865669731, -0.797046640792012, - -0.790967711914417, -0.784809686924768, -0.778573181620433, - -0.772258819646744, -0.765867232434637, -0.759399059137508, - -0.752854946567295, -0.746235549129803, -0.739541528759258, + -0.790967711914417, -0.784809686924768, -0.778573181620433, + -0.772258819646744, -0.765867232434637, -0.759399059137508, + -0.752854946567295, -0.746235549129803, -0.739541528759258, -0.73277355485212, - -0.72593230420014, -0.719018460922681, -0.71203271639831, - -0.704975769195658, -0.697848325003564, -0.690651096560507, - -0.683384803583336, -0.676050172695292, -0.668647937353351, + -0.72593230420014, -0.719018460922681, -0.71203271639831, + -0.704975769195658, -0.697848325003564, -0.690651096560507, + -0.683384803583336, -0.676050172695292, -0.668647937353351, -0.66117883777488, - -0.653643620863612, -0.646043040134959, -0.63837785564066, - -0.630648833892775, -0.622856747787041, -0.615002376525574, - -0.607086505538955, -0.599109926407685, -0.591073436783031, + -0.653643620863612, -0.646043040134959, -0.63837785564066, + -0.630648833892775, -0.622856747787041, -0.615002376525574, + -0.607086505538955, -0.599109926407685, -0.591073436783031, -0.582977840307259, - -0.574823946533269, -0.566612570843644, -0.55834453436911, - -0.550020663906425, -0.541641791835699, -0.533208756037154, - -0.524722399807346, -0.516183571774825, -0.507593125815277, + -0.574823946533269, -0.566612570843644, -0.55834453436911, + -0.550020663906425, -0.541641791835699, -0.533208756037154, + -0.524722399807346, -0.516183571774825, -0.507593125815277, -0.49895192096614, - -0.490260821340699, -0.481520696041674, -0.47273241907431, - -0.46389686925898, -0.455014930143305, -0.446087489913793, - -0.437115441307028, -0.428099681520394, -0.419041112122356, + -0.490260821340699, -0.481520696041674, -0.47273241907431, + -0.46389686925898, -0.455014930143305, -0.446087489913793, + -0.437115441307028, -0.428099681520394, -0.419041112122356, -0.409940638962306, - -0.400799172079975, -0.391617625614436, -0.38239691771268, - -0.373137970437818, -0.363841709676858, -0.354509065048132, - -0.345140969808323, -0.335738360759151, -0.326302178153684, + -0.400799172079975, -0.391617625614436, -0.38239691771268, + -0.373137970437818, -0.363841709676858, -0.354509065048132, + -0.345140969808323, -0.335738360759151, -0.326302178153684, -0.316833365602319, - -0.307332869978419, -0.297801641323633, -0.288240632752882, - -0.278650800359055, -0.269033103117399, -0.259388502789626, - -0.249717963827731, -0.24002245327755, -0.230302940682059, + -0.307332869978419, -0.297801641323633, -0.288240632752882, + -0.278650800359055, -0.269033103117399, -0.259388502789626, + -0.249717963827731, -0.24002245327755, -0.230302940682059, -0.220560397984419, - -0.21079579943078, -0.20101012147286, -0.191204342670302, - -0.181379443592811, -0.171536406722112, -0.161676216353687, - -0.151799858498356, -0.141908320783673, -0.13200259235517, + -0.21079579943078, -0.20101012147286, -0.191204342670302, + -0.181379443592811, -0.171536406722112, -0.161676216353687, + -0.151799858498356, -0.141908320783673, -0.13200259235517, -0.122083663777433, - -0.112152526935055, -0.102210174933442, -0.0922576019995117, - -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, - -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, + -0.112152526935055, -0.102210174933442, -0.0922576019995117, + -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, + -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, -0.0223871099574771, - -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, - 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, - 0.0475930341377878, 0.057579156123846, 0.0675595202422752, + -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, + 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, + 0.0475930341377878, 0.057579156123846, 0.0675595202422752, 0.0775331284649787, - 0.0874989834394464, 0.0974560885884857, 0.10740344820988, - 0.117340067575955, 0.127264953033056, 0.137177112100907, + 0.0874989834394464, 0.0974560885884857, 0.10740344820988, + 0.117340067575955, 0.127264953033056, 0.137177112100907, 0.147075553571863, 0.156959287610023, 0.166827325850222, 0.176678681496857, - 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, - 0.225650805269396, 0.235381442954451, 0.245088542691362, + 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, + 0.225650805269396, 0.235381442954451, 0.245088542691362, 0.254771133778243, 0.264428247964056, 0.274058919545427, - 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, - 0.321782029249722, 0.331233920236754, 0.340652688107789, + 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, + 0.321782029249722, 0.331233920236754, 0.340652688107789, 0.350037390993891, 0.35938709043259, 0.368700851461733, - 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, - 0.414698113560782, 0.423776817679428, 0.432813144469452, + 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, + 0.414698113560782, 0.423776817679428, 0.432813144469452, 0.441806190305705, 0.450755055891099, 0.459658846346532, - 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, - 0.503470671402114, 0.512085477241841, 0.520649074960579, + 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, + 0.503470671402114, 0.512085477241841, 0.520649074960579, 0.529160608205695, 0.537619225830956, 0.546024081981648, - 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, - 0.587212716720073, 0.595277547988606, 0.603282851998404, + 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, + 0.587212716720073, 0.595277547988606, 0.603282851998404, 0.611227828225735, 0.619111682179599, 0.626933625481169, - 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, - 0.665087526679283, 0.672521802248466, 0.679888826197857, + 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, + 0.665087526679283, 0.672521802248466, 0.679888826197857, 0.687187861831201, 0.694418179251016, 0.701579055431586, - 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, - 0.736317001920619, 0.74304644096641, 0.749701575987307, + 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, + 0.736317001920619, 0.74304644096641, 0.749701575987307, 0.756281741475356, 0.762786279419489, 0.769214539371333, - 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, - 0.800189441072806, 0.806146805264716, 0.812023555447886, + 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, + 0.800189441072806, 0.806146805264716, 0.812023555447886, 0.817819103952194, 0.823532871227622, 0.829164285902202, - 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, - 0.856066651837255, 0.861192417161521, 0.866232063961728, + 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, + 0.856066651837255, 0.861192417161521, 0.866232063961728, 0.871185088277397, 0.876050994810224, 0.880829296973609, - 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, - 0.903390327594559, 0.907633279098413, 0.911785468030717, + 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, + 0.903390327594559, 0.907633279098413, 0.911785468030717, 0.915846479176035, 0.919815906436639, 0.92369335287311, - 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, - 0.941687625819678, 0.945005369334228, 0.948228613099346, + 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, + 0.941687625819678, 0.945005369334228, 0.948228613099346, 0.951357034793342, 0.954390321576654, 0.957328170123131, - 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, - 0.970575892568149, 0.972935278296897, 0.975197371308593, + 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, + 0.970575892568149, 0.972935278296897, 0.975197371308593, 0.977361945395819, 0.979428784102971, 0.981397680747901, - 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, - 0.989766485827815, 0.991143939568469, 0.992422279741117, + 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, + 0.989766485827815, 0.991143939568469, 0.992422279741117, 0.993601378512806, 0.994681117974643, 0.99566139015358, - 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, - 0.99906765953439, 0.999449418224499, 0.999731232805658, + 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, + 0.99906765953439, 0.999449418224499, 0.999731232805658, 0.999913075096642, 0.999994926913375, 0.999976780070743, - 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, - 0.998386479434759, 0.997768728667684, 0.997051201859214, + 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, + 0.998386479434759, 0.997768728667684, 0.997051201859214, 0.996233970761431, 0.995317117096764, 0.994300732549815, - 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, - 0.987729751655308, 0.986118663792513, 0.984408964885101, + 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, + 0.987729751655308, 0.986118663792513, 0.984408964885101, 0.982600825901538, 0.980694427654217, 0.978689960781373, - 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, - 0.967203954697364, 0.964615627196218, 0.961930838936196, + 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, + 0.967203954697364, 0.964615627196218, 0.961930838936196, 0.959149858393887, 0.956272963665028, 0.953300442436693, - 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, - 0.937014175539204, 0.933474470112512, 0.929841418016701, + 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, + 0.937014175539204, 0.933474470112512, 0.929841418016701, 0.926115382553955, 0.922296736324713, 0.918385861190416, - 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, - 0.897462060474762, 0.893006344689077, 0.888461329013091, + 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, + 0.897462060474762, 0.893006344689077, 0.888461329013091, 0.883827467944587, 0.879105224865808, 0.874295071997128, - 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, - 0.848942801163572, 0.84361559505816, 0.838204028096251, + 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, + 0.848942801163572, 0.84361559505816, 0.838204028096251, 0.832708641430035, 0.827129984593597, 0.821468615447972, - 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, - 0.791941186006336, 0.785795717263661, 0.779571669604088, + 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, + 0.791941186006336, 0.785795717263661, 0.779571669604088, 0.773269665427194, 0.766890334928147, 0.760434316034681, - 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, - 0.727026756299476, 0.720124428411794, 0.713150088681373, + 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, + 0.727026756299476, 0.720124428411794, 0.713150088681373, 0.706104434536373, 0.698988170536338, 0.691802008301737, - 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, - 0.654848115566766, 0.647257894312724, 0.639602947808631, + 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, + 0.654848115566766, 0.647257894312724, 0.639602947808631, 0.631884041542758, 0.624101947399299, 0.616257443581182, - 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, - 0.576126448927319, 0.567924173288695, 0.55966510570601, + 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, + 0.576126448927319, 0.567924173288695, 0.55966510570601, 0.551350072079141, 0.542979903904521, 0.534555438191992, - 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, - 0.491648317252275, 0.482915941655938, 0.474135274867862, + 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, + 0.491648317252275, 0.482915941655938, 0.474135274867862, 0.465307194947413, 0.456432584695223, 0.447512331564922, - 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, - 0.402257798108573, 0.393082573564941, 0.38386804109152, + 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, + 0.402257798108573, 0.393082573564941, 0.38386804109152, 0.374615122133879, 0.365324741976202, 0.355997829648764, - 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, - 0.30884805201492, 0.299321654334707, 0.289765324738495, + 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, + 0.30884805201492, 0.299321654334707, 0.289765324738495, 0.280180018851278, 0.27056669519566, 0.260926315095994, - 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, - 0.212352398277126, 0.202570012076944, 0.192767369044364, + 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, + 0.212352398277126, 0.202570012076944, 0.192767369044364, 0.182945449435517, 0.173105235434182, 0.163247711053556, - 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, - 0.113734989570117, 0.103794357219253, 0.0938433455191623, + 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, + 0.113734989570117, 0.103794357219253, 0.0938433455191623, 0.0838829495627223, 0.0739141653812273, 0.06393798984479, - 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, - 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, - -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, + 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, + 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, + -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, -0.0360105786234153, - -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, - -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, - -0.105819871746218, -0.115758268216946, -0.125685088957318, + -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, + -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, + -0.105819871746218, -0.115758268216946, -0.125685088957318, -0.135599341293531, - -0.145500033808614, -0.155386176441565, -0.16525678058636, - -0.17511085919081, -0.184947426855267, -0.194765499931161, - -0.204564096619365, -0.214342237068377, -0.2240989434723, + -0.145500033808614, -0.155386176441565, -0.16525678058636, + -0.17511085919081, -0.184947426855267, -0.194765499931161, + -0.204564096619365, -0.214342237068377, -0.2240989434723, -0.233833240168624, - -0.243544153735791, -0.253230713090538, -0.262891949585, - -0.272526897103582, -0.282134592159557, -0.291714073991427, - -0.301264384658992, -0.310784569139144, -0.320273675421368, + -0.243544153735791, -0.253230713090538, -0.262891949585, + -0.272526897103582, -0.282134592159557, -0.291714073991427, + -0.301264384658992, -0.310784569139144, -0.320273675421368, -0.329730754602944, - -0.339154860983835, -0.348545052161256, -0.357900389123914, - -0.367219936345908, -0.376502761880283, -0.385747937452222, - -0.394954538551871, -0.404121644526792, -0.413248338674028, + -0.339154860983835, -0.348545052161256, -0.357900389123914, + -0.367219936345908, -0.376502761880283, -0.385747937452222, + -0.394954538551871, -0.404121644526792, -0.413248338674028, -0.422333708331768, - -0.431376844970621, -0.440376844284454, -0.449332806280839, - -0.458243835371038, -0.467109040459569, -0.47592753503331, - -0.484698437250152, -0.493420870027184, -0.502093961128397, + -0.431376844970621, -0.440376844284454, -0.449332806280839, + -0.458243835371038, -0.467109040459569, -0.47592753503331, + -0.484698437250152, -0.493420870027184, -0.502093961128397, -0.510716843251906, - -0.519288654116686, -0.527808536548793, -0.536275638567084, - -0.544689113468413, -0.553048119912302, -0.561351822005071, - -0.569599389383433, -0.57778999729752, -0.585922826693367, + -0.519288654116686, -0.527808536548793, -0.536275638567084, + -0.544689113468413, -0.553048119912302, -0.561351822005071, + -0.569599389383433, -0.57778999729752, -0.585922826693367, -0.593997064294812, - -0.602011902684824, -0.609966540386242, -0.617860181941925, - -0.625692037994295, -0.633461325364275, -0.641167267129602, - -0.648809092702519, -0.656386037906838, -0.663897345054353, + -0.602011902684824, -0.609966540386242, -0.617860181941925, + -0.625692037994295, -0.633461325364275, -0.641167267129602, + -0.648809092702519, -0.656386037906838, -0.663897345054353, -0.671342263020609, - -0.678720047320012, -0.686029960180282, -0.693271270616224, - -0.700443254502829, -0.707545194647683, -0.714576380862692, - -0.721536110035093, -0.728423686197768, -0.735238420598841, + -0.678720047320012, -0.686029960180282, -0.693271270616224, + -0.700443254502829, -0.707545194647683, -0.714576380862692, + -0.721536110035093, -0.728423686197768, -0.735238420598841, -0.741979631770551, - -0.748646645597399, -0.755238795383558, -0.76175542191954, - -0.768195873548125, -0.774559506229517, -0.780845683605749, - -0.787053777064324, -0.793183165801068, -0.799233236882215, + -0.748646645597399, -0.755238795383558, -0.76175542191954, + -0.768195873548125, -0.774559506229517, -0.780845683605749, + -0.787053777064324, -0.793183165801068, -0.799233236882215, -0.8052033853057, - -0.811093014061656, -0.816901534192113, -0.8226283648499, - -0.828272933356724, -0.833834675260437, -0.839313034391484, - -0.844707462918517, -0.850017421403178, -0.855242378854046, + -0.811093014061656, -0.816901534192113, -0.8226283648499, + -0.828272933356724, -0.833834675260437, -0.839313034391484, + -0.844707462918517, -0.850017421403178, -0.855242378854046, -0.860381812779727, - -0.865435209241112, -0.870402062902767, -0.875281877083464, - -0.880074163805853, -0.884778443845253, -0.889394246777581, - -0.893921111026392, -0.898358583909032, -0.90270622168191, + -0.865435209241112, -0.870402062902767, -0.875281877083464, + -0.880074163805853, -0.884778443845253, -0.889394246777581, + -0.893921111026392, -0.898358583909032, -0.90270622168191, -0.906963589584872, - -0.911130261884677, -0.915205821917566, -0.919189862130932, - -0.923081984124074, -0.926881798688036, -0.930588925844528, - -0.934202994883924, -0.937723644402332, -0.941150522337732, + -0.911130261884677, -0.915205821917566, -0.919189862130932, + -0.923081984124074, -0.926881798688036, -0.930588925844528, + -0.934202994883924, -0.937723644402332, -0.941150522337732, -0.944483286005189, - -0.947721602131112, -0.950865146886587, -0.953913605919758, - -0.956866674387264, -0.959724056984716, -0.962485467976237, - -0.965150631223029, -0.967719280210989, -0.970191158077357, + -0.947721602131112, -0.950865146886587, -0.953913605919758, + -0.956866674387264, -0.959724056984716, -0.962485467976237, + -0.965150631223029, -0.967719280210989, -0.970191158077357, -0.972566017636408, - -0.974843621404164, -0.977023741622146, -0.97910616028015, - -0.981090669138045, -0.982977069746599, -0.984765173467324, - -0.986454801491336, -0.988045784857242, -0.989537964468031, + -0.974843621404164, -0.977023741622146, -0.97910616028015, + -0.981090669138045, -0.982977069746599, -0.984765173467324, + -0.986454801491336, -0.988045784857242, -0.989537964468031, -0.990931191106986, - -0.992225325452603, -0.993420238092527, -0.994515809536489, - -0.995511930228257, -0.996408500556594, -0.997205430865212, - -0.997902641461745, -0.998500062625715, -0.998997634615504, + -0.992225325452603, -0.993420238092527, -0.994515809536489, + -0.995511930228257, -0.996408500556594, -0.997205430865212, + -0.997902641461745, -0.998500062625715, -0.998997634615504, -0.999395307674325, - -0.999693042035206, -0.999890807924959, -0.999988585567158, - -0.999986365184122, -0.999884146997886, -0.999681941230185, - -0.999379768101426, -0.998977657828671, -0.998475650622611, + -0.999693042035206, -0.999890807924959, -0.999988585567158, + -0.999986365184122, -0.999884146997886, -0.999681941230185, + -0.999379768101426, -0.998977657828671, -0.998475650622611, -0.99787379668355, - -0.997172156196378, -0.996370799324562, -0.995469806203119, - -0.994469266930611, -0.993369281560131, -0.992169960089301, - -0.990871422449267, -0.989473798492712, -0.987977227980866, + -0.997172156196378, -0.996370799324562, -0.995469806203119, + -0.994469266930611, -0.993369281560131, -0.992169960089301, + -0.990871422449267, -0.989473798492712, -0.987977227980866, -0.986381860569534, - -0.984687855794127, -0.982895383053711, -0.981004621594066, - -0.979015760489763, -0.976928998625255, -0.974744544674989, - -0.97246261708254, -0.970083444038766, -0.967607263458988, + -0.984687855794127, -0.982895383053711, -0.981004621594066, + -0.979015760489763, -0.976928998625255, -0.974744544674989, + -0.97246261708254, -0.970083444038766, -0.967607263458988, -0.965034322959201, - -0.96236487983131, -0.959599201017404, -0.95673756308306, - -0.953780252189686, -0.950727564065908, -0.947579803977993, - -0.944337286699328, -0.941000336478938, -0.937569287009064, + -0.96236487983131, -0.959599201017404, -0.95673756308306, + -0.953780252189686, -0.950727564065908, -0.947579803977993, + -0.944337286699328, -0.941000336478938, -0.937569287009064, -0.934044481391795, - -0.930426272104753, -0.926715020965855, -0.922911099097119, - -0.919014886887564, -0.915026773955164, -0.910947159107888, - -0.906776450303821, -0.902515064610368, -0.898163428162546, + -0.930426272104753, -0.926715020965855, -0.922911099097119, + -0.919014886887564, -0.915026773955164, -0.910947159107888, + -0.906776450303821, -0.902515064610368, -0.898163428162546, -0.893721976120377, - -0.889191152625361, -0.884571410756073, -0.879863212482849, - -0.875067028621594, -0.870183338786697, -0.865212631343072, - -0.86015540335732, -0.855012160548026, -0.849783417235186, - -0.844469696288772 + -0.889191152625361, -0.884571410756073, -0.879863212482849, + -0.875067028621594, -0.870183338786697, -0.865212631343072, + -0.86015540335732, -0.855012160548026, -0.849783417235186, + -0.844469696288772 }; diff --git a/libdap4/CMakeLists.txt b/libdap4/CMakeLists.txt index ce586a498..0eb4e173c 100644 --- a/libdap4/CMakeLists.txt +++ b/libdap4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(dap4_SOURCES d4crc32.c d4curlfunctions.c d4fix.c d4data.c d4file.c d4parser.c d4meta.c d4varx.c d4dump.c d4swap.c d4chunk.c d4printer.c d4read.c d4http.c d4util.c d4odom.c d4cvt.c d4debug.c ncd4dispatch.c ezxml_extra.c ezxml.c) add_library(dap4 OBJECT ${dap4_SOURCES}) @@ -29,4 +35,3 @@ ENDIF(BUILD_PARALLEL) FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.h) SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} dce.y CMakeLists.txt Makefile.am) ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") - diff --git a/libdap4/Makefile.am b/libdap4/Makefile.am index 3dd113090..8a5690fed 100644 --- a/libdap4/Makefile.am +++ b/libdap4/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This automake file generates the Makefile to libdap2. Whatever that # is! diff --git a/libdap4/d4bytes.c b/libdap4/d4bytes.c index 8a7ee3f77..149f02eb0 100644 --- a/libdap4/d4bytes.c +++ b/libdap4/d4bytes.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include diff --git a/libdap4/d4bytes.h b/libdap4/d4bytes.h index 2ad1c610e..302eea2dd 100644 --- a/libdap4/d4bytes.h +++ b/libdap4/d4bytes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef D4BYTES_H diff --git a/libdap4/d4chunk.c b/libdap4/d4chunk.c index c85b48b7b..5c211722b 100644 --- a/libdap4/d4chunk.c +++ b/libdap4/d4chunk.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4chunk.h b/libdap4/d4chunk.h index eecf500ef..97ae4d4d5 100644 --- a/libdap4/d4chunk.h +++ b/libdap4/d4chunk.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlflags.c b/libdap4/d4curlflags.c index 89e09aa10..9cf6d4202 100644 --- a/libdap4/d4curlflags.c +++ b/libdap4/d4curlflags.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlfunctions.c b/libdap4/d4curlfunctions.c index 7279d7289..718588078 100644 --- a/libdap4/d4curlfunctions.c +++ b/libdap4/d4curlfunctions.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4curlfunctions.h b/libdap4/d4curlfunctions.h index 52fe1b5d2..3f1d85c9b 100644 --- a/libdap4/d4curlfunctions.h +++ b/libdap4/d4curlfunctions.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4cvt.c b/libdap4/d4cvt.c index 2b686110d..9e7666ecc 100644 --- a/libdap4/d4cvt.c +++ b/libdap4/d4cvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap4/d4data.c b/libdap4/d4data.c index f73783604..51ea6e28b 100644 --- a/libdap4/d4data.c +++ b/libdap4/d4data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4debug.c b/libdap4/d4debug.c index 8d11c7616..88e99a3e2 100644 --- a/libdap4/d4debug.c +++ b/libdap4/d4debug.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #include "config.h" diff --git a/libdap4/d4debug.h b/libdap4/d4debug.h index 4d4ff68d1..cbba56bea 100644 --- a/libdap4/d4debug.h +++ b/libdap4/d4debug.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ #ifndef D4DEBUG_H diff --git a/libdap4/d4dump.c b/libdap4/d4dump.c index 0384fa9ec..b2e189310 100644 --- a/libdap4/d4dump.c +++ b/libdap4/d4dump.c @@ -1,5 +1,5 @@ -/* Copyright 2012, UCAR/Unidata. - See the LICENSE file for more information. +/* Copyright 2018, UCAR/Unidata. + See the COPYRIGHT file for more information. */ #include "d4includes.h" @@ -107,4 +107,3 @@ NCD4_dumpatomic(NCD4node* var, void* data) union ATOMICS* p = (union ATOMICS*)data; return p; } - diff --git a/libdap4/d4file.c b/libdap4/d4file.c index cbb69b1d4..8efe4e141 100644 --- a/libdap4/d4file.c +++ b/libdap4/d4file.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4fix.c b/libdap4/d4fix.c index e28d88b0b..ac16366cf 100644 --- a/libdap4/d4fix.c +++ b/libdap4/d4fix.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4http.c b/libdap4/d4http.c index 891541d4e..1c1319f04 100644 --- a/libdap4/d4http.c +++ b/libdap4/d4http.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4http.h b/libdap4/d4http.h index dbd307a6e..ec47fe955 100644 --- a/libdap4/d4http.h +++ b/libdap4/d4http.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4includes.h b/libdap4/d4includes.h index 6979e7876..02ab0262f 100644 --- a/libdap4/d4includes.h +++ b/libdap4/d4includes.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4mem.c b/libdap4/d4mem.c index c46b4bcae..dda02b85e 100644 --- a/libdap4/d4mem.c +++ b/libdap4/d4mem.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4meta.c b/libdap4/d4meta.c index 57e8ffd3f..cb45d2239 100644 --- a/libdap4/d4meta.c +++ b/libdap4/d4meta.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4odom.c b/libdap4/d4odom.c index 419bb41f5..40ec4de94 100644 --- a/libdap4/d4odom.c +++ b/libdap4/d4odom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4odom.h b/libdap4/d4odom.h index 385ebc90a..ae37997e1 100644 --- a/libdap4/d4odom.h +++ b/libdap4/d4odom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4parser.c b/libdap4/d4parser.c index 7c202f873..d7cf36f25 100644 --- a/libdap4/d4parser.c +++ b/libdap4/d4parser.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4printer.c b/libdap4/d4printer.c index 778f11c45..88b1392d2 100644 --- a/libdap4/d4printer.c +++ b/libdap4/d4printer.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4read.c b/libdap4/d4read.c index 598c683cb..b9a39070e 100644 --- a/libdap4/d4read.c +++ b/libdap4/d4read.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "d4includes.h" #include "d4curlfunctions.h" #ifdef HAVE_FCNTL_H diff --git a/libdap4/d4read.h b/libdap4/d4read.h index a672e4bab..9816172ca 100644 --- a/libdap4/d4read.h +++ b/libdap4/d4read.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4swap.c b/libdap4/d4swap.c index 6a48d8fad..3fc0aa58f 100644 --- a/libdap4/d4swap.c +++ b/libdap4/d4swap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4util.c b/libdap4/d4util.c index be6e2305f..0f2cf9023 100644 --- a/libdap4/d4util.c +++ b/libdap4/d4util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4util.h b/libdap4/d4util.h index 00f39eb03..cba660eeb 100644 --- a/libdap4/d4util.h +++ b/libdap4/d4util.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/d4varx.c b/libdap4/d4varx.c index 4316b66bd..ee7095ed3 100644 --- a/libdap4/d4varx.c +++ b/libdap4/d4varx.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ezxml.c b/libdap4/ezxml.c index 59d76b417..333211c82 100644 --- a/libdap4/ezxml.c +++ b/libdap4/ezxml.c @@ -94,7 +94,7 @@ ezxml_t ezxml_vget(ezxml_t xml, va_list ap) int idx = -1; if (name && *name) { - idx = va_arg(ap, int); + idx = va_arg(ap, int); xml = ezxml_child(xml, name); } return (idx < 0) ? xml : ezxml_vget(ezxml_idx(xml, idx), ap); @@ -136,7 +136,7 @@ ezxml_t ezxml_err(ezxml_root_t root, char *s, const char *err, ...) va_list ap; int line = 1; char *t, fmt[EZXML_ERRL]; - + for (t = root->s; t < s; t++) if (*t == '\n') line++; snprintf(fmt, EZXML_ERRL, "[error near line %d]: %s", line, err); @@ -164,7 +164,7 @@ char *ezxml_decode(char *s, char **ent, char t) if (*s == '\n') memmove(s, (s + 1), strlen(s)); } } - + for (s = r; ; ) { while (*s && *s != '&' && (*s != '%' || t != '%') && !isspace(*s)) s++; @@ -219,7 +219,7 @@ char *ezxml_decode(char *s, char **ent, char t) void ezxml_open_tag(ezxml_root_t root, char *name, char **attr) { ezxml_t xml = root->cur; - + if (xml->name) xml = ezxml_add_child(xml, name, strlen(xml->txt)); else xml->name = name; /* first open tag*/ @@ -318,7 +318,7 @@ short ezxml_internal_dtd(ezxml_root_t root, char *s, size_t len) { char q, *c, *t, *n = NULL, *v, **ent, **pe; int i, j; - + pe = memcpy(malloc(sizeof(EZXML_NIL)), EZXML_NIL, sizeof(EZXML_NIL)); for (s[len] = '\0'; s; ) { @@ -454,7 +454,7 @@ char *ezxml_str2utf8(char **s, size_t *len) void ezxml_free_attr(char **attr) { int i = 0; char *m; - + if (! attr || attr == EZXML_NIL) return; /* nothing to free*/ while (attr[i]) i += 2; /* find end of attribute list*/ m = attr[i + 1]; /* list of which names and values are malloced*/ @@ -477,7 +477,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) if (! len) return ezxml_err(root, NULL, "root tag missing"); root->u = ezxml_str2utf8(&s, &len); /* convert utf-16 to utf-8*/ root->e = (root->s = s) + len; /* record start and end of work area*/ - + e = s[len - 1]; /* save end char*/ s[len - 1] = '\0'; /* turn end char into null terminator*/ @@ -487,14 +487,14 @@ ezxml_t ezxml_parse_str(char *s, size_t len) for (; ; ) { attr = (char **)EZXML_NIL; d = ++s; - + if (isalpha(*s) || *s == '_' || *s == ':' || *s < '\0') { /* new tag*/ if (! root->cur) return ezxml_err(root, d, "markup outside of root element"); s += strcspn(s, EZXML_WS "/>"); while (isspace(*s)) *(s++) = '\0'; /* null terminate tag name*/ - + if (*s && *s != '/' && *s != '>') /* find tag in default attr list*/ for (i = 0; (a = root->attr[i]) && strcmp(a[0], d); i++); @@ -509,7 +509,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) attr[l] = s; /* set attribute name*/ s += strcspn(s, EZXML_WS "=/>"); - if (*s == '=' || isspace(*s)) { + if (*s == '=' || isspace(*s)) { *(s++) = '\0'; /* null terminate tag attribute name*/ q = *(s += strspn(s, EZXML_WS "=")); if (q == '"' || q == '\'') { /* attribute value*/ @@ -547,7 +547,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) } else { if (l) ezxml_free_attr(attr); - return ezxml_err(root, d, "missing >"); + return ezxml_err(root, d, "missing >"); } } else if (*s == '/') { /* close tag*/ @@ -567,7 +567,7 @@ ezxml_t ezxml_parse_str(char *s, size_t len) else return ezxml_err(root, d, "unclosed ') || (l && (*s != ']' || + for (l = 0; *s && ((! l && *s != '>') || (l && (*s != ']' || *(s + strspn(s + 1, EZXML_WS) + 1) != '>'))); l = (*s == '[') ? 1 : l) s += strcspn(s + 1, "[]>") + 1; if (! *s && e != '>') @@ -577,12 +577,12 @@ ezxml_t ezxml_parse_str(char *s, size_t len) } else if (*s == '?') { /* processing instructions*/ do { s = strchr(s, '?'); } while (s && *(++s) && *s != '>'); - if (! s || (! *s && e != '>')) + if (! s || (! *s && e != '>')) return ezxml_err(root, d, "unclosed *max) *dst = realloc(*dst, *max += EZXML_BUFSIZE); @@ -687,7 +687,7 @@ char *ezxml_toxml_r(ezxml_t xml, char **s, size_t *len, size_t *max, *s = (xml->child) ? ezxml_toxml_r(xml->child, s, len, max, 0, attr) /*child*/ : ezxml_ampencode(xml->txt, -1, s, len, max, 0); /*data*/ - + while (*len + strlen(xml->name) + 4 > *max) /* reallocate s*/ *s = realloc(*s, *max += EZXML_BUFSIZE); @@ -765,7 +765,7 @@ void ezxml_free(ezxml_t xml) for (j = 1; root->pi[i][j]; j++); free(root->pi[i][j + 1]); free(root->pi[i]); - } + } if (root->pi[0]) free(root->pi); /* free processing instructions*/ if (root->len == -1) free(root->m); /* malloced xml data*/ @@ -793,7 +793,7 @@ ezxml_t ezxml_new(const char *name) { static char *ent[] = { "lt;", "<", "gt;", ">", "quot;", """, "apos;", "'", "amp;", "&", NULL }; - ezxml_root_t root = (ezxml_root_t)memset(malloc(sizeof(struct ezxml_root)), + ezxml_root_t root = (ezxml_root_t)memset(malloc(sizeof(struct ezxml_root)), '\0', sizeof(struct ezxml_root)); root->xml.name = (char *)name; root->cur = &root->xml; @@ -948,7 +948,7 @@ ezxml_t ezxml_cut(ezxml_t xml) while (cur->next && cur->next != xml) cur = cur->next; if (cur->next) cur->next = cur->next->next; /* patch next list*/ - } + } } xml->ordered = xml->sibling = xml->next = NULL; return xml; diff --git a/libdap4/ezxml.h b/libdap4/ezxml.h index f5e235adb..64a32016f 100644 --- a/libdap4/ezxml.h +++ b/libdap4/ezxml.h @@ -66,7 +66,7 @@ ezxml_t ezxml_parse_fd(int fd); /* a wrapper for ezxml_parse_fd() that accepts a file name*/ ezxml_t ezxml_parse_file(const char *file); - + /* Wrapper for ezxml_parse_str() that accepts a file stream. Reads the entire*/ /* stream into memory and then parses it. For xml files, use ezxml_parse_file()*/ /* or ezxml_parse_fd()*/ @@ -111,7 +111,7 @@ const char **ezxml_pi(ezxml_t xml, const char *target); /* frees the memory allocated for an ezxml structure*/ void ezxml_free(ezxml_t xml); - + /* returns parser error message or empty string if none*/ const char *ezxml_error(ezxml_t xml); diff --git a/libdap4/ezxml_extra.c b/libdap4/ezxml_extra.c index 3e58bd502..954b189b5 100644 --- a/libdap4/ezxml_extra.c +++ b/libdap4/ezxml_extra.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ diff --git a/libdap4/ncd4.h b/libdap4/ncd4.h index 5f682d416..989f6ba17 100644 --- a/libdap4/ncd4.h +++ b/libdap4/ncd4.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4dispatch.c b/libdap4/ncd4dispatch.c index 97eb2290b..a86038265 100644 --- a/libdap4/ncd4dispatch.c +++ b/libdap4/ncd4dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4dispatch.h b/libdap4/ncd4dispatch.h index 449b24eda..dde3cf4ac 100644 --- a/libdap4/ncd4dispatch.h +++ b/libdap4/ncd4dispatch.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdap4/ncd4types.h b/libdap4/ncd4types.h index 44496234a..9581ff662 100644 --- a/libdap4/ncd4types.h +++ b/libdap4/ncd4types.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/CMakeLists.txt b/libdispatch/CMakeLists.txt index 9d274464c..133121dc2 100644 --- a/libdispatch/CMakeLists.txt +++ b/libdispatch/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(libdispatch_SOURCES dparallel.c dcopy.c dfile.c ddim.c datt.c dattinq.c dattput.c dattget.c derror.c dvar.c dvarget.c dvarput.c dvarinq.c ddispatch.c nclog.c dstring.c dutf8.c dinternal.c doffsets.c ncuri.c nclist.c ncbytes.c nchashmap.c nctime.c nc.c nclistmgr.c utf8proc.h utf8proc.c dwinpath.c dutil.c drc.c dauth.c dreadonly.c dnotnc4.c dnotnc3.c crc32.c daux.c) IF(USE_NETCDF4) diff --git a/libdispatch/Makefile.am b/libdispatch/Makefile.am index 9633bda48..613bf27e0 100644 --- a/libdispatch/Makefile.am +++ b/libdispatch/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This Makefile controls the building of the dispatch layer of the # netCDF library. The dispatch layer decides whether to call the diff --git a/libdispatch/datt.c b/libdispatch/datt.c index 9a9df359a..d9896ed5e 100644 --- a/libdispatch/datt.c +++ b/libdispatch/datt.c @@ -1,6 +1,6 @@ /** \file -Copyright 2010 University Corporation for Atmospheric -Research/Unidata. See \ref copyright file for more info. +Copyright 2018 University Corporation for Atmospheric +Research/Unidata. See \ref copyright file for more info. These functions read and write attributes. */ @@ -22,7 +22,7 @@ created, while the netCDF dataset is in define mode. Additional attributes may be added later by reentering define mode. A netCDF attribute has a netCDF variable to which it is assigned, a -name, a type, a length, and a sequence of one or more values. +name, a type, a length, and a sequence of one or more values. An attribute is designated by its variable ID and name. When an attribute name is not known, it may be designated by its variable ID @@ -50,7 +50,7 @@ Operations supported on attributes are: - Copy attribute from one netCDF variable to another. - Get name of attribute from its number. - Rename an attribute. -- Delete an attribute. +- Delete an attribute. */ /*! \{*/ /* All these functions are part of the above defgroup... */ @@ -69,16 +69,16 @@ new name is longer than the original name, the netCDF dataset must be in define mode. You cannot rename an attribute to have the same name as another attribute of the same variable. -\param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +\param ncid NetCDF or group ID, from a previous call to nc_open(), +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. -\param newname The new attribute \ref object_name. +\param newname The new attribute \ref object_name.

Example

@@ -90,8 +90,8 @@ dataset named foo.nc: #include ... int status; - int ncid; - int rh_id; + int ncid; + int rh_id; ... status = nc_open("foo.nc", NC_NOWRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -134,13 +134,13 @@ The function nc_del_att() deletes a netCDF attribute from an open netCDF dataset. The netCDF dataset must be in define mode. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute name. +\param name Attribute name.

Example

@@ -150,9 +150,9 @@ Units for a variable rh in an existing netCDF dataset named foo.nc: \code #include ... - int status; - int ncid; - int rh_id; + int status; + int ncid; + int rh_id; ... status = nc_open("foo.nc", NC_WRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -160,7 +160,7 @@ Units for a variable rh in an existing netCDF dataset named foo.nc: status = nc_inq_varid (ncid, "rh", &rh_id); if (status != NC_NOERR) handle_error(status); ... - status = nc_redef(ncid); + status = nc_redef(ncid); if (status != NC_NOERR) handle_error(status); status = nc_del_att(ncid, rh_id, "Units"); if (status != NC_NOERR) handle_error(status); diff --git a/libdispatch/dattget.c b/libdispatch/dattget.c index 969c7bd3d..13a957559 100644 --- a/libdispatch/dattget.c +++ b/libdispatch/dattget.c @@ -3,7 +3,7 @@ Attribute functions These functions read and write attributes. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dattinq.c b/libdispatch/dattinq.c index e5acab0d0..025d5c8b7 100644 --- a/libdispatch/dattinq.c +++ b/libdispatch/dattinq.c @@ -3,7 +3,7 @@ Attribute inquiry functions These functions find out about attributes. -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" @@ -20,7 +20,7 @@ Return information about a netCDF attribute. The function nc_inq_att returns the attribute's type and length. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL @@ -49,12 +49,12 @@ foo.nc: \code #include ... - int status; - int ncid; - int rh_id; - nc_type vr_type, t_type; - size_t vr_len, t_len; - + int status; + int ncid; + int rh_id; + nc_type vr_type, t_type; + size_t vr_len, t_len; + ... status = nc_open("foo.nc", NC_NOWRITE, &ncid); if (status != NC_NOERR) handle_error(status); @@ -80,7 +80,7 @@ foo.nc: \author Glenn Davis, Ed Hartnett, Dennis Heimbigner */ int -nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, +nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, size_t *lenp) { NC* ncp; @@ -94,13 +94,13 @@ nc_inq_att(int ncid, int varid, const char *name, nc_type *xtypep, Find an attribute ID. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param idp Pointer to location for returned attribute number that specifies which attribute this is for this variable (or which global @@ -171,7 +171,7 @@ nc_inq_attid(int ncid, int varid, const char *name, int *idp) Find the name of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL @@ -183,7 +183,7 @@ number of attributes for the variable, as returned from a call to nc_inq_varnatts(). \param name Pointer to the location for the returned attribute \ref -object_name. +object_name. \section nc_inq_attname_example Example @@ -263,7 +263,7 @@ nc_inq_attname(int ncid, int varid, int attnum, char *name) Find number of global or group attributes. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param nattsp Pointer where number of global or group attributes will be @@ -271,7 +271,7 @@ written. \ref ignored_if_null. \section nc_inq_natts_example Example -Here is an example from +Here is an example from \code @@ -311,13 +311,13 @@ nc_inq_natts(int ncid, int *nattsp) Find the type of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global or group attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param xtypep Pointer to location for returned attribute \ref data_type. @@ -368,17 +368,17 @@ nc_inq_atttype(int ncid, int varid, const char *name, nc_type *xtypep) Find the length of an attribute. \param ncid NetCDF or group ID, from a previous call to nc_open(), -nc_create(), nc_def_grp(), or associated inquiry functions such as +nc_create(), nc_def_grp(), or associated inquiry functions such as nc_inq_ncid(). \param varid Variable ID of the attribute's variable, or ::NC_GLOBAL for a global or group attribute. -\param name Attribute \ref object_name. +\param name Attribute \ref object_name. \param lenp Pointer to location for returned number of values currently stored in the attribute. Before using the value as a C -string, make sure it is null-terminated. \ref ignored_if_null. +string, make sure it is null-terminated. \ref ignored_if_null. \section nc_inq_attlen_example Example diff --git a/libdispatch/dattput.c b/libdispatch/dattput.c index dcc5f2e6c..1a43b5232 100644 --- a/libdispatch/dattput.c +++ b/libdispatch/dattput.c @@ -3,7 +3,7 @@ Functions to write attributes. These functions read and write attributes. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dauth.c b/libdispatch/dauth.c index 914ad6ab4..0d1085901 100644 --- a/libdispatch/dauth.c +++ b/libdispatch/dauth.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ diff --git a/libdispatch/daux.c b/libdispatch/daux.c index 1f7b40ba5..b57d4f6a1 100644 --- a/libdispatch/daux.c +++ b/libdispatch/daux.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @@ -31,7 +31,7 @@ struct NCAUX_FIELD { char* name; nc_type fieldtype; size_t ndims; - int dimsizes[NC_MAX_VAR_DIMS]; + int dimsizes[NC_MAX_VAR_DIMS]; size_t size; size_t offset; size_t alignment; @@ -96,7 +96,7 @@ ncaux_reclaim_data(int ncid, int xtype, void* memory, size_t count) size_t typesize = 0; size_t i; Position offset; - + if(ncid < 0 || xtype < 0 || (memory == NULL && count > 0) || xtype == NC_NAT) @@ -110,7 +110,7 @@ ncaux_reclaim_data(int ncid, int xtype, void* memory, size_t count) if((stat=reclaim_datar(ncid,xtype,typesize,&offset))) /* reclaim one instance */ break; } - + done: return stat; } @@ -120,7 +120,7 @@ static int reclaim_datar(int ncid, int xtype, size_t typesize, Position* offset) { int stat = NC_NOERR; - + switch (xtype) { case NC_CHAR: case NC_BYTE: case NC_UBYTE: case NC_SHORT: case NC_USHORT: @@ -147,7 +147,7 @@ reclaim_datar(int ncid, int xtype, size_t typesize, Position* offset) } return stat; } - + #ifdef USE_NETCDF4 static ptrdiff_t @@ -162,7 +162,7 @@ static int reclaim_usertype(int ncid, int xtype, Position* offset) { int stat = NC_NOERR; - size_t size; + size_t size; nc_type basetype; size_t nfields; int klass; @@ -250,7 +250,7 @@ reclaim_compound(int ncid, int xtype, size_t cmpdsize, size_t nfields, Position* for(i=0;ioffset = saveoffset; @@ -278,13 +278,13 @@ ncaux_begin_compound(int ncid, const char *name, int alignmode, void** tagp) struct NCAUX_CMPD* cmpd = NULL; if(tagp) *tagp = NULL; - + cmpd = (struct NCAUX_CMPD*)calloc(1,sizeof(struct NCAUX_CMPD)); if(cmpd == NULL) {status = NC_ENOMEM; goto fail;} cmpd->ncid = ncid; cmpd->mode = alignmode; cmpd->nfields = 0; - cmpd->name = strdup(name); + cmpd->name = strdup(name); if(cmpd->name == NULL) {status = NC_ENOMEM; goto fail;} if(tagp) { @@ -350,7 +350,7 @@ ncaux_add_field(void* tag, const char *name, nc_type field_type, field = &cmpd->fields[cmpd->nfields+1]; field->name = strdup(name); field->fieldtype = field_type; - if(field->name == NULL) {status = NC_ENOMEM; goto done;} + if(field->name == NULL) {status = NC_ENOMEM; goto done;} field->ndims = (size_t)ndims; memcpy(field->dimsizes,dimsizes,sizeof(int)*field->ndims); cmpd->nfields++; @@ -458,7 +458,7 @@ findfirstfield(int ncid, nc_type xtype) int status = NC_NOERR; nc_type fieldtype = xtype; if(xtype <= NC_MAX_ATOMIC_TYPE) goto done; - + status = nc_inq_compound_fieldtype(ncid, xtype, 0, &fieldtype); if(status != NC_NOERR) goto done; fieldtype = findfirstfield(ncid,fieldtype); @@ -494,7 +494,7 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) /* Assign the sizes for the fields */ for(i=0;infields;i++) { - struct NCAUX_FIELD* field = &cmpd->fields[i]; + struct NCAUX_FIELD* field = &cmpd->fields[i]; status = nc_inq_type(cmpd->ncid,field->fieldtype,NULL,&field->size); if(status != NC_NOERR) goto done; totaldimsize = dimproduct(field->ndims,field->dimsizes); @@ -513,7 +513,7 @@ computefieldinfo(struct NCAUX_CMPD* cmpd) break; case NC_ENUM: field->alignment = ncaux_type_alignment(firsttype,cmpd->ncid); - break; + break; case NC_VLEN: /*fall thru*/ case NC_COMPOUND: field->alignment = ncaux_type_alignment(firsttype,cmpd->ncid); @@ -535,5 +535,3 @@ done: } #endif /*USE_NETCDF4*/ - - diff --git a/libdispatch/dcompound.c b/libdispatch/dcompound.c index 902f0a9e6..2399cc741 100644 --- a/libdispatch/dcompound.c +++ b/libdispatch/dcompound.c @@ -1,7 +1,7 @@ /*! \file Functions for Compound Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" @@ -21,9 +21,9 @@ nc_insert_compound(). Call nc_insert_compound() once for each field you wish to insert into the compound type. \param ncid \ref ncid -\param size The size, in bytes, of the compound type. +\param size The size, in bytes, of the compound type. \param name \ref object_name of the created type. -\param typeidp The type ID of the new type is copied here. +\param typeidp The type ID of the new type is copied here. \returns ::NC_NOERR No error. \returns ::NC_EBADID Bad \ref ncid. @@ -35,7 +35,7 @@ you wish to insert into the compound type. \returns ::NC_ENOTNC4 This file was created with the strict netcdf-3 flag, therefore netcdf-4 operations are not allowed. (see nc_open). \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. \section nc_def_compound_example Example @@ -46,7 +46,7 @@ int i1; int i2; }; struct s1 data[DIM_LEN], data_in[DIM_LEN]; - + if (nc_create(FILE_NAME, NC_NETCDF4, &ncid)) ERR; if (nc_def_compound(ncid, sizeof(struct s1), SVC_REC, &typeid)) ERR; if (nc_insert_compound(ncid, typeid, BATTLES_WITH_KLINGONS, @@ -60,7 +60,7 @@ if (nc_close(ncid)) ERR; \endcode */ int -nc_def_compound(int ncid, size_t size, const char *name, +nc_def_compound(int ncid, size_t size, const char *name, nc_type *typeidp) { NC* ncp; @@ -82,7 +82,7 @@ nc_def_compound(), or nc_inq_var(). \param offset Offset in byte from the beginning of the compound type for this field. -\param field_typeid The type of the field to be inserted. +\param field_typeid The type of the field to be inserted. \returns ::NC_NOERR No error. \returns ::NC_EBADID Bad \ref ncid. @@ -93,10 +93,10 @@ for this field. \returns ::NC_ENOTNC4 Not an netCDF-4 file, or classic model enabled. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. */ int -nc_insert_compound(int ncid, nc_type xtype, const char *name, +nc_insert_compound(int ncid, nc_type xtype, const char *name, size_t offset, nc_type field_typeid) { NC *ncp; @@ -119,7 +119,7 @@ nc_def_compound(), or nc_inq_var(). \param offset Offset in byte from the beginning of the compound type for this field. -\param field_typeid The type of the field to be inserted. +\param field_typeid The type of the field to be inserted. \param ndims Number of dimensions in array. @@ -135,11 +135,11 @@ for this field. \returns ::NC_ENOTNC4 Not an netCDF-4 file, or classic model enabled. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. \returns ::NC_EPERM Attempt to write to a read-only file. -\returns ::NC_ENOTINDEFINE Not in define mode. +\returns ::NC_ENOTINDEFINE Not in define mode. */ int -nc_insert_array_compound(int ncid, nc_type xtype, const char *name, - size_t offset, nc_type field_typeid, +nc_insert_array_compound(int ncid, nc_type xtype, const char *name, + size_t offset, nc_type field_typeid, int ndims, const int *dim_sizes) { NC* ncp; @@ -172,7 +172,7 @@ placed here. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound(int ncid, nc_type xtype, char *name, +nc_inq_compound(int ncid, nc_type xtype, char *name, size_t *sizep, size_t *nfieldsp) { int class = 0; @@ -206,7 +206,7 @@ nc_inq_compound_name(int ncid, nc_type xtype, char *name) } /** \ingroup user_types -Learn the size of a compound type. +Learn the size of a compound type. \param ncid \ref ncid @@ -229,7 +229,7 @@ nc_inq_compound_size(int ncid, nc_type xtype, size_t *sizep) } /** \ingroup user_types -Learn the number of fields in a compound type. +Learn the number of fields in a compound type. \param ncid \ref ncid @@ -252,7 +252,7 @@ nc_inq_compound_nfields(int ncid, nc_type xtype, size_t *nfieldsp) } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -284,9 +284,9 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, - char *name, size_t *offsetp, - nc_type *field_typeidp, int *ndimsp, +nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, + char *name, size_t *offsetp, + nc_type *field_typeidp, int *ndimsp, int *dim_sizesp) { NC* ncp; @@ -298,7 +298,7 @@ nc_inq_compound_field(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -318,7 +318,7 @@ ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, char *name) { NC* ncp; @@ -330,7 +330,7 @@ nc_inq_compound_fieldname(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -350,7 +350,7 @@ ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, size_t *offsetp) { NC* ncp; @@ -360,7 +360,7 @@ nc_inq_compound_fieldoffset(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -380,7 +380,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, nc_type *field_typeidp) { NC* ncp; @@ -390,7 +390,7 @@ nc_inq_compound_fieldtype(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -410,7 +410,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, int *ndimsp) { NC* ncp; @@ -420,7 +420,7 @@ nc_inq_compound_fieldndims(int ncid, nc_type xtype, int fieldid, } /** \ingroup user_types -Get information about one of the fields of a compound type. +Get information about one of the fields of a compound type. \param ncid \ref ncid @@ -440,7 +440,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, +nc_inq_compound_fielddim_sizes(int ncid, nc_type xtype, int fieldid, int *dim_sizesp) { NC *ncp; @@ -472,7 +472,7 @@ field. \ref ignored_if_null. \returns ::NC_EHDFERR An error was reported by the HDF5 layer. */ int -nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, +nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, int *fieldidp) { NC* ncp; @@ -481,9 +481,3 @@ nc_inq_compound_fieldindex(int ncid, nc_type xtype, const char *name, return ncp->dispatch->inq_compound_fieldindex(ncid,xtype,name,fieldidp); } /*! \} */ /* End of named group ...*/ - - - - - - diff --git a/libdispatch/dcopy.c b/libdispatch/dcopy.c index 0c73c40bd..8ef13cb48 100644 --- a/libdispatch/dcopy.c +++ b/libdispatch/dcopy.c @@ -1,6 +1,6 @@ /** * @file - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. * * This file has the var and att copy functions. @@ -13,7 +13,7 @@ #ifdef USE_NETCDF4 /** * @internal Compare two netcdf types for equality. Must have the - * ncids as well, to find user-defined types. + * ncids as well, to find user-defined types. * * @param ncid1 File ID. * @param typeid1 Type ID. @@ -152,7 +152,7 @@ NC_compare_nc_types(int ncid1, int typeid1, int ncid2, int typeid2, /** * @internal Recursively hunt for a netCDF type id. (Code from - * nc4internal.c); Return matching typeid or 0 if not found. + * nc4internal.c); Return matching typeid or 0 if not found. * * @param ncid1 File ID. * @param tid1 Type ID. @@ -226,7 +226,7 @@ NC_rec_find_nc_type(int ncid1, nc_type tid1, int ncid2, nc_type* tid2) /** * @internal Given a type in one file, find its equal (if any) in - * another file. It sounds so simple, but it's a real pain! + * another file. It sounds so simple, but it's a real pain! * * @param ncid1 File ID. * @param xtype1 Type ID. diff --git a/libdispatch/ddim.c b/libdispatch/ddim.c index 93e736406..4abcc4e38 100644 --- a/libdispatch/ddim.c +++ b/libdispatch/ddim.c @@ -3,7 +3,7 @@ Dimension functions These functions define and inquire about dimensions. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/ddispatch.c b/libdispatch/ddispatch.c index 1da5846ca..06359bc12 100644 --- a/libdispatch/ddispatch.c +++ b/libdispatch/ddispatch.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ @@ -212,7 +212,7 @@ NC_urlmodel(const char* path, int mode, char** newurl) found = 1; break; } - } + } if(found) { model = protolist->model; /* Substitute the protocol in any case */ @@ -231,7 +231,7 @@ NC_urlmodel(const char* path, int mode, char** newurl) model = NC_FORMATX_DAP2; else if((match=ncurilookup(url,"dap4")) != NULL || strcmp(proto,"dap4") == 0) model = NC_FORMATX_DAP4; - else + else model = 0; /* Still don't know */ } if(model == 0) {/* Last resort: use the mode */ diff --git a/libdispatch/denum.c b/libdispatch/denum.c index dc8a2b057..5e482bdb2 100644 --- a/libdispatch/denum.c +++ b/libdispatch/denum.c @@ -1,7 +1,7 @@ /*! \file Functions for Enum Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/derror.c b/libdispatch/derror.c index 6a2b83fc0..b6d066ec1 100644 --- a/libdispatch/derror.c +++ b/libdispatch/derror.c @@ -3,7 +3,7 @@ Error messages and library version. These functions return the library version, and error messages. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dfile.c b/libdispatch/dfile.c index 9e1684241..ba4a464f7 100644 --- a/libdispatch/dfile.c +++ b/libdispatch/dfile.c @@ -6,7 +6,7 @@ * These functions end up calling functions in one of the dispatch * layers (netCDF-4, dap server, etc). * - * Copyright 2010 University Corporation for Atmospheric + * Copyright 2018 University Corporation for Atmospheric * Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dfilter.c b/libdispatch/dfilter.c index 8c4360722..e48eddfcb 100644 --- a/libdispatch/dfilter.c +++ b/libdispatch/dfilter.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/dgroup.c b/libdispatch/dgroup.c index 8b1fe4b44..c6f553680 100644 --- a/libdispatch/dgroup.c +++ b/libdispatch/dgroup.c @@ -1,7 +1,7 @@ /*! \file Functions for netCDF-4 features. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dinternal.c b/libdispatch/dinternal.c index 4783042dc..c94e2f3cc 100644 --- a/libdispatch/dinternal.c +++ b/libdispatch/dinternal.c @@ -1,7 +1,7 @@ /*! \internal Public functions from dispatch table. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/doffsets.c b/libdispatch/doffsets.c index 0d438c0c8..e366a2d44 100644 --- a/libdispatch/doffsets.c +++ b/libdispatch/doffsets.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/offsets.c,v 1.1 2009/09/25 18:22:40 dmh Exp $ *********************************************************************/ diff --git a/libdispatch/dopaque.c b/libdispatch/dopaque.c index b9065afe5..3a77e7942 100644 --- a/libdispatch/dopaque.c +++ b/libdispatch/dopaque.c @@ -1,7 +1,7 @@ /*! \file Functions for Opaque Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dparallel.c b/libdispatch/dparallel.c index 0f3c3a1f4..a62351435 100644 --- a/libdispatch/dparallel.c +++ b/libdispatch/dparallel.c @@ -1,4 +1,4 @@ -/* Copyright 2010 University Corporation for Atmospheric +/* Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ /** * @file diff --git a/libdispatch/drc.c b/libdispatch/drc.c index 2f7c5bf25..2ad784472 100644 --- a/libdispatch/drc.c +++ b/libdispatch/drc.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #include "config.h" diff --git a/libdispatch/dstring.c b/libdispatch/dstring.c index 2a3cece0d..832e4d8c4 100644 --- a/libdispatch/dstring.c +++ b/libdispatch/dstring.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: string.c,v 1.76 2010/05/26 21:43:33 dmh Exp $ */ diff --git a/libdispatch/dtype.c b/libdispatch/dtype.c index 82fafb475..3de208c1e 100644 --- a/libdispatch/dtype.c +++ b/libdispatch/dtype.c @@ -1,7 +1,7 @@ /*! \file Functions for User-Defined Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dutf8.c b/libdispatch/dutf8.c index c7550aa23..f8e0d6b9a 100644 --- a/libdispatch/dutf8.c +++ b/libdispatch/dutf8.c @@ -1,5 +1,5 @@ /* - * Copyright 2017, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/dutil.c b/libdispatch/dutil.c index aa52bc7f6..f79575ef3 100644 --- a/libdispatch/dutil.c +++ b/libdispatch/dutil.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/dv2i.c b/libdispatch/dv2i.c index c7c05a96d..98b9a6cd6 100644 --- a/libdispatch/dv2i.c +++ b/libdispatch/dv2i.c @@ -1,7 +1,7 @@ /** \file The V2 API Functions. -Copyright 1996, University Corporation for Atmospheric Research +Copyright 2018, University Corporation for Atmospheric Research See \ref copyright file for copying and redistribution conditions. */ diff --git a/libdispatch/dvar.c b/libdispatch/dvar.c index 655667285..50028ac78 100644 --- a/libdispatch/dvar.c +++ b/libdispatch/dvar.c @@ -1102,7 +1102,7 @@ Warning: this function is only defined if the type of the variable is an atomic integer or float type. This function may only be called after the variable is defined, but -before nc_enddef is called. +before nc_enddef is called. @param[in] ncid NetCDF ID, from a previous call to nc_open or nc_create. diff --git a/libdispatch/dvarget.c b/libdispatch/dvarget.c index 8ccf8909d..0a1810809 100644 --- a/libdispatch/dvarget.c +++ b/libdispatch/dvarget.c @@ -1,7 +1,7 @@ /*! \file Functions for getting data from variables. -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ diff --git a/libdispatch/dvarput.c b/libdispatch/dvarput.c index 86c09e54b..5d43b5921 100644 --- a/libdispatch/dvarput.c +++ b/libdispatch/dvarput.c @@ -1,7 +1,7 @@ /*! \file dvarput.c Functions for writing data to variables. -Copyright 2010 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. */ diff --git a/libdispatch/dvlen.c b/libdispatch/dvlen.c index d14ad6972..5236f28cc 100644 --- a/libdispatch/dvlen.c +++ b/libdispatch/dvlen.c @@ -1,7 +1,7 @@ /*! \file Functions for VLEN Types - Copyright 2011 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "ncdispatch.h" diff --git a/libdispatch/dwinpath.c b/libdispatch/dwinpath.c index b83ef543c..3bf010fc6 100644 --- a/libdispatch/dwinpath.c +++ b/libdispatch/dwinpath.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/json.c b/libdispatch/json.c index 4196885d1..2fe194550 100644 --- a/libdispatch/json.c +++ b/libdispatch/json.c @@ -1,11 +1,11 @@ -/* Copyright 2016, UCAR/Unidata. - See the LICENSE file for more information. +/* Copyright 2018, UCAR/Unidata. + See the COPYRIGHT file for more information. */ #ifndef NCJSON_INC #define NCJSON_INC 1 -#define NCJ_DICT 1 +#define NCJ_DICT 1 #define NCJ_LIST 2 #define NCJ_WORD 3 #define NCJ_NUMBER 4 @@ -77,7 +77,7 @@ done: static int NCJyytext(NCJparser* parser, char* start, ptrdiff_t pdlen) { - size_t len = (size_t)pdlen; + size_t len = (size_t)pdlen; if(parser->yytext == NULL) parser->yytext = (char*)malloc(len+1); else @@ -133,13 +133,13 @@ NCJlex(NCJparser* parser) for(;;) { c = *parser->pos++; if(c == NCJ_QUOTE || c == NCJ_NUL) break; - last++; + last++; } if(c == NCJ_NUL) { parser->errno = NCJ_ESTRING; token = NCJ_ERR; goto done; - } + } if(!NCJyytext(parser,start,(next - start))) goto done; token = NCJ_STRING; } else { /* single char token */ @@ -147,7 +147,7 @@ NCJlex(NCJparser* parser) } done: if(parser->errno) token = NCJ_ERR; - return token; + return token; } /* Simple recursive descent */ @@ -174,7 +174,7 @@ NCJparseR(NCJparser* parser, NCjson** listp) default: parser->errno = NCJ_EBADTOKEN; } - return NULL; + return NULL; } static NCjson* diff --git a/libdispatch/nc.c b/libdispatch/nc.c index 4a1652480..f58476afd 100644 --- a/libdispatch/nc.c +++ b/libdispatch/nc.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libdispatch/ncbytes.c b/libdispatch/ncbytes.c index 7d0aa904c..f5a731ae5 100644 --- a/libdispatch/ncbytes.c +++ b/libdispatch/ncbytes.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include diff --git a/libdispatch/nchashmap.c b/libdispatch/nchashmap.c index ff45dcfb4..0a6d8a1ce 100644 --- a/libdispatch/nchashmap.c +++ b/libdispatch/nchashmap.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ diff --git a/libdispatch/nclist.c b/libdispatch/nclist.c index 679c1b174..c901c78f6 100644 --- a/libdispatch/nclist.c +++ b/libdispatch/nclist.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include #include @@ -113,7 +113,7 @@ nclistset(NClist* l, size_t index, void* elem) if(l == NULL) return FALSE; if(!nclistsetalloc(l,index+1)) return FALSE; if(index >= l->length) { - if(!nclistsetlength(l,index+1)) return FALSE; + if(!nclistsetlength(l,index+1)) return FALSE; } l->content[index] = elem; return TRUE; @@ -147,7 +147,7 @@ void* nclistpop(NClist* l) { if(l == NULL || l->length == 0) return NULL; - l->length--; + l->length--; return l->content[l->length]; } @@ -168,7 +168,7 @@ nclistremove(NClist* l, size_t i) elem = l->content[i]; for(i+=1;icontent[i-1] = l->content[i]; l->length--; - return elem; + return elem; } /* Duplicate and return the content (null terminate) */ @@ -212,7 +212,7 @@ nclistelemremove(NClist* l, void* elem) } -/* Extends nclist to include a unique operator +/* Extends nclist to include a unique operator which remove duplicate values; NULL values removed return value is always 1. */ @@ -229,7 +229,7 @@ nclistunique(NClist* l) for(j=i+1;jpath,path)==0) { f = nc_filelist[i]; break; - } + } } } return f; @@ -126,4 +126,3 @@ iterate_NCList(int index, NC** ncp) if(ncp) *ncp = nc_filelist[index]; return NC_NOERR; } - diff --git a/libdispatch/nclog.c b/libdispatch/nclog.c index f43d23dff..4e0adbfd8 100644 --- a/libdispatch/nclog.c +++ b/libdispatch/nclog.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/libdispatch/nctime.c b/libdispatch/nctime.c index 07c9b1708..aed5ac984 100644 --- a/libdispatch/nctime.c +++ b/libdispatch/nctime.c @@ -1,10 +1,10 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.c,v 1.9 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ -/* +/* * This code was extracted with permission from the CDMS time * conversion and arithmetic routines developed by Bob Drach, Lawrence * Livermore National Laboratory as part of the cdtime library. Russ @@ -58,7 +58,7 @@ static void cdError(char *fmt, ...) { va_list args; - + cuErrorOccurred = 1; if(cuErrOpts & CU_VERBOSE){ va_start(args,fmt); @@ -84,11 +84,11 @@ static int days_sum[12] = {0,31,59,90,120,151,181,212,243,273,304,334}; * date->year (long) (year since 0 BC) * date->timeType (CdTimetype) (time type) * date->baseYear base year for relative times - * Output: - * date->month (short) (month in year) + * Output: + * date->month (short) (month in year) * date->day (short) (day in month) * - * + * * Derived from NRL NEONS V3.6. */ @@ -131,14 +131,14 @@ CdMonthDay(int *doy, CdTime *date) } /* Compute day-of-year from year, month and day - * + * * Input: * date->year (long) (year since 0 BC) * date->month (short) (month in year) * date->day (short) (day in month) * date->baseYear base year for relative times * Output: doy (int) (day-of-year) - * + * * Derived from NRL NEONS V3.6 */ @@ -152,7 +152,7 @@ CdDayOfYear(CdTime *date, int *doy) month = date->month; if (month < 1 || month > 12) { cdError( "Day-of-year error; month: %d\n", month); - month = 1; + month = 1; } if(!(date->timeType & CdChronCal)) /* Ignore year for Clim calendar */ @@ -173,14 +173,14 @@ CdDayOfYear(CdTime *date, int *doy) /* Convert epochal time (hours since 00 jan 1, 1970) * to human time (structured) - * - * Input: + * + * Input: * etime = epochal time representation * timeType = time type (e.g., CdChron, CdClim, etc.) as defined in cdms.h * baseYear = base real, used for relative time types only - * + * * Output: htime = human (structured) time representation - * + * * Derived from NRL Neons V3.6 */ void @@ -404,7 +404,7 @@ cdDiffGregorian(cdCompTime ca, cdCompTime cb){ /* Return -1, 0, 1 as ca is less than, equal to, */ /* or greater than cb, respectively. */ -static int +static int cdCompCompare(cdCompTime ca, cdCompTime cb){ int test; @@ -469,7 +469,7 @@ CdDivDelTime(double begEtm, double endEtm, CdDeltaTime delTime, CdTimeType timeT long delMonths, range; CdTime bhtime, ehtime; int hoursInYear; - + extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime); switch(delTime.units){ @@ -610,11 +610,11 @@ cdToOldTimetype(cdCalenType newtype, CdTimeType* oldtype) } /* Convert human time to epochal time (hours since 00 jan 1, 1970) - * + * * Input: htime = human time representation - * + * * Output: etime = epochal time representation - * + * * Derived from NRL Neons V3.6 */ void @@ -628,7 +628,7 @@ Cdh2e(CdTime *htime, double *etime) int daysInYear; /* days in non-leap year */ CdDayOfYear(htime,&doy); - + day_cnt = 0; baseYear = ((htime->timeType) & CdBase1970) ? 1970 : htime->baseYear; @@ -641,7 +641,7 @@ Cdh2e(CdTime *htime, double *etime) daysInLeapYear = ((htime->timeType) & Cd365) ? 366 : 360; daysInYear = ((htime->timeType) & Cd365) ? 365 : 360; } - + if (year > baseYear) { for (ytemp = year - 1; ytemp >= baseYear; ytemp--) { day_cnt += ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear; @@ -650,7 +650,7 @@ Cdh2e(CdTime *htime, double *etime) for (ytemp = year; ytemp < baseYear; ytemp++) { day_cnt -= ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear; } - } + } *etime = (double) (day_cnt + doy - 1) * 24. + htime->hour; return; } @@ -687,7 +687,7 @@ cdChar2Comp(cdCalenType timetype, char* chartime, cdCompTime* comptime) comptime->month = CD_NULL_MONTH; comptime->day = CD_NULL_DAY; comptime->hour = CD_NULL_HOUR; - + if(timetype & cdStandardCal){ nconv = sscanf(chartime,"%ld-%hd-%hd %d:%d:%lf",&year,&month,&day,&ihr,&imin,&sec); if(nconv==EOF || nconv==0){ @@ -787,7 +787,7 @@ cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* re cdUnitTime unit; double base_etm, etm, delta; long ndel, hoursInYear; - + /* Parse the relunits */ if(cdParseRelunits(timetype, relunits, &unit, &base_comptime)) return; @@ -807,7 +807,7 @@ cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* re default: break; } } - + /* Convert basetime to epochal */ humantime.year = base_comptime.year; humantime.month = base_comptime.month; @@ -1071,7 +1071,7 @@ cdRel2Comp(cdCalenType timetype, char* relunits, double reltime, cdCompTime* com /* Convert back to human, then comptime. */ else if(baseunits == cdHour){ Cde2h(base_etm+delta, old_timetype, 1970, &humantime); - + } comptime->year = humantime.year; comptime->month = humantime.month; @@ -1091,7 +1091,7 @@ cdComp2Iso(cdCalenType timetype, int separator, cdCompTime comptime, char* time) if(cdValidateTime(timetype,comptime)) return; - + ihr = (int)comptime.hour; dtmp = 60.0 * (comptime.hour - (double)ihr); imin = (int)dtmp; diff --git a/libdispatch/ncuri.c b/libdispatch/ncuri.c index 7e13abdba..03a741965 100644 --- a/libdispatch/ncuri.c +++ b/libdispatch/ncuri.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header$ *********************************************************************/ diff --git a/libdispatch/netcdf.m4 b/libdispatch/netcdf.m4 index f57742b08..1a58df027 100644 --- a/libdispatch/netcdf.m4 +++ b/libdispatch/netcdf.m4 @@ -1,12 +1,12 @@ /* - Copyright 2010 University Corporation for Atmospheric + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for more info. This file defines most of the netcdf API in terms of the dispatch functions along with a few functions that are overlays over the dispatch functions. - "$Id: netcdf.m4,v 1.16 2010/06/01 15:34:50 ed Exp $" + "$Id: netcdf.m4,v 1.16 2010/06/01 15:34:50 ed Exp $" */ #include "ncdispatch.h" @@ -588,4 +588,3 @@ NC_PUT_ATT(ulonglong,unsigned long long) #ifdef USE_NETCDF4 /*NC_PUT_ATT(string,char*) defined separately */ #endif /*USE_NETCDF4*/ - diff --git a/libdispatch/stubdef.c b/libdispatch/stubdef.c index 519ec4d70..7db2c7193 100644 --- a/libdispatch/stubdef.c +++ b/libdispatch/stubdef.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/test_ncuri.c b/libdispatch/test_ncuri.c index 957b41ad0..7d23af3ed 100644 --- a/libdispatch/test_ncuri.c +++ b/libdispatch/test_ncuri.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libdispatch/test_pathcvt.c b/libdispatch/test_pathcvt.c index 7b9307473..1d3f12c5a 100644 --- a/libdispatch/test_pathcvt.c +++ b/libdispatch/test_pathcvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -50,7 +50,7 @@ main(int argc, char** argv) } #ifdef VERBOSE fprintf(stderr,"NCpathcvt:: input: |%s| actual=|%s|\n",test->path,cvt); -#endif +#endif free(cvt); } diff --git a/libdispatch/u/utf8proc.c b/libdispatch/u/utf8proc.c deleted file mode 100644 index c14bbe13f..000000000 --- a/libdispatch/u/utf8proc.c +++ /dev/null @@ -1,755 +0,0 @@ -/* -*- mode: c; c-basic-offset: 2; tab-width: 2; indent-tabs-mode: nil -*- */ -/* - * Copyright (c) 2015 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. - * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* - * This library contains derived data from a modified version of the - * Unicode data files. - * - * The original data files are available at - * http://www.unicode.org/Public/UNIDATA/ - * - * Please notice the copyright statement in the file "utf8proc_data.c". - */ - - -/* - * File name: utf8proc.c - * - * Description: - * Implementation of libutf8proc. - */ - - -#include "utf8proc.h" -#include "utf8proc_data.c" - - -UTF8PROC_DLLEXPORT const utf8proc_int8_t utf8proc_utf8class[256] = { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }; - -#define UTF8PROC_HANGUL_SBASE 0xAC00 -#define UTF8PROC_HANGUL_LBASE 0x1100 -#define UTF8PROC_HANGUL_VBASE 0x1161 -#define UTF8PROC_HANGUL_TBASE 0x11A7 -#define UTF8PROC_HANGUL_LCOUNT 19 -#define UTF8PROC_HANGUL_VCOUNT 21 -#define UTF8PROC_HANGUL_TCOUNT 28 -#define UTF8PROC_HANGUL_NCOUNT 588 -#define UTF8PROC_HANGUL_SCOUNT 11172 -/* END is exclusive */ -#define UTF8PROC_HANGUL_L_START 0x1100 -#define UTF8PROC_HANGUL_L_END 0x115A -#define UTF8PROC_HANGUL_L_FILLER 0x115F -#define UTF8PROC_HANGUL_V_START 0x1160 -#define UTF8PROC_HANGUL_V_END 0x11A3 -#define UTF8PROC_HANGUL_T_START 0x11A8 -#define UTF8PROC_HANGUL_T_END 0x11FA -#define UTF8PROC_HANGUL_S_START 0xAC00 -#define UTF8PROC_HANGUL_S_END 0xD7A4 - -/* Should follow semantic-versioning rules (semver.org) based on API - compatibility. (Note that the shared-library version number will - be different, being based on ABI compatibility.): */ -#define STRINGIZEx(x) #x -#define STRINGIZE(x) STRINGIZEx(x) -UTF8PROC_DLLEXPORT const char *utf8proc_version(void) { - return STRINGIZE(UTF8PROC_VERSION_MAJOR) "." STRINGIZE(UTF8PROC_VERSION_MINOR) "." STRINGIZE(UTF8PROC_VERSION_PATCH) ""; -} - -UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode) { - switch (errcode) { - case UTF8PROC_ERROR_NOMEM: - return "Memory for processing UTF-8 data could not be allocated."; - case UTF8PROC_ERROR_OVERFLOW: - return "UTF-8 string is too long to be processed."; - case UTF8PROC_ERROR_INVALIDUTF8: - return "Invalid UTF-8 string"; - case UTF8PROC_ERROR_NOTASSIGNED: - return "Unassigned Unicode code point found in UTF-8 string."; - case UTF8PROC_ERROR_INVALIDOPTS: - return "Invalid options for UTF-8 processing chosen."; - default: - return "An unknown error occurred while processing UTF-8 data."; - } -} - -#define utf_cont(ch) (((ch) & 0xc0) == 0x80) -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *dst -) { - utf8proc_uint32_t uc; - const utf8proc_uint8_t *end; - - *dst = -1; - if (!strlen) return 0; - end = str + ((strlen < 0) ? 4 : strlen); - uc = *str++; - if (uc < 0x80) { - *dst = uc; - return 1; - } - // Must be between 0xc2 and 0xf4 inclusive to be valid - if ((uc - 0xc2) > (0xf4-0xc2)) return UTF8PROC_ERROR_INVALIDUTF8; - if (uc < 0xe0) { // 2-byte sequence - // Must have valid continuation character - if (str >= end || !utf_cont(*str)) return UTF8PROC_ERROR_INVALIDUTF8; - *dst = ((uc & 0x1f)<<6) | (*str & 0x3f); - return 2; - } - if (uc < 0xf0) { // 3-byte sequence - if ((str + 1 >= end) || !utf_cont(*str) || !utf_cont(str[1])) - return UTF8PROC_ERROR_INVALIDUTF8; - // Check for surrogate chars - if (uc == 0xed && *str > 0x9f) - return UTF8PROC_ERROR_INVALIDUTF8; - uc = ((uc & 0xf)<<12) | ((*str & 0x3f)<<6) | (str[1] & 0x3f); - if (uc < 0x800) - return UTF8PROC_ERROR_INVALIDUTF8; - *dst = uc; - return 3; - } - // 4-byte sequence - // Must have 3 valid continuation characters - if ((str + 2 >= end) || !utf_cont(*str) || !utf_cont(str[1]) || !utf_cont(str[2])) - return UTF8PROC_ERROR_INVALIDUTF8; - // Make sure in correct range (0x10000 - 0x10ffff) - if (uc == 0xf0) { - if (*str < 0x90) return UTF8PROC_ERROR_INVALIDUTF8; - } else if (uc == 0xf4) { - if (*str > 0x8f) return UTF8PROC_ERROR_INVALIDUTF8; - } - *dst = ((uc & 7)<<18) | ((*str & 0x3f)<<12) | ((str[1] & 0x3f)<<6) | (str[2] & 0x3f); - return 4; -} - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t uc) { - return (((utf8proc_uint32_t)uc)-0xd800 > 0x07ff) && ((utf8proc_uint32_t)uc < 0x110000); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { - if (uc < 0x00) { - return 0; - } else if (uc < 0x80) { - dst[0] = (utf8proc_uint8_t) uc; - return 1; - } else if (uc < 0x800) { - dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); - dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 2; - // Note: we allow encoding 0xd800-0xdfff here, so as not to change - // the API, however, these are actually invalid in UTF-8 - } else if (uc < 0x10000) { - dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 3; - } else if (uc < 0x110000) { - dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 4; - } else return 0; -} - -/* internal "unsafe" version that does not check whether uc is in range */ -static utf8proc_ssize_t unsafe_encode_char(utf8proc_int32_t uc, utf8proc_uint8_t *dst) { - if (uc < 0x00) { - return 0; - } else if (uc < 0x80) { - dst[0] = (utf8proc_uint8_t)uc; - return 1; - } else if (uc < 0x800) { - dst[0] = (utf8proc_uint8_t)(0xC0 + (uc >> 6)); - dst[1] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 2; - } else if (uc == 0xFFFF) { - dst[0] = (utf8proc_uint8_t)0xFF; - return 1; - } else if (uc == 0xFFFE) { - dst[0] = (utf8proc_uint8_t)0xFE; - return 1; - } else if (uc < 0x10000) { - dst[0] = (utf8proc_uint8_t)(0xE0 + (uc >> 12)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 3; - } else if (uc < 0x110000) { - dst[0] = (utf8proc_uint8_t)(0xF0 + (uc >> 18)); - dst[1] = (utf8proc_uint8_t)(0x80 + ((uc >> 12) & 0x3F)); - dst[2] = (utf8proc_uint8_t)(0x80 + ((uc >> 6) & 0x3F)); - dst[3] = (utf8proc_uint8_t)(0x80 + (uc & 0x3F)); - return 4; - } else return 0; -} - -/* internal "unsafe" version that does not check whether uc is in range */ -static const utf8proc_property_t *unsafe_get_property(utf8proc_int32_t uc) { - /* ASSERT: uc >= 0 && uc < 0x110000 */ - return utf8proc_properties + ( - utf8proc_stage2table[ - utf8proc_stage1table[uc >> 8] + (uc & 0xFF) - ] - ); -} - -UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t uc) { - return uc < 0 || uc >= 0x110000 ? utf8proc_properties : unsafe_get_property(uc); -} - -/* return whether there is a grapheme break between boundclasses lbc and tbc - (according to the definition of extended grapheme clusters) - - Rule numbering refers to TR29 Version 29 (Unicode 9.0.0): - http://www.unicode.org/reports/tr29/tr29-29.html - - CAVEATS: - Please note that evaluation of GB10 (grapheme breaks between emoji zwj sequences) - and GB 12/13 (regional indicator code points) require knowledge of previous characters - and are thus not handled by this function. This may result in an incorrect break before - an E_Modifier class codepoint and an incorrectly missing break between two - REGIONAL_INDICATOR class code points if such support does not exist in the caller. - - See the special support in grapheme_break_extended, for required bookkeeping by the caller. -*/ -static utf8proc_bool grapheme_break_simple(int lbc, int tbc) { - return - (lbc == UTF8PROC_BOUNDCLASS_START) ? true : // GB1 - (lbc == UTF8PROC_BOUNDCLASS_CR && // GB3 - tbc == UTF8PROC_BOUNDCLASS_LF) ? false : // --- - (lbc >= UTF8PROC_BOUNDCLASS_CR && lbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB4 - (tbc >= UTF8PROC_BOUNDCLASS_CR && tbc <= UTF8PROC_BOUNDCLASS_CONTROL) ? true : // GB5 - (lbc == UTF8PROC_BOUNDCLASS_L && // GB6 - (tbc == UTF8PROC_BOUNDCLASS_L || // --- - tbc == UTF8PROC_BOUNDCLASS_V || // --- - tbc == UTF8PROC_BOUNDCLASS_LV || // --- - tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false : // --- - ((lbc == UTF8PROC_BOUNDCLASS_LV || // GB7 - lbc == UTF8PROC_BOUNDCLASS_V) && // --- - (tbc == UTF8PROC_BOUNDCLASS_V || // --- - tbc == UTF8PROC_BOUNDCLASS_T)) ? false : // --- - ((lbc == UTF8PROC_BOUNDCLASS_LVT || // GB8 - lbc == UTF8PROC_BOUNDCLASS_T) && // --- - tbc == UTF8PROC_BOUNDCLASS_T) ? false : // --- - (tbc == UTF8PROC_BOUNDCLASS_EXTEND || // GB9 - tbc == UTF8PROC_BOUNDCLASS_ZWJ || // --- - tbc == UTF8PROC_BOUNDCLASS_SPACINGMARK || // GB9a - lbc == UTF8PROC_BOUNDCLASS_PREPEND) ? false : // GB9b - ((lbc == UTF8PROC_BOUNDCLASS_E_BASE || // GB10 (requires additional handling below) - lbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) && // ---- - tbc == UTF8PROC_BOUNDCLASS_E_MODIFIER) ? false : // ---- - (lbc == UTF8PROC_BOUNDCLASS_ZWJ && // GB11 - (tbc == UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ || // ---- - tbc == UTF8PROC_BOUNDCLASS_E_BASE_GAZ)) ? false : // ---- - (lbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR && // GB12/13 (requires additional handling below) - tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) ? false : // ---- - true; // GB999 -} - -static utf8proc_bool grapheme_break_extended(int lbc, int tbc, utf8proc_int32_t *state) -{ - int lbc_override = lbc; - if (state && *state != UTF8PROC_BOUNDCLASS_START) - lbc_override = *state; - utf8proc_bool break_permitted = grapheme_break_simple(lbc_override, tbc); - if (state) { - // Special support for GB 12/13 made possible by GB999. After two RI - // class codepoints we want to force a break. Do this by resetting the - // second RI's bound class to UTF8PROC_BOUNDCLASS_OTHER, to force a break - // after that character according to GB999 (unless of course such a break is - // forbidden by a different rule such as GB9). - if (*state == tbc && tbc == UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR) - *state = UTF8PROC_BOUNDCLASS_OTHER; - // Special support for GB10. Fold any EXTEND codepoints into the previous - // boundclass if we're dealing with an emoji base boundclass. - else if ((*state == UTF8PROC_BOUNDCLASS_E_BASE || - *state == UTF8PROC_BOUNDCLASS_E_BASE_GAZ) && - tbc == UTF8PROC_BOUNDCLASS_EXTEND) - *state = UTF8PROC_BOUNDCLASS_E_BASE; - else - *state = tbc; - } - return break_permitted; -} - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( - utf8proc_int32_t c1, utf8proc_int32_t c2, utf8proc_int32_t *state) { - - return grapheme_break_extended(utf8proc_get_property(c1)->boundclass, - utf8proc_get_property(c2)->boundclass, - state); -} - - -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( - utf8proc_int32_t c1, utf8proc_int32_t c2) { - return utf8proc_grapheme_break_stateful(c1, c2, NULL); -} - -static utf8proc_int32_t seqindex_decode_entry(const utf8proc_uint16_t **entry) -{ - utf8proc_int32_t entry_cp = **entry; - if ((entry_cp & 0xF800) == 0xD800) { - *entry = *entry + 1; - entry_cp = ((entry_cp & 0x03FF) << 10) | (**entry & 0x03FF); - entry_cp += 0x10000; - } - return entry_cp; -} - -static utf8proc_int32_t seqindex_decode_index(const utf8proc_uint32_t seqindex) -{ - const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex]; - return seqindex_decode_entry(&entry); -} - -static utf8proc_ssize_t seqindex_write_char_decomposed(utf8proc_uint16_t seqindex, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { - utf8proc_ssize_t written = 0; - const utf8proc_uint16_t *entry = &utf8proc_sequences[seqindex & 0x1FFF]; - int len = seqindex >> 13; - if (len >= 7) { - len = *entry; - entry++; - } - for (; len >= 0; entry++, len--) { - utf8proc_int32_t entry_cp = seqindex_decode_entry(&entry); - - written += utf8proc_decompose_char(entry_cp, dst+written, - (bufsize > written) ? (bufsize - written) : 0, options, - last_boundclass); - if (written < 0) return UTF8PROC_ERROR_OVERFLOW; - } - return written; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c) -{ - utf8proc_int32_t cl = utf8proc_get_property(c)->lowercase_seqindex; - return cl != UINT16_MAX ? seqindex_decode_index(cl) : c; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c) -{ - utf8proc_int32_t cu = utf8proc_get_property(c)->uppercase_seqindex; - return cu != UINT16_MAX ? seqindex_decode_index(cu) : c; -} - -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c) -{ - utf8proc_int32_t cu = utf8proc_get_property(c)->titlecase_seqindex; - return cu != UINT16_MAX ? seqindex_decode_index(cu) : c; -} - -/* return a character width analogous to wcwidth (except portable and - hopefully less buggy than most system wcwidth functions). */ -UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t c) { - return utf8proc_get_property(c)->charwidth; -} - -UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t c) { - return utf8proc_get_property(c)->category; -} - -UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t c) { - static const char s[][3] = {"Cn","Lu","Ll","Lt","Lm","Lo","Mn","Mc","Me","Nd","Nl","No","Pc","Pd","Ps","Pe","Pi","Pf","Po","Sm","Sc","Sk","So","Zs","Zl","Zp","Cc","Cf","Cs","Co"}; - return s[utf8proc_category(c)]; -} - -#define utf8proc_decompose_lump(replacement_uc) \ - return utf8proc_decompose_char((replacement_uc), dst, bufsize, \ - options & ~UTF8PROC_LUMP, last_boundclass) - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char(utf8proc_int32_t uc, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, utf8proc_option_t options, int *last_boundclass) { - const utf8proc_property_t *property; - utf8proc_propval_t category; - utf8proc_int32_t hangul_sindex; - if (uc < 0 || uc >= 0x110000) return UTF8PROC_ERROR_NOTASSIGNED; - property = unsafe_get_property(uc); - category = property->category; - hangul_sindex = uc - UTF8PROC_HANGUL_SBASE; - if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { - if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) { - utf8proc_int32_t hangul_tindex; - if (bufsize >= 1) { - dst[0] = UTF8PROC_HANGUL_LBASE + - hangul_sindex / UTF8PROC_HANGUL_NCOUNT; - if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE + - (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT; - } - hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT; - if (!hangul_tindex) return 2; - if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex; - return 3; - } - } - if (options & UTF8PROC_REJECTNA) { - if (!category) return UTF8PROC_ERROR_NOTASSIGNED; - } - if (options & UTF8PROC_IGNORE) { - if (property->ignorable) return 0; - } - if (options & UTF8PROC_LUMP) { - if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020); - if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8) - utf8proc_decompose_lump(0x0027); - if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212) - utf8proc_decompose_lump(0x002D); - if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F); - if (uc == 0x2236) utf8proc_decompose_lump(0x003A); - if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008) - utf8proc_decompose_lump(0x003C); - if (uc == 0x203A || uc == 0x232A || uc == 0x3009) - utf8proc_decompose_lump(0x003E); - if (uc == 0x2216) utf8proc_decompose_lump(0x005C); - if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303) - utf8proc_decompose_lump(0x005E); - if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD) - utf8proc_decompose_lump(0x005F); - if (uc == 0x02CB) utf8proc_decompose_lump(0x0060); - if (uc == 0x2223) utf8proc_decompose_lump(0x007C); - if (uc == 0x223C) utf8proc_decompose_lump(0x007E); - if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) { - if (category == UTF8PROC_CATEGORY_ZL || - category == UTF8PROC_CATEGORY_ZP) - utf8proc_decompose_lump(0x000A); - } - } - if (options & UTF8PROC_STRIPMARK) { - if (category == UTF8PROC_CATEGORY_MN || - category == UTF8PROC_CATEGORY_MC || - category == UTF8PROC_CATEGORY_ME) return 0; - } - if (options & UTF8PROC_CASEFOLD) { - if (property->casefold_seqindex != UINT16_MAX) { - return seqindex_write_char_decomposed(property->casefold_seqindex, dst, bufsize, options, last_boundclass); - } - } - if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { - if (property->decomp_seqindex != UINT16_MAX && - (!property->decomp_type || (options & UTF8PROC_COMPAT))) { - return seqindex_write_char_decomposed(property->decomp_seqindex, dst, bufsize, options, last_boundclass); - } - } - if (options & UTF8PROC_CHARBOUND) { - utf8proc_bool boundary; - int tbc = property->boundclass; - boundary = grapheme_break_extended(*last_boundclass, tbc, last_boundclass); - if (boundary) { - if (bufsize >= 1) dst[0] = 0xFFFF; - if (bufsize >= 2) dst[1] = uc; - return 2; - } - } - if (bufsize >= 1) *dst = uc; - return 1; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options -) { - return utf8proc_decompose_custom(str, strlen, buffer, bufsize, options, NULL, NULL); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -) { - /* strlen will be ignored, if UTF8PROC_NULLTERM is set in options */ - utf8proc_ssize_t wpos = 0; - if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE)) - return UTF8PROC_ERROR_INVALIDOPTS; - if ((options & UTF8PROC_STRIPMARK) && - !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE)) - return UTF8PROC_ERROR_INVALIDOPTS; - { - utf8proc_int32_t uc; - utf8proc_ssize_t rpos = 0; - utf8proc_ssize_t decomp_result; - int boundclass = UTF8PROC_BOUNDCLASS_START; - while (1) { - if (options & UTF8PROC_NULLTERM) { - rpos += utf8proc_iterate(str + rpos, -1, &uc); - /* checking of return value is not necessary, - as 'uc' is < 0 in case of error */ - if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; - if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW; - if (uc == 0) break; - } else { - if (rpos >= strlen) break; - rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc); - if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; - } - if (custom_func != NULL) { - uc = custom_func(uc, custom_data); /* user-specified custom mapping */ - } - decomp_result = utf8proc_decompose_char( - uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, - &boundclass - ); - if (decomp_result < 0) return decomp_result; - wpos += decomp_result; - /* prohibiting integer overflows due to too long strings: */ - if (wpos < 0 || - wpos > (utf8proc_ssize_t)(SSIZE_MAX/sizeof(utf8proc_int32_t)/2)) - return UTF8PROC_ERROR_OVERFLOW; - } - } - if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) { - utf8proc_ssize_t pos = 0; - while (pos < wpos-1) { - utf8proc_int32_t uc1, uc2; - const utf8proc_property_t *property1, *property2; - uc1 = buffer[pos]; - uc2 = buffer[pos+1]; - property1 = unsafe_get_property(uc1); - property2 = unsafe_get_property(uc2); - if (property1->combining_class > property2->combining_class && - property2->combining_class > 0) { - buffer[pos] = uc2; - buffer[pos+1] = uc1; - if (pos > 0) pos--; else pos++; - } else { - pos++; - } - } - } - return wpos; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { - /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored */ - if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) { - utf8proc_ssize_t rpos; - utf8proc_ssize_t wpos = 0; - utf8proc_int32_t uc; - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++; - if (uc == 0x000A || uc == 0x000D || uc == 0x0085 || - ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) { - if (options & UTF8PROC_NLF2LS) { - if (options & UTF8PROC_NLF2PS) { - buffer[wpos++] = 0x000A; - } else { - buffer[wpos++] = 0x2028; - } - } else { - if (options & UTF8PROC_NLF2PS) { - buffer[wpos++] = 0x2029; - } else { - buffer[wpos++] = 0x0020; - } - } - } else if ((options & UTF8PROC_STRIPCC) && - (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) { - if (uc == 0x0009) buffer[wpos++] = 0x0020; - } else { - buffer[wpos++] = uc; - } - } - length = wpos; - } - if (options & UTF8PROC_COMPOSE) { - utf8proc_int32_t *starter = NULL; - utf8proc_int32_t current_char; - const utf8proc_property_t *starter_property = NULL, *current_property; - utf8proc_propval_t max_combining_class = -1; - utf8proc_ssize_t rpos; - utf8proc_ssize_t wpos = 0; - utf8proc_int32_t composition; - for (rpos = 0; rpos < length; rpos++) { - current_char = buffer[rpos]; - current_property = unsafe_get_property(current_char); - if (starter && current_property->combining_class > max_combining_class) { - /* combination perhaps possible */ - utf8proc_int32_t hangul_lindex; - utf8proc_int32_t hangul_sindex; - hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE; - if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) { - utf8proc_int32_t hangul_vindex; - hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE; - if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) { - *starter = UTF8PROC_HANGUL_SBASE + - (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) * - UTF8PROC_HANGUL_TCOUNT; - starter_property = NULL; - continue; - } - } - hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE; - if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT && - (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) { - utf8proc_int32_t hangul_tindex; - hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE; - if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) { - *starter += hangul_tindex; - starter_property = NULL; - continue; - } - } - if (!starter_property) { - starter_property = unsafe_get_property(*starter); - } - if (starter_property->comb_index < 0x8000 && - current_property->comb_index != UINT16_MAX && - current_property->comb_index >= 0x8000) { - int sidx = starter_property->comb_index; - int idx = (current_property->comb_index & 0x3FFF) - utf8proc_combinations[sidx]; - if (idx >= 0 && idx <= utf8proc_combinations[sidx + 1] ) { - idx += sidx + 2; - if (current_property->comb_index & 0x4000) { - composition = (utf8proc_combinations[idx] << 16) | utf8proc_combinations[idx+1]; - } else - composition = utf8proc_combinations[idx]; - - if (composition > 0 && (!(options & UTF8PROC_STABLE) || - !(unsafe_get_property(composition)->comp_exclusion))) { - *starter = composition; - starter_property = NULL; - continue; - } - } - } - } - buffer[wpos] = current_char; - if (current_property->combining_class) { - if (current_property->combining_class > max_combining_class) { - max_combining_class = current_property->combining_class; - } - } else { - starter = buffer + wpos; - starter_property = NULL; - max_combining_class = -1; - } - wpos++; - } - length = wpos; - } - return length; -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) { - /* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored - ASSERT: 'buffer' has one spare byte of free space at the end! */ - length = utf8proc_normalize_utf32(buffer, length, options); - if (length < 0) return length; - { - utf8proc_ssize_t rpos, wpos = 0; - utf8proc_int32_t uc; - if (options & UTF8PROC_CHARBOUND) { - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - wpos += unsafe_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); - } - } else { - for (rpos = 0; rpos < length; rpos++) { - uc = buffer[rpos]; - wpos += utf8proc_encode_char(uc, ((utf8proc_uint8_t *)buffer) + wpos); - } - } - ((utf8proc_uint8_t *)buffer)[wpos] = 0; - return wpos; - } -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options -) { - return utf8proc_map_custom(str, strlen, dstptr, options, NULL, NULL); -} - -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -) { - utf8proc_int32_t *buffer; - utf8proc_ssize_t result; - *dstptr = NULL; - result = utf8proc_decompose_custom(str, strlen, NULL, 0, options, custom_func, custom_data); - if (result < 0) return result; - buffer = (utf8proc_int32_t *) malloc(result * sizeof(utf8proc_int32_t) + 1); - if (!buffer) return UTF8PROC_ERROR_NOMEM; - result = utf8proc_decompose_custom(str, strlen, buffer, result, options, custom_func, custom_data); - if (result < 0) { - free(buffer); - return result; - } - result = utf8proc_reencode(buffer, result, options); - if (result < 0) { - free(buffer); - return result; - } - { - utf8proc_int32_t *newptr; - newptr = (utf8proc_int32_t *) realloc(buffer, (size_t)result+1); - if (newptr) buffer = newptr; - } - *dstptr = (utf8proc_uint8_t *)buffer; - return result; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_DECOMPOSE); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_COMPOSE); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); - return retval; -} - -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str) { - utf8proc_uint8_t *retval; - utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | - UTF8PROC_COMPOSE | UTF8PROC_COMPAT); - return retval; -} diff --git a/libdispatch/u/utf8proc.h b/libdispatch/u/utf8proc.h deleted file mode 100644 index 495cd9600..000000000 --- a/libdispatch/u/utf8proc.h +++ /dev/null @@ -1,699 +0,0 @@ -/* - * Copyright (c) 2015 Steven G. Johnson, Jiahao Chen, Peter Colberg, Tony Kelman, Scott P. Jones, and other contributors. - * Copyright (c) 2009 Public Software Group e. V., Berlin, Germany - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - - -/** - * @mainpage - * - * utf8proc is a free/open-source (MIT/expat licensed) C library - * providing Unicode normalization, case-folding, and other operations - * for strings in the UTF-8 encoding, supporting Unicode version - * 8.0.0. See the utf8proc home page (http://julialang.org/utf8proc/) - * for downloads and other information, or the source code on github - * (https://github.com/JuliaLang/utf8proc). - * - * For the utf8proc API documentation, see: @ref utf8proc.h - * - * The features of utf8proc include: - * - * - Transformation of strings (@ref utf8proc_map) to: - * - decompose (@ref UTF8PROC_DECOMPOSE) or compose (@ref UTF8PROC_COMPOSE) Unicode combining characters (http://en.wikipedia.org/wiki/Combining_character) - * - canonicalize Unicode compatibility characters (@ref UTF8PROC_COMPAT) - * - strip "ignorable" (@ref UTF8PROC_IGNORE) characters, control characters (@ref UTF8PROC_STRIPCC), or combining characters such as accents (@ref UTF8PROC_STRIPMARK) - * - case-folding (@ref UTF8PROC_CASEFOLD) - * - Unicode normalization: @ref utf8proc_NFD, @ref utf8proc_NFC, @ref utf8proc_NFKD, @ref utf8proc_NFKC - * - Detecting grapheme boundaries (@ref utf8proc_grapheme_break and @ref UTF8PROC_CHARBOUND) - * - Character-width computation: @ref utf8proc_charwidth - * - Classification of characters by Unicode category: @ref utf8proc_category and @ref utf8proc_category_string - * - Encode (@ref utf8proc_encode_char) and decode (@ref utf8proc_iterate) Unicode codepoints to/from UTF-8. - */ - -/** @file */ - -#ifndef UTF8PROC_H -#define UTF8PROC_H - -/** @name API version - * - * The utf8proc API version MAJOR.MINOR.PATCH, following - * semantic-versioning rules (http://semver.org) based on API - * compatibility. - * - * This is also returned at runtime by @ref utf8proc_version; however, the - * runtime version may append a string like "-dev" to the version number - * for prerelease versions. - * - * @note The shared-library version number in the Makefile - * (and CMakeLists.txt, and MANIFEST) may be different, - * being based on ABI compatibility rather than API compatibility. - */ -/** @{ */ -/** The MAJOR version number (increased when backwards API compatibility is broken). */ -#define UTF8PROC_VERSION_MAJOR 2 -/** The MINOR version number (increased when new functionality is added in a backwards-compatible manner). */ -#define UTF8PROC_VERSION_MINOR 1 -/** The PATCH version (increased for fixes that do not change the API). */ -#define UTF8PROC_VERSION_PATCH 0 -/** @} */ - -#include - -#if defined(_MSC_VER) && _MSC_VER < 1800 -// MSVC prior to 2013 lacked stdbool.h and inttypes.h -typedef signed char utf8proc_int8_t; -typedef unsigned char utf8proc_uint8_t; -typedef short utf8proc_int16_t; -typedef unsigned short utf8proc_uint16_t; -typedef int utf8proc_int32_t; -typedef unsigned int utf8proc_uint32_t; -# ifdef _WIN64 -typedef __int64 utf8proc_ssize_t; -typedef unsigned __int64 utf8proc_size_t; -# else -typedef int utf8proc_ssize_t; -typedef unsigned int utf8proc_size_t; -# endif -# ifndef __cplusplus -// emulate C99 bool -typedef unsigned char utf8proc_bool; -# ifndef __bool_true_false_are_defined -# define false 0 -# define true 1 -# define __bool_true_false_are_defined 1 -# endif -# else -typedef bool utf8proc_bool; -# endif -#else -# include -# include -# include -typedef int8_t utf8proc_int8_t; -typedef uint8_t utf8proc_uint8_t; -typedef int16_t utf8proc_int16_t; -typedef uint16_t utf8proc_uint16_t; -typedef int32_t utf8proc_int32_t; -typedef uint32_t utf8proc_uint32_t; -typedef size_t utf8proc_size_t; -typedef ptrdiff_t utf8proc_ssize_t; -typedef bool utf8proc_bool; -#endif -#include - -#ifdef _WIN32 -# ifdef UTF8PROC_EXPORTS -# define UTF8PROC_DLLEXPORT __declspec(dllexport) -# else -# define UTF8PROC_DLLEXPORT __declspec(dllimport) -# endif -#elif __GNUC__ >= 4 -# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default"))) -#else -# define UTF8PROC_DLLEXPORT -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SSIZE_MAX -#define SSIZE_MAX ((size_t)SIZE_MAX/2) -#endif - -#ifndef UINT16_MAX -# define UINT16_MAX 65535U -#endif - -/** - * Option flags used by several functions in the library. - */ -typedef enum { - /** The given UTF-8 input is NULL terminated. */ - UTF8PROC_NULLTERM = (1<<0), - /** Unicode Versioning Stability has to be respected. */ - UTF8PROC_STABLE = (1<<1), - /** Compatibility decomposition (i.e. formatting information is lost). */ - UTF8PROC_COMPAT = (1<<2), - /** Return a result with decomposed characters. */ - UTF8PROC_COMPOSE = (1<<3), - /** Return a result with decomposed characters. */ - UTF8PROC_DECOMPOSE = (1<<4), - /** Strip "default ignorable characters" such as SOFT-HYPHEN or ZERO-WIDTH-SPACE. */ - UTF8PROC_IGNORE = (1<<5), - /** Return an error, if the input contains unassigned codepoints. */ - UTF8PROC_REJECTNA = (1<<6), - /** - * Indicating that NLF-sequences (LF, CRLF, CR, NEL) are representing a - * line break, and should be converted to the codepoint for line - * separation (LS). - */ - UTF8PROC_NLF2LS = (1<<7), - /** - * Indicating that NLF-sequences are representing a paragraph break, and - * should be converted to the codepoint for paragraph separation - * (PS). - */ - UTF8PROC_NLF2PS = (1<<8), - /** Indicating that the meaning of NLF-sequences is unknown. */ - UTF8PROC_NLF2LF = (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS), - /** Strips and/or convers control characters. - * - * NLF-sequences are transformed into space, except if one of the - * NLF2LS/PS/LF options is given. HorizontalTab (HT) and FormFeed (FF) - * are treated as a NLF-sequence in this case. All other control - * characters are simply removed. - */ - UTF8PROC_STRIPCC = (1<<9), - /** - * Performs unicode case folding, to be able to do a case-insensitive - * string comparison. - */ - UTF8PROC_CASEFOLD = (1<<10), - /** - * Inserts 0xFF bytes at the beginning of each sequence which is - * representing a single grapheme cluster (see UAX#29). - */ - UTF8PROC_CHARBOUND = (1<<11), - /** Lumps certain characters together. - * - * E.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-". See lump.md for details. - * - * If NLF2LF is set, this includes a transformation of paragraph and - * line separators to ASCII line-feed (LF). - */ - UTF8PROC_LUMP = (1<<12), - /** Strips all character markings. - * - * This includes non-spacing, spacing and enclosing (i.e. accents). - * @note This option works only with @ref UTF8PROC_COMPOSE or - * @ref UTF8PROC_DECOMPOSE - */ - UTF8PROC_STRIPMARK = (1<<13), -} utf8proc_option_t; - -/** @name Error codes - * Error codes being returned by almost all functions. - */ -/** @{ */ -/** Memory could not be allocated. */ -#define UTF8PROC_ERROR_NOMEM -1 -/** The given string is too long to be processed. */ -#define UTF8PROC_ERROR_OVERFLOW -2 -/** The given string is not a legal UTF-8 string. */ -#define UTF8PROC_ERROR_INVALIDUTF8 -3 -/** The @ref UTF8PROC_REJECTNA flag was set and an unassigned codepoint was found. */ -#define UTF8PROC_ERROR_NOTASSIGNED -4 -/** Invalid options have been used. */ -#define UTF8PROC_ERROR_INVALIDOPTS -5 -/** @} */ - -/* @name Types */ - -/** Holds the value of a property. */ -typedef utf8proc_int16_t utf8proc_propval_t; - -/** Struct containing information about a codepoint. */ -typedef struct utf8proc_property_struct { - /** - * Unicode category. - * @see utf8proc_category_t. - */ - utf8proc_propval_t category; - utf8proc_propval_t combining_class; - /** - * Bidirectional class. - * @see utf8proc_bidi_class_t. - */ - utf8proc_propval_t bidi_class; - /** - * @anchor Decomposition type. - * @see utf8proc_decomp_type_t. - */ - utf8proc_propval_t decomp_type; - utf8proc_uint16_t decomp_seqindex; - utf8proc_uint16_t casefold_seqindex; - utf8proc_uint16_t uppercase_seqindex; - utf8proc_uint16_t lowercase_seqindex; - utf8proc_uint16_t titlecase_seqindex; - utf8proc_uint16_t comb_index; - unsigned bidi_mirrored:1; - unsigned comp_exclusion:1; - /** - * Can this codepoint be ignored? - * - * Used by @ref utf8proc_decompose_char when @ref UTF8PROC_IGNORE is - * passed as an option. - */ - unsigned ignorable:1; - unsigned control_boundary:1; - /** The width of the codepoint. */ - unsigned charwidth:2; - unsigned pad:2; - /** - * Boundclass. - * @see utf8proc_boundclass_t. - */ - unsigned boundclass:8; -} utf8proc_property_t; - -/** Unicode categories. */ -typedef enum { - UTF8PROC_CATEGORY_CN = 0, /**< Other, not assigned */ - UTF8PROC_CATEGORY_LU = 1, /**< Letter, uppercase */ - UTF8PROC_CATEGORY_LL = 2, /**< Letter, lowercase */ - UTF8PROC_CATEGORY_LT = 3, /**< Letter, titlecase */ - UTF8PROC_CATEGORY_LM = 4, /**< Letter, modifier */ - UTF8PROC_CATEGORY_LO = 5, /**< Letter, other */ - UTF8PROC_CATEGORY_MN = 6, /**< Mark, nonspacing */ - UTF8PROC_CATEGORY_MC = 7, /**< Mark, spacing combining */ - UTF8PROC_CATEGORY_ME = 8, /**< Mark, enclosing */ - UTF8PROC_CATEGORY_ND = 9, /**< Number, decimal digit */ - UTF8PROC_CATEGORY_NL = 10, /**< Number, letter */ - UTF8PROC_CATEGORY_NO = 11, /**< Number, other */ - UTF8PROC_CATEGORY_PC = 12, /**< Punctuation, connector */ - UTF8PROC_CATEGORY_PD = 13, /**< Punctuation, dash */ - UTF8PROC_CATEGORY_PS = 14, /**< Punctuation, open */ - UTF8PROC_CATEGORY_PE = 15, /**< Punctuation, close */ - UTF8PROC_CATEGORY_PI = 16, /**< Punctuation, initial quote */ - UTF8PROC_CATEGORY_PF = 17, /**< Punctuation, final quote */ - UTF8PROC_CATEGORY_PO = 18, /**< Punctuation, other */ - UTF8PROC_CATEGORY_SM = 19, /**< Symbol, math */ - UTF8PROC_CATEGORY_SC = 20, /**< Symbol, currency */ - UTF8PROC_CATEGORY_SK = 21, /**< Symbol, modifier */ - UTF8PROC_CATEGORY_SO = 22, /**< Symbol, other */ - UTF8PROC_CATEGORY_ZS = 23, /**< Separator, space */ - UTF8PROC_CATEGORY_ZL = 24, /**< Separator, line */ - UTF8PROC_CATEGORY_ZP = 25, /**< Separator, paragraph */ - UTF8PROC_CATEGORY_CC = 26, /**< Other, control */ - UTF8PROC_CATEGORY_CF = 27, /**< Other, format */ - UTF8PROC_CATEGORY_CS = 28, /**< Other, surrogate */ - UTF8PROC_CATEGORY_CO = 29, /**< Other, private use */ -} utf8proc_category_t; - -/** Bidirectional character classes. */ -typedef enum { - UTF8PROC_BIDI_CLASS_L = 1, /**< Left-to-Right */ - UTF8PROC_BIDI_CLASS_LRE = 2, /**< Left-to-Right Embedding */ - UTF8PROC_BIDI_CLASS_LRO = 3, /**< Left-to-Right Override */ - UTF8PROC_BIDI_CLASS_R = 4, /**< Right-to-Left */ - UTF8PROC_BIDI_CLASS_AL = 5, /**< Right-to-Left Arabic */ - UTF8PROC_BIDI_CLASS_RLE = 6, /**< Right-to-Left Embedding */ - UTF8PROC_BIDI_CLASS_RLO = 7, /**< Right-to-Left Override */ - UTF8PROC_BIDI_CLASS_PDF = 8, /**< Pop Directional Format */ - UTF8PROC_BIDI_CLASS_EN = 9, /**< European Number */ - UTF8PROC_BIDI_CLASS_ES = 10, /**< European Separator */ - UTF8PROC_BIDI_CLASS_ET = 11, /**< European Number Terminator */ - UTF8PROC_BIDI_CLASS_AN = 12, /**< Arabic Number */ - UTF8PROC_BIDI_CLASS_CS = 13, /**< Common Number Separator */ - UTF8PROC_BIDI_CLASS_NSM = 14, /**< Nonspacing Mark */ - UTF8PROC_BIDI_CLASS_BN = 15, /**< Boundary Neutral */ - UTF8PROC_BIDI_CLASS_B = 16, /**< Paragraph Separator */ - UTF8PROC_BIDI_CLASS_S = 17, /**< Segment Separator */ - UTF8PROC_BIDI_CLASS_WS = 18, /**< Whitespace */ - UTF8PROC_BIDI_CLASS_ON = 19, /**< Other Neutrals */ - UTF8PROC_BIDI_CLASS_LRI = 20, /**< Left-to-Right Isolate */ - UTF8PROC_BIDI_CLASS_RLI = 21, /**< Right-to-Left Isolate */ - UTF8PROC_BIDI_CLASS_FSI = 22, /**< First Strong Isolate */ - UTF8PROC_BIDI_CLASS_PDI = 23, /**< Pop Directional Isolate */ -} utf8proc_bidi_class_t; - -/** Decomposition type. */ -typedef enum { - UTF8PROC_DECOMP_TYPE_FONT = 1, /**< Font */ - UTF8PROC_DECOMP_TYPE_NOBREAK = 2, /**< Nobreak */ - UTF8PROC_DECOMP_TYPE_INITIAL = 3, /**< Initial */ - UTF8PROC_DECOMP_TYPE_MEDIAL = 4, /**< Medial */ - UTF8PROC_DECOMP_TYPE_FINAL = 5, /**< Final */ - UTF8PROC_DECOMP_TYPE_ISOLATED = 6, /**< Isolated */ - UTF8PROC_DECOMP_TYPE_CIRCLE = 7, /**< Circle */ - UTF8PROC_DECOMP_TYPE_SUPER = 8, /**< Super */ - UTF8PROC_DECOMP_TYPE_SUB = 9, /**< Sub */ - UTF8PROC_DECOMP_TYPE_VERTICAL = 10, /**< Vertical */ - UTF8PROC_DECOMP_TYPE_WIDE = 11, /**< Wide */ - UTF8PROC_DECOMP_TYPE_NARROW = 12, /**< Narrow */ - UTF8PROC_DECOMP_TYPE_SMALL = 13, /**< Small */ - UTF8PROC_DECOMP_TYPE_SQUARE = 14, /**< Square */ - UTF8PROC_DECOMP_TYPE_FRACTION = 15, /**< Fraction */ - UTF8PROC_DECOMP_TYPE_COMPAT = 16, /**< Compat */ -} utf8proc_decomp_type_t; - -/** Boundclass property. (TR29) */ -typedef enum { - UTF8PROC_BOUNDCLASS_START = 0, /**< Start */ - UTF8PROC_BOUNDCLASS_OTHER = 1, /**< Other */ - UTF8PROC_BOUNDCLASS_CR = 2, /**< Cr */ - UTF8PROC_BOUNDCLASS_LF = 3, /**< Lf */ - UTF8PROC_BOUNDCLASS_CONTROL = 4, /**< Control */ - UTF8PROC_BOUNDCLASS_EXTEND = 5, /**< Extend */ - UTF8PROC_BOUNDCLASS_L = 6, /**< L */ - UTF8PROC_BOUNDCLASS_V = 7, /**< V */ - UTF8PROC_BOUNDCLASS_T = 8, /**< T */ - UTF8PROC_BOUNDCLASS_LV = 9, /**< Lv */ - UTF8PROC_BOUNDCLASS_LVT = 10, /**< Lvt */ - UTF8PROC_BOUNDCLASS_REGIONAL_INDICATOR = 11, /**< Regional indicator */ - UTF8PROC_BOUNDCLASS_SPACINGMARK = 12, /**< Spacingmark */ - UTF8PROC_BOUNDCLASS_PREPEND = 13, /**< Prepend */ - UTF8PROC_BOUNDCLASS_ZWJ = 14, /**< Zero Width Joiner */ - UTF8PROC_BOUNDCLASS_E_BASE = 15, /**< Emoji Base */ - UTF8PROC_BOUNDCLASS_E_MODIFIER = 16, /**< Emoji Modifier */ - UTF8PROC_BOUNDCLASS_GLUE_AFTER_ZWJ = 17, /**< Glue_After_ZWJ */ - UTF8PROC_BOUNDCLASS_E_BASE_GAZ = 18, /**< E_BASE + GLUE_AFTER_ZJW */ -} utf8proc_boundclass_t; - -/** - * Function pointer type passed to @ref utf8proc_map_custom and - * @ref utf8proc_decompose_custom, which is used to specify a user-defined - * mapping of codepoints to be applied in conjunction with other mappings. - */ -typedef utf8proc_int32_t (*utf8proc_custom_func)(utf8proc_int32_t codepoint, void *data); - -/** - * Array containing the byte lengths of a UTF-8 encoded codepoint based - * on the first byte. - */ -UTF8PROC_DLLEXPORT extern const utf8proc_int8_t utf8proc_utf8class[256]; - -/** - * Returns the utf8proc API version as a string MAJOR.MINOR.PATCH - * (http://semver.org format), possibly with a "-dev" suffix for - * development versions. - */ -UTF8PROC_DLLEXPORT const char *utf8proc_version(void); - -/** - * Returns an informative error string for the given utf8proc error code - * (e.g. the error codes returned by @ref utf8proc_map). - */ -UTF8PROC_DLLEXPORT const char *utf8proc_errmsg(utf8proc_ssize_t errcode); - -/** - * Reads a single codepoint from the UTF-8 sequence being pointed to by `str`. - * The maximum number of bytes read is `strlen`, unless `strlen` is - * negative (in which case up to 4 bytes are read). - * - * If a valid codepoint could be read, it is stored in the variable - * pointed to by `codepoint_ref`, otherwise that variable will be set to -1. - * In case of success, the number of bytes read is returned; otherwise, a - * negative error code is returned. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_iterate(const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_int32_t *codepoint_ref); - -/** - * Check if a codepoint is valid (regardless of whether it has been - * assigned a value by the current Unicode standard). - * - * @return 1 if the given `codepoint` is valid and otherwise return 0. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_codepoint_valid(utf8proc_int32_t codepoint); - -/** - * Encodes the codepoint as an UTF-8 string in the byte array pointed - * to by `dst`. This array must be at least 4 bytes long. - * - * In case of success the number of bytes written is returned, and - * otherwise 0 is returned. - * - * This function does not check whether `codepoint` is valid Unicode. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_encode_char(utf8proc_int32_t codepoint, utf8proc_uint8_t *dst); - -/** - * Look up the properties for a given codepoint. - * - * @param codepoint The Unicode codepoint. - * - * @returns - * A pointer to a (constant) struct containing information about - * the codepoint. - * @par - * If the codepoint is unassigned or invalid, a pointer to a special struct is - * returned in which `category` is 0 (@ref UTF8PROC_CATEGORY_CN). - */ -UTF8PROC_DLLEXPORT const utf8proc_property_t *utf8proc_get_property(utf8proc_int32_t codepoint); - -/** Decompose a codepoint into an array of codepoints. - * - * @param codepoint the codepoint. - * @param dst the destination buffer. - * @param bufsize the size of the destination buffer. - * @param options one or more of the following flags: - * - @ref UTF8PROC_REJECTNA - return an error `codepoint` is unassigned - * - @ref UTF8PROC_IGNORE - strip "default ignorable" codepoints - * - @ref UTF8PROC_CASEFOLD - apply Unicode casefolding - * - @ref UTF8PROC_COMPAT - replace certain codepoints with their - * compatibility decomposition - * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster - * - @ref UTF8PROC_LUMP - lump certain different codepoints together - * - @ref UTF8PROC_STRIPMARK - remove all character marks - * @param last_boundclass - * Pointer to an integer variable containing - * the previous codepoint's boundary class if the @ref UTF8PROC_CHARBOUND - * option is used. Otherwise, this parameter is ignored. - * - * @return - * In case of success, the number of codepoints written is returned; in case - * of an error, a negative error code is returned (@ref utf8proc_errmsg). - * @par - * If the number of written codepoints would be bigger than `bufsize`, the - * required buffer size is returned, while the buffer will be overwritten with - * undefined data. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_char( - utf8proc_int32_t codepoint, utf8proc_int32_t *dst, utf8proc_ssize_t bufsize, - utf8proc_option_t options, int *last_boundclass -); - -/** - * The same as @ref utf8proc_decompose_char, but acts on a whole UTF-8 - * string and orders the decomposed sequences correctly. - * - * If the @ref UTF8PROC_NULLTERM flag in `options` is set, processing - * will be stopped, when a NULL byte is encounted, otherwise `strlen` - * bytes are processed. The result (in the form of 32-bit unicode - * codepoints) is written into the buffer being pointed to by - * `buffer` (which must contain at least `bufsize` entries). In case of - * success, the number of codepoints written is returned; in case of an - * error, a negative error code is returned (@ref utf8proc_errmsg). - * See @ref utf8proc_decompose_custom to supply additional transformations. - * - * If the number of written codepoints would be bigger than `bufsize`, the - * required buffer size is returned, while the buffer will be overwritten with - * undefined data. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options -); - -/** - * The same as @ref utf8proc_decompose, but also takes a `custom_func` mapping function - * that is called on each codepoint in `str` before any other transformations - * (along with a `custom_data` pointer that is passed through to `custom_func`). - * The `custom_func` argument is ignored if it is `NULL`. See also @ref utf8proc_map_custom. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, - utf8proc_int32_t *buffer, utf8proc_ssize_t bufsize, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -); - -/** - * Normalizes the sequence of `length` codepoints pointed to by `buffer` - * in-place (i.e., the result is also stored in `buffer`). - * - * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. - * @param length the length (in codepoints) of the buffer. - * @param options a bitwise or (`|`) of one or more of the following flags: - * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS - * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS - * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF - * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters - * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite - * codepoints - * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate - * the unicode versioning stability - * - * @return - * In case of success, the length (in codepoints) of the normalized UTF-32 string is - * returned; otherwise, a negative error code is returned (@ref utf8proc_errmsg). - * - * @warning The entries of the array pointed to by `str` have to be in the - * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); - -/** - * Reencodes the sequence of `length` codepoints pointed to by `buffer` - * UTF-8 data in-place (i.e., the result is also stored in `buffer`). - * Can optionally normalize the UTF-32 sequence prior to UTF-8 conversion. - * - * @param buffer the (native-endian UTF-32) unicode codepoints to re-encode. - * @param length the length (in codepoints) of the buffer. - * @param options a bitwise or (`|`) of one or more of the following flags: - * - @ref UTF8PROC_NLF2LS - convert LF, CRLF, CR and NEL into LS - * - @ref UTF8PROC_NLF2PS - convert LF, CRLF, CR and NEL into PS - * - @ref UTF8PROC_NLF2LF - convert LF, CRLF, CR and NEL into LF - * - @ref UTF8PROC_STRIPCC - strip or convert all non-affected control characters - * - @ref UTF8PROC_COMPOSE - try to combine decomposed codepoints into composite - * codepoints - * - @ref UTF8PROC_STABLE - prohibit combining characters that would violate - * the unicode versioning stability - * - @ref UTF8PROC_CHARBOUND - insert 0xFF bytes before each grapheme cluster - * - * @return - * In case of success, the length (in bytes) of the resulting nul-terminated - * UTF-8 string is returned; otherwise, a negative error code is returned - * (@ref utf8proc_errmsg). - * - * @warning The amount of free space pointed to by `buffer` must - * exceed the amount of the input data by one byte, and the - * entries of the array pointed to by `str` have to be in the - * range `0x0000` to `0x10FFFF`. Otherwise, the program might crash! - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options); - -/** - * Given a pair of consecutive codepoints, return whether a grapheme break is - * permitted between them (as defined by the extended grapheme clusters in UAX#29). - * - * @param state Beginning with Version 29 (Unicode 9.0.0), this algorithm requires - * state to break graphemes. This state can be passed in as a pointer - * in the `state` argument and should initially be set to 0. If the - * state is not passed in (i.e. a null pointer is passed), UAX#29 rules - * GB10/12/13 which require this state will not be applied, essentially - * matching the rules in Unicode 8.0.0. - * - * @warning If the state parameter is used, `utf8proc_grapheme_break_stateful` must - * be called IN ORDER on ALL potential breaks in a string. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break_stateful( - utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2, utf8proc_int32_t *state); - -/** - * Same as @ref utf8proc_grapheme_break_stateful, except without support for the - * Unicode 9 additions to the algorithm. Supported for legacy reasons. - */ -UTF8PROC_DLLEXPORT utf8proc_bool utf8proc_grapheme_break( - utf8proc_int32_t codepoint1, utf8proc_int32_t codepoint2); - - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * lower-case character, if any; otherwise (if there is no lower-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_tolower(utf8proc_int32_t c); - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * upper-case character, if any; otherwise (if there is no upper-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_toupper(utf8proc_int32_t c); - -/** - * Given a codepoint `c`, return the codepoint of the corresponding - * title-case character, if any; otherwise (if there is no title-case - * variant, or if `c` is not a valid codepoint) return `c`. - */ -UTF8PROC_DLLEXPORT utf8proc_int32_t utf8proc_totitle(utf8proc_int32_t c); - -/** - * Given a codepoint, return a character width analogous to `wcwidth(codepoint)`, - * except that a width of 0 is returned for non-printable codepoints - * instead of -1 as in `wcwidth`. - * - * @note - * If you want to check for particular types of non-printable characters, - * (analogous to `isprint` or `iscntrl`), use @ref utf8proc_category. */ -UTF8PROC_DLLEXPORT int utf8proc_charwidth(utf8proc_int32_t codepoint); - -/** - * Return the Unicode category for the codepoint (one of the - * @ref utf8proc_category_t constants.) - */ -UTF8PROC_DLLEXPORT utf8proc_category_t utf8proc_category(utf8proc_int32_t codepoint); - -/** - * Return the two-letter (nul-terminated) Unicode category string for - * the codepoint (e.g. `"Lu"` or `"Co"`). - */ -UTF8PROC_DLLEXPORT const char *utf8proc_category_string(utf8proc_int32_t codepoint); - -/** - * Maps the given UTF-8 string pointed to by `str` to a new UTF-8 - * string, allocated dynamically by `malloc` and returned via `dstptr`. - * - * If the @ref UTF8PROC_NULLTERM flag in the `options` field is set, - * the length is determined by a NULL terminator, otherwise the - * parameter `strlen` is evaluated to determine the string length, but - * in any case the result will be NULL terminated (though it might - * contain NULL characters with the string if `str` contained NULL - * characters). Other flags in the `options` field are passed to the - * functions defined above, and regarded as described. See also - * @ref utfproc_map_custom to supply a custom codepoint transformation. - * - * In case of success the length of the new string is returned, - * otherwise a negative error code is returned. - * - * @note The memory of the new UTF-8 string will have been allocated - * with `malloc`, and should therefore be deallocated with `free`. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options -); - -/** - * Like @ref utf8proc_map, but also takes a `custom_func` mapping function - * that is called on each codepoint in `str` before any other transformations - * (along with a `custom_data` pointer that is passed through to `custom_func`). - * The `custom_func` argument is ignored if it is `NULL`. - */ -UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_map_custom( - const utf8proc_uint8_t *str, utf8proc_ssize_t strlen, utf8proc_uint8_t **dstptr, utf8proc_option_t options, - utf8proc_custom_func custom_func, void *custom_data -); - -/** @name Unicode normalization - * - * Returns a pointer to newly allocated memory of a NFD, NFC, NFKD or NFKC - * normalized version of the null-terminated string `str`. These - * are shortcuts to calling @ref utf8proc_map with @ref UTF8PROC_NULLTERM - * combined with @ref UTF8PROC_STABLE and flags indicating the normalization. - */ -/** @{ */ -/** NFD normalization (@ref UTF8PROC_DECOMPOSE). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFD(const utf8proc_uint8_t *str); -/** NFC normalization (@ref UTF8PROC_COMPOSE). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFC(const utf8proc_uint8_t *str); -/** NFKD normalization (@ref UTF8PROC_DECOMPOSE and @ref UTF8PROC_COMPAT). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKD(const utf8proc_uint8_t *str); -/** NFKC normalization (@ref UTF8PROC_COMPOSE and @ref UTF8PROC_COMPAT). */ -UTF8PROC_DLLEXPORT utf8proc_uint8_t *utf8proc_NFKC(const utf8proc_uint8_t *str); -/** @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libhdf5/nc4hdf.c b/libhdf5/nc4hdf.c index b61b6f8d2..9401a0d82 100644 --- a/libhdf5/nc4hdf.c +++ b/libhdf5/nc4hdf.c @@ -1,4 +1,4 @@ -/* Copyright 2003, University Corporation for Atmospheric +/* Copyright 2018, University Corporation for Atmospheric * Research. See the COPYRIGHT file for copying and redistribution * conditions. */ /** @@ -2725,4 +2725,3 @@ NC4_walk(hid_t gid, int* countp) } return ncstat; } - diff --git a/libhdf5/nc4info.c b/libhdf5/nc4info.c index a6a34355a..87b13e701 100644 --- a/libhdf5/nc4info.c +++ b/libhdf5/nc4info.c @@ -2,7 +2,7 @@ * @file * @internal Add provenance info for netcdf-4 files. * - * Copyright 2010, UCAR/Unidata See netcdf/COPYRIGHT file for copying + * Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying * and redistribution conditions. * @author Dennis Heimbigner */ @@ -73,7 +73,7 @@ NC4_provenance_init(void) {stat = NC_ENOMEM; goto done;} nclistpush(globalpropinfo.properties,value); value = NULL; - + /* Insert the HDF5 as underlying storage format library */ if((name = strdup(NCPHDF5LIB2)) == NULL) {stat = NC_ENOMEM; goto done;} @@ -109,7 +109,7 @@ done: if(name != NULL) free(name); if(value != NULL) free(value); if(other != NULL) - nclistfreeall(other); + nclistfreeall(other); if(stat && globalpropinfo.properties != NULL) { nclistfreeall(globalpropinfo.properties); globalpropinfo.properties = NULL; @@ -192,7 +192,7 @@ properties_parse(const char* text0, NClist* pairs) *q++ = '\0'; next = q; /* split key and value */ - q = locate(p,'='); + q = locate(p,'='); name = p; *q++ = '\0'; value = q; @@ -482,7 +482,7 @@ NC4_read_ncproperties(NC_FILE_INFO_T* h5) hdf5grpid = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; if(H5Aexists(hdf5grpid,NCPROPS) <= 0) { /* Does not exist */ - /* File did not contain a _NCProperties attribute */ + /* File did not contain a _NCProperties attribute */ retval=NC4_get_provenance(h5,NULL,&globalpropinfo); goto done; } @@ -622,7 +622,7 @@ ncprintpropinfo(struct NCPROPINFO* info) char* name = nclistget(info->properties,i); char* value = nclistget(info->properties,i+1); fprintf(stderr,"\t[%d] name=|%s| value=|%s|\n",i,name,value); - } + } } void @@ -631,49 +631,3 @@ ncprintprovenance(struct NCPROVENANCE* prov) fprintf(stderr,"[%p] superblockversion=%d\n",prov,prov->superblockversion); ncprintpropinfo(&prov->propattr); } - -#if 0 -/** - * @internal Write the properties attribute to file. - * - * @param h5 Pointer to HDF5 file info struct. - * - * @return ::NC_NOERR No error. - * @author Dennis Heimbigner - */ -int -NC4_put_ncproperties(NC_FILE_INFO_T* file) -{ - int ncstat = NC_NOERR; - char* text = NULL; - - LOG((3, "%s: ncid 0x%x", __func__, file->root_grp->hdr.id); - - /* Get root group */ - grp = ((NC_HDF5_GRP_INFO_T *)(h5->root_grp->format_grp_info))->hdf_grpid; - /* See if the NCPROPS attribute exists */ - if(H5Aexists(grp,NCPROPS) <= 0) { /* Does not exist */ - ncstat = NC4_buildpropinfo(&h5->fileinfo->propattr,&text); - if(text == NULL || ncstat != NC_NOERR) { - goto done; - } - /* Create a datatype to refer to. */ - HCHECK((atype = H5Tcopy(H5T_C_S1))); - HCHECK((H5Tset_cset(atype, H5T_CSET_ASCII))); - HCHECK((H5Tset_size(atype, strlen(text)+1))); /*keep nul term */ - HCHECK((aspace = H5Screate(H5S_SCALAR))); - HCHECK((attid = H5Acreate(grp, NCPROPS, atype, aspace, H5P_DEFAULT))); - HCHECK((H5Awrite(attid, atype, text))); - } - done: - if(text != NULL) { - free(text); - text = NULL; - } - - if(attid >= 0) HCHECK((H5Aclose(attid))); - if(aspace >= 0) HCHECK((H5Sclose(aspace))); - if(atype >= 0) HCHECK((H5Tclose(atype))); - return ncstat; -} -#endif diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt index b8c5f1dbc..ea9b02949 100644 --- a/liblib/CMakeLists.txt +++ b/liblib/CMakeLists.txt @@ -1,4 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. +# See netcdf-c/COPYRIGHT file for more info. SET(liblib_LIBS dispatch netcdf3) ##### @@ -8,7 +13,7 @@ SET(liblib_LIBS dispatch netcdf3) IF(USE_HDF5 OR USE_NETCDF4) SET(liblib_LIBS ${liblib_LIBS} netcdf4) SET(liblib_LIBS ${liblib_LIBS} netcdfhdf5) - + ENDIF() IF(USE_PNETCDF) diff --git a/liblib/Makefile.am b/liblib/Makefile.am index da3cfe622..0a0bab73d 100644 --- a/liblib/Makefile.am +++ b/liblib/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2010, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This Makefile assembles the correct libnetcdf based on various # configure flags. It is assumed that all the relevant convenience diff --git a/liblib/nc_initialize.c b/liblib/nc_initialize.c index 7cf34f519..3be13369a 100644 --- a/liblib/nc_initialize.c +++ b/liblib/nc_initialize.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/libsrc/CMakeLists.txt b/libsrc/CMakeLists.txt index e617b17e9..fc4cf0703 100644 --- a/libsrc/CMakeLists.txt +++ b/libsrc/CMakeLists.txt @@ -1,5 +1,5 @@ ## This is a CMake file, part of Unidata's netCDF package. -# Copyright 2012-2013, see the COPYRIGHT file for more information. +# Copyright 2012-2018, see the COPYRIGHT file for more information. # Process these files with m4. SET(m4_SOURCES attr ncx putget t_ncxx) diff --git a/libsrc/Makefile.am b/libsrc/Makefile.am index 498673e40..fd13299fc 100644 --- a/libsrc/Makefile.am +++ b/libsrc/Makefile.am @@ -1,5 +1,5 @@ ## This is an automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This automake file is in charge of building the libsrc directory, # which contains the classic library code. diff --git a/libsrc/attr.m4 b/libsrc/attr.m4 index 44da9084b..ae0208b64 100644 --- a/libsrc/attr.m4 +++ b/libsrc/attr.m4 @@ -5,7 +5,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/dim.c b/libsrc/dim.c index 14114ec06..227ac5ab5 100644 --- a/libsrc/dim.c +++ b/libsrc/dim.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: dim.c,v 1.83 2010/05/25 17:54:15 dmh Exp $ */ diff --git a/libsrc/ffio.c b/libsrc/ffio.c index e2ba64f70..80bc6cb93 100644 --- a/libsrc/ffio.c +++ b/libsrc/ffio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: ffio.c,v 1.56 2006/09/15 20:40:30 ed Exp $ */ diff --git a/libsrc/memio.c b/libsrc/memio.c index 09d4b6251..35bcd5738 100644 --- a/libsrc/memio.c +++ b/libsrc/memio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/mmapio.c b/libsrc/mmapio.c index 98e4dadbb..a05e3afa9 100644 --- a/libsrc/mmapio.c +++ b/libsrc/mmapio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/nc3dispatch.c b/libsrc/nc3dispatch.c index 19f1756d0..41cf55346 100644 --- a/libsrc/nc3dispatch.c +++ b/libsrc/nc3dispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - Copyright 2010, UCAR/Unidata See netcdf/COPYRIGHT file for + Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying and redistribution conditions. $Id: nc3dispatch.c,v 2.8 2010/05/26 11:11:26 ed Exp $ diff --git a/libsrc/nc3internal.c b/libsrc/nc3internal.c index 704e73913..dbac0a4b4 100644 --- a/libsrc/nc3internal.c +++ b/libsrc/nc3internal.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, Unuiversity Corporation for Atmospheric Research + * Copyright 2018, Unuiversity Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncFile.c b/libsrc/ncFile.c index 4db35cbd5..aed7dc16d 100644 --- a/libsrc/ncFile.c +++ b/libsrc/ncFile.c @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncio.c b/libsrc/ncio.c index 20f5546b5..cc67cddad 100644 --- a/libsrc/ncio.c +++ b/libsrc/ncio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncio.h b/libsrc/ncio.h index 71dc640d3..6e3c17f76 100644 --- a/libsrc/ncio.h +++ b/libsrc/ncio.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: ncio.h,v 1.27 2006/01/03 04:56:28 russ Exp $ */ diff --git a/libsrc/ncstdio.c b/libsrc/ncstdio.c index dd69501f7..b7107a001 100644 --- a/libsrc/ncstdio.c +++ b/libsrc/ncstdio.c @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncstdio.h b/libsrc/ncstdio.h index ba8853910..b50f8c01f 100644 --- a/libsrc/ncstdio.h +++ b/libsrc/ncstdio.h @@ -1,5 +1,5 @@ /* - * Copyright 2012, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncx.h b/libsrc/ncx.h index a9ffcdc63..13e463dd5 100644 --- a/libsrc/ncx.h +++ b/libsrc/ncx.h @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/ncx_cray.c b/libsrc/ncx_cray.c index ce56ed940..4398ca904 100644 --- a/libsrc/ncx_cray.c +++ b/libsrc/ncx_cray.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * */ diff --git a/libsrc/posixio.c b/libsrc/posixio.c index 06b80050e..328b13aaf 100644 --- a/libsrc/posixio.c +++ b/libsrc/posixio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: posixio.c,v 1.89 2010/05/22 21:59:08 dmh Exp $ */ diff --git a/libsrc/putget.m4 b/libsrc/putget.m4 index baf49e3f5..644a7dd8f 100644 --- a/libsrc/putget.m4 +++ b/libsrc/putget.m4 @@ -9,7 +9,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: putget.m4 2783 2014-10-26 05:19:35Z wkliao $ */ diff --git a/libsrc/t_ncio.c b/libsrc/t_ncio.c index 580548961..bfce5376f 100644 --- a/libsrc/t_ncio.c +++ b/libsrc/t_ncio.c @@ -1,5 +1,5 @@ /* - * Copyright 1995, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See top level COPYRIGHT file for copying and redistribution conditions. */ /* $Id: t_ncio.c,v 1.10 2010/05/26 11:11:26 ed Exp $ */ diff --git a/libsrc/t_ncxx.m4 b/libsrc/t_ncxx.m4 index 81589c18f..4aba4b6fb 100644 --- a/libsrc/t_ncxx.m4 +++ b/libsrc/t_ncxx.m4 @@ -5,7 +5,7 @@ dnl If you see this line, you can ignore the next one. /* Do not edit this file. It is produced from the corresponding .m4 source */ dnl /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* "$Id: t_ncxx.m4,v 2.17 2005/05/20 14:48:14 russ Exp $" */ @@ -16,13 +16,13 @@ dnl * Unlike t_ncx.c, it only checks self consistency, * not consistency with the xdr library. * - * Link like this: + * Link like this: * cc t_ncxx.c ncx.o -o t_nxc * (The xdr library is not needed.) * * If an assertion fails, there is a problem. * Otherwise, the program is silent and has exit code 0. - */ + */ #if HAVE_CONFIG_H #include @@ -239,10 +239,10 @@ dnl T_PUTN(XType, Type) dnl define(`T_PUTN',dnl `dnl -static void +static void t_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); int status = ncx_putn_$1_$2((void **)&xp, nelems, tp); @@ -273,10 +273,10 @@ dnl Doesn't make signed comparisons to unsigned type dnl define(`T_PUTN_U',dnl `dnl -static void +static void t_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); int status = ncx_putn_$1_$2((void **)&xp, nelems, tp); @@ -301,10 +301,10 @@ dnl T_PAD_PUTN(XType, Type) dnl define(`T_PAD_PUTN',dnl `dnl -static void +static void t_pad_putn_$1_$2(char *const buf) { - char *xp = buf; + char *xp = buf; const $2 *tp = `$2's; size_t nelems = ArraySize(`$2's); const char *end = buf + nelems * Xsizeof($1); @@ -337,10 +337,10 @@ dnl T_GETN(XType, Type) dnl define(`T_GETN',dnl `dnl -static void +static void t_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -368,10 +368,10 @@ dnl Doesn't make signed comparisons to unsigned type dnl define(`T_GETN_U',dnl `dnl -static void +static void t_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -397,10 +397,10 @@ dnl T_PAD_GETN(XType, Type) dnl define(`T_PAD_GETN',dnl `dnl -static void +static void t_pad_getn_$1_$2(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const $2 *tp = `$2's; $2 *lp = ($2 *)lbuf; size_t nelems = ArraySize(`$2's); @@ -434,10 +434,10 @@ dnl dnl dnl T_PUTN(schar, schar) dnl T_PUTN(schar, uchar) replaced by special case code. dnl - we don't return conversion errors putting uchar to schar. -static void +static void t_putn_schar_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(schars); int status = ncx_putn_schar_uchar((void **)&xp, nelems, tp); @@ -454,10 +454,10 @@ T_PUTN(schar, double) T_PAD_PUTN(schar, schar) dnl T_PAD_PUTN(schar, uchar) replaced by special case code. dnl - we don't return conversion errors putting uchar to schar. -static void +static void t_pad_putn_schar_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(uchars); const char *end = buf + nelems * X_SIZEOF_SCHAR; @@ -485,10 +485,10 @@ T_PUTN(short, double) T_PAD_PUTN(short, schar) dnl T_PAD_PUTN(short, uchar) dnl Don't make signed comparisons to usigned type -static void +static void t_pad_putn_short_uchar(char *const buf) { - char *xp = buf; + char *xp = buf; const uchar *tp = uchars; size_t nelems = ArraySize(uchars); const char *end = buf + nelems * X_SIZEOF_SHORT; @@ -545,10 +545,10 @@ T_PUTN(double, double) T_GETN(schar, schar) dnl T_GETN(schar, uchar) dnl - we don't return conversion errors gettin schar to uchar. -static void +static void t_getn_schar_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(schars); @@ -574,10 +574,10 @@ T_GETN(schar, double) T_PAD_GETN(schar, schar) dnl T_PAD_GETN(schar, uchar) dnl - we don't return conversion errors gettin schar to uchar. -static void +static void t_pad_getn_schar_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(schars); @@ -614,10 +614,10 @@ T_GETN(short, double) T_PAD_GETN(short, schar) dnl T_PAD_GETN(short, uchar) dnl Don't make signed comparisons to usigned type -static void +static void t_pad_getn_short_uchar(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const uchar *tp = uchars; uchar *lp = (uchar *)lbuf; size_t nelems = ArraySize(uchars); @@ -659,10 +659,10 @@ T_GETN_U(float, uchar) T_GETN(float, short) dnl T_GETN(float, int) dnl Exact conversion of int to x_float is limited by external float mantissa -static void +static void t_getn_float_int(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const int *tp = ints; int *lp = (int *)lbuf; size_t nelems = ArraySize(ints); @@ -687,10 +687,10 @@ t_getn_float_int(const char *const buf) dnl T_GETN(float, long) dnl Exact conversion of long to x_float is limited by external float mantissa -static void +static void t_getn_float_long(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const long *tp = longs; long *lp = (long *)lbuf; size_t nelems = ArraySize(longs); @@ -719,10 +719,10 @@ t_getn_float_long(const char *const buf) T_GETN(float, float) dnl T_GETN(float, double) dnl Exact conversion of double to x_float is limited by external float mantissa -static void +static void t_getn_float_double(const char *const buf) { - const char *xp = buf; + const char *xp = buf; const double *tp = doubles; double *lp = (double *)lbuf; size_t nelems = ArraySize(doubles); @@ -754,7 +754,7 @@ t_getn_float_double(const char *const buf) (void) fprintf(stderr, "%.9e != %.9e float_double (diff %.9e)\n", tp[ii], lp[ii], tp[ii] - lp[ii]); - + } } } diff --git a/libsrc/v1hpg.c b/libsrc/v1hpg.c index ee85fe9aa..0886bb337 100644 --- a/libsrc/v1hpg.c +++ b/libsrc/v1hpg.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ diff --git a/libsrc/var.c b/libsrc/var.c index 9254894ed..6b466821e 100644 --- a/libsrc/var.c +++ b/libsrc/var.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: var.c,v 1.144 2010/05/30 00:50:35 russ Exp $ */ diff --git a/libsrc/winceio.c b/libsrc/winceio.c index c7a2e14ff..f30daba42 100644 --- a/libsrc/winceio.c +++ b/libsrc/winceio.c @@ -1,5 +1,5 @@ /* - * Copyright 1996, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. */ /* $Id: winceio.c,v 1.2 2010/05/04 17:30:04 dmh Exp $ */ diff --git a/libsrc4/CMakeLists.txt b/libsrc4/CMakeLists.txt index f54d652c3..59aabbb45 100644 --- a/libsrc4/CMakeLists.txt +++ b/libsrc4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Process these files with m4. SET(libsrc4_SOURCES nc4dispatch.c nc4attr.c nc4dim.c nc4grp.c nc4type.c nc4var.c ncfunc.c nc4internal.c ncindex.c ) diff --git a/libsrc4/Makefile.am b/libsrc4/Makefile.am index 0c59d6ae8..1a3d6c842 100644 --- a/libsrc4/Makefile.am +++ b/libsrc4/Makefile.am @@ -1,4 +1,4 @@ -# This is part of Unidata's netCDF package. Copyright 2005-2011, see +# This is part of Unidata's netCDF package. Copyright 2005-2018, see # the COPYRIGHT file for more information. # This automake file generates the Makefile to build netCDF-4. @@ -15,8 +15,3 @@ nc4internal.c nc4type.c nc4var.c ncfunc.c error4.c nc4printer.c \ ncindex.c EXTRA_DIST = CMakeLists.txt - - - - - diff --git a/libsrc4/error4.c b/libsrc4/error4.c index 9ee786507..43ff29589 100644 --- a/libsrc4/error4.c +++ b/libsrc4/error4.c @@ -1,4 +1,6 @@ -/* Copyright 2003-2018, University Corporation for Atmospheric +/*! \file + +Copyright 2003-2018, University Corporation for Atmospheric Research. See netcdf-4/docs/COPYRIGHT file for copying and redistribution conditions. */ /** @@ -8,7 +10,7 @@ redistribution conditions. */ * * This file contains functions relating to logging errors. Also it * contains the functions nc_malloc, nc_calloc, and nc_free. - * + * * @author Ed Hartnett */ @@ -30,7 +32,7 @@ extern int nc_log_level; /* This function prints out a message, if the severity of the message is lower than the global nc_log_level. To use it, do something like this: - + nc_log(0, "this computer will explode in %d seconds", i); After the first arg (the severity), use the rest like a normal @@ -38,7 +40,7 @@ extern int nc_log_level; This function is heavily based on the function in section 15.5 of the C FAQ. */ -void +void nc_log(int severity, const char *fmt, ...) { va_list argp; @@ -60,7 +62,7 @@ nc_log(int severity, const char *fmt, ...) va_start(argp, fmt); vfprintf(stderr, fmt, argp); va_end(argp); - + /* Put on a final linefeed. */ fprintf(stderr, "\n"); fflush(stderr); @@ -75,4 +77,3 @@ nc_log_hdf5(void) } #endif /* ifdef LOGGING */ - diff --git a/libsrc4/nc4printer.c b/libsrc4/nc4printer.c index 0596b0f0b..641eff92b 100644 --- a/libsrc4/nc4printer.c +++ b/libsrc4/nc4printer.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ @@ -17,7 +17,7 @@ create other tools. #include "ncbytes.h" #include "nclist.h" -#undef DEBUG +#undef DEBUG #define BUFSIZE 4096 @@ -148,7 +148,7 @@ freeNC4Printer(NC4printer* out) { int i; - if(out == NULL) return; + if(out == NULL) return; #ifdef DEBUG fprintf(stderr,"free: |allnodes=%ld\n",nclistlength(out->allnodes)); @@ -206,7 +206,7 @@ printNode(NC4printer* out, NCID* node, int depth) switch (node->sort) { case GROUP: - /* Get group name */ + /* Get group name */ if((ret=nc_inq_grpname(node->id,name))) FAIL; SETNAME(node,name); /* get group counts */ @@ -304,7 +304,7 @@ printNode(NC4printer* out, NCID* node, int depth) printXMLAttributeName(out, "name", node->name); printXMLAttributeSize(out, "size", node->size); CAT("/>"); - break; + break; case NC_ENUM: if((ret=nc_inq_enum(GROUPOF(node),node->id,NULL,NULL,NULL,&count))) FAIL; INDENT(depth); CAT("base = findType(out,base); id->size = count; - printAttribute(out,id,depth); + printAttribute(out,id,depth); CAT("\n"); } depth--; @@ -636,7 +636,7 @@ makeFQN(NCID* id, NCbytes* path) fqnWalk(g,path); ncbytesappend(path,'/'); if(id->sort != GROUP) - ncbytescat(path,id->name); + ncbytescat(path,id->name); ncbytesnull(path); } @@ -646,7 +646,7 @@ fqnWalk(NCID* grp, NCbytes* path) if(grp->id != 0) { NCID* parent = grp->parent; fqnWalk(parent,path); - ncbytesappend(path,'/'); + ncbytesappend(path,'/'); ncbytescat(path,parent->name); } } @@ -738,7 +738,7 @@ printString(NCbytes* out, const char* s, int quotes) if(c == '\\') ncbytescat(out,"\\\\"); else if(c == '"') ncbytescat(out,"\\\""); else ncbytesappend(out,c); - } + } if(quotes) ncbytesappend(out,'"'); ncbytesnull(out); } @@ -783,4 +783,3 @@ readAttributeValues(NCID* attr, void** valuesp) if(valuesp) *valuesp = values; return ret; } - diff --git a/libsrc4/nc4var.c b/libsrc4/nc4var.c index c314aba23..7a6f4cbfb 100644 --- a/libsrc4/nc4var.c +++ b/libsrc4/nc4var.c @@ -1,4 +1,4 @@ -/* Copyright 2003-2006, University Corporation for Atmospheric +/* Copyright 2003-2018, University Corporation for Atmospheric * Research. See COPYRIGHT file for copying and redistribution * conditions.*/ /** diff --git a/libsrc4/ncfunc.c b/libsrc4/ncfunc.c index 8cd0d58c0..714867d9c 100644 --- a/libsrc4/ncfunc.c +++ b/libsrc4/ncfunc.c @@ -1,7 +1,7 @@ /** * @internal * - * Copyright 2003, University Corporation for Atmospheric + * Copyright 2018, University Corporation for Atmospheric * Research. See netcdf-4/docs/COPYRIGHT file for copying and * redistribution conditions. * @@ -82,7 +82,7 @@ NC4_inq_format_extended(int ncid, int *formatp, int *modep) if(modep) *modep = nc->mode|NC_NETCDF4; - if (formatp) + if (formatp) *formatp = NC_FORMATX_NC_HDF5; return NC_NOERR; diff --git a/libsrc4/ncindex.c b/libsrc4/ncindex.c index 54f27be42..e76b005f4 100644 --- a/libsrc4/ncindex.c +++ b/libsrc4/ncindex.c @@ -1,5 +1,5 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata See LICENSE.txt for license information. */ @@ -176,7 +176,7 @@ also recompute their hashkey. /* Return 1 if ok, 0 otherwise.*/ int ncindexrebuild(NCindex* index) -{ +{ #ifndef NCNOHASH size_t i; size_t size = nclistlength(index->list); @@ -196,7 +196,7 @@ ncindexrebuild(NCindex* index) } #endif if(contents != NULL) free(contents); - return 1; + return 1; } /* Free a list map */ @@ -206,7 +206,7 @@ ncindexfree(NCindex* index) if(index == NULL) return 1; nclistfree(index->list); NC_hashmapfree(index->map); - free(index); + free(index); return 1; } @@ -235,7 +235,7 @@ keystr(NC_hentry* e) { if(e->keysize < sizeof(uintptr_t)) return (const char*)(&e->key); - else + else return (const char*)(e->key); } #endif @@ -253,7 +253,7 @@ ncindexverify(NCindex* lm, int dump) if(lm == NULL) { fprintf(stderr,"index: \n"); return 1; - } + } if(dump) { fprintf(stderr,"-------------------------\n"); #ifndef NCNOHASH diff --git a/libsrcp/CMakeLists.txt b/libsrcp/CMakeLists.txt index 7d8ab9cf3..adf1d3413 100644 --- a/libsrcp/CMakeLists.txt +++ b/libsrcp/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + SET(libsrcp_SOURCES ncpdispatch.c) add_library(netcdfp OBJECT ${libsrcp_SOURCES}) diff --git a/libsrcp/Makefile.am b/libsrcp/Makefile.am index 0747f35e9..58f3d8e10 100644 --- a/libsrcp/Makefile.am +++ b/libsrcp/Makefile.am @@ -1,5 +1,5 @@ ## This is an automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file is in charge of building the libsrc directory, # which contains the classic library code. @@ -16,4 +16,4 @@ libnetcdfp_la_SOURCES = ncpdispatch.c noinst_LTLIBRARIES = libnetcdfp.la -EXTRA_DIST = CMakeLists.txt +EXTRA_DIST = CMakeLists.txt diff --git a/libsrcp/ncpdispatch.c b/libsrcp/ncpdispatch.c index 0eb490e60..765a628a5 100644 --- a/libsrcp/ncpdispatch.c +++ b/libsrcp/ncpdispatch.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/nc_test/CMakeLists.txt b/nc_test/CMakeLists.txt index 0e5c94d1c..4f75ed603 100644 --- a/nc_test/CMakeLists.txt +++ b/nc_test/CMakeLists.txt @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + message(STATUS "CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}") message(STATUS "CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}") message(STATUS "CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/nc_test/Makefile.am b/nc_test/Makefile.am index 4ea7b399e..0050b6443 100644 --- a/nc_test/Makefile.am +++ b/nc_test/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the nc_test program, which tests the # netCDF-3 API for all formats. diff --git a/nc_test/error.c b/nc_test/error.c index 2d502ca0e..3111a31f8 100644 --- a/nc_test/error.c +++ b/nc_test/error.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: error.c,v 1.7 2007/05/15 01:36:57 ed Exp $ *********************************************************************/ diff --git a/nc_test/error.h b/nc_test/error.h index f8ccf3b06..6e6a10edc 100644 --- a/nc_test/error.h +++ b/nc_test/error.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nc_test/large_files.c b/nc_test/large_files.c index a723c81c1..114fa3d2f 100644 --- a/nc_test/large_files.c +++ b/nc_test/large_files.c @@ -1,5 +1,5 @@ /* - Copyright 2004-2006, UCAR/Unidata + Copyright 2004-2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/nc_test.c b/nc_test/nc_test.c index 1a5c91088..74ac76e04 100644 --- a/nc_test/nc_test.c +++ b/nc_test/nc_test.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996-2005, UCAR/Unidata + * Copyright 1996-2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * $Id: nc_test.c 2796 2014-10-28 03:40:29Z wkliao $ *********************************************************************/ diff --git a/nc_test/quick_large_files.c b/nc_test/quick_large_files.c index 913916c04..04d7eac24 100644 --- a/nc_test/quick_large_files.c +++ b/nc_test/quick_large_files.c @@ -1,5 +1,5 @@ /* - Copyright 2004-2006, UCAR/Unidata + Copyright 2004-2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program (quickly, but not thoroughly) tests the large file diff --git a/nc_test/t_nc.c b/nc_test/t_nc.c index 2b6a78f9e..7fdc28520 100644 --- a/nc_test/t_nc.c +++ b/nc_test/t_nc.c @@ -1,4 +1,4 @@ -/* Copyright 1988-2010 University Corporation for Atmospheric Research +/* Copyright 1988-2018 University Corporation for Atmospheric Research See netcdf/COPYRIGHT file for copying and redistribution conditions. diff --git a/nc_test/t_nc_p5.c b/nc_test/t_nc_p5.c index 728783f0b..82ce46e72 100644 --- a/nc_test/t_nc_p5.c +++ b/nc_test/t_nc_p5.c @@ -1,14 +1,14 @@ -/* Copyright 1988-2010 University Corporation for Atmospheric Research +/* Copyright 1988-2018 University Corporation for Atmospheric Research See netcdf/COPYRIGHT file for copying and redistribution conditions. Program to create a cdf, exercise all cdf functions. Creates cdf, stuff it full of numbers, closes it. Then reopens it, and checks for consistency. Leaves the file around afterwards. - + Based on a program to test the nasa look-alike program, so not the most appropriate test. See ../nctest for a complete spec test. - + $Id: t_nc.c 2792 2014-10-27 06:02:59Z wkliao $ */ #define REDEF @@ -199,32 +199,32 @@ createtestvars(int id, const struct tcdfvar *testvars, size_t count) { assert(nc_def_var(id, vp->mnem, vp->type, vp->ndims, vp->dims, &varid) - == NC_NOERR ); + == NC_NOERR ); assert( nc_put_att_text(id,ii,reqattr[0],strlen(vp->units), vp->units) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[1],NC_DOUBLE,1, &vp->validmin) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[2],NC_DOUBLE,1, &vp->validmax) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[3],NC_DOUBLE,1, &vp->scalemin) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_double(id,ii,reqattr[4],NC_DOUBLE,1, &vp->scalemax) - == NC_NOERR); + == NC_NOERR); assert( nc_put_att_text(id,ii,reqattr[5],strlen(vp->fieldnam), vp->fieldnam) - == NC_NOERR); + == NC_NOERR); } } @@ -256,7 +256,7 @@ fill_seq(int id) { size_t *cc = vindices; while (cc < &vindices[num_dims]) - *cc++ = 0; + *cc++ = 0; } sizes[0] = NUM_RECS; @@ -277,7 +277,7 @@ check_fill_seq(int id) sizes[0] = NUM_RECS; cc = vindices; while (cc < &vindices[num_dims]) - *cc++ = 0; + *cc++ = 0; /* ripple counter */ cc = vindices; @@ -288,7 +288,7 @@ check_fill_seq(int id) { if (mm == &sizes[num_dims - 1]) { - if(nc_get_var1_float(id, Float_id, vindices, &got.fl[0]) == -1) + if(nc_get_var1_float(id, Float_id, vindices, &got.fl[0]) == -1) goto bad_ret; /* val = (float) ii; */ /* if(val != got.fl[0]) */ @@ -366,7 +366,7 @@ main(int argc, char *argv[]) fprintf(stderr,"Error %s in file %s at line %d\n",nc_strerror(ret),__FILE__,__LINE__); exit(ret); } - + assert( nc_put_att_text(id, NC_GLOBAL, "TITLE", 12, "another name") == NC_NOERR); assert( nc_get_att_text(id, NC_GLOBAL, @@ -383,7 +383,7 @@ main(int argc, char *argv[]) createtestdims(id, NUM_DIMS, sizes, dim_names); testdims(id, NUM_DIMS, sizes, dim_names); - createtestvars(id, testvars, NUM_TESTVARS); + createtestvars(id, testvars, NUM_TESTVARS); { int ifill = -1; double dfill = -9999; @@ -395,7 +395,7 @@ main(int argc, char *argv[]) #ifdef REDEF assert( nc__enddef(id, 0, align, 0, 2*align) == NC_NOERR ); - assert( nc_put_var1_int(id, Long_id, indices[3], &birthday) + assert( nc_put_var1_int(id, Long_id, indices[3], &birthday) == NC_NOERR ); fill_seq(id); assert( nc_redef(id) == NC_NOERR ); @@ -473,7 +473,7 @@ main(int argc, char *argv[]) /* (void) printf("reopen id = %d for filename %s\n", */ /* id, fname); */ - /* NC */ + /* NC */ /* (void) printf("NC "); */ assert( nc_inq(id, &(cdesc->num_dims), &(cdesc->num_vars), &(cdesc->num_attrs), &(cdesc->xtendim) ) == NC_NOERR); @@ -481,7 +481,7 @@ main(int argc, char *argv[]) assert(cdesc->num_attrs == 1); assert(cdesc->num_vars == NUM_TESTVARS); /* (void) printf("done\n"); */ - + /* GATTR */ /* (void) printf("GATTR "); */ @@ -498,7 +498,7 @@ main(int argc, char *argv[]) /* (void) printf("VAR "); */ assert( cdesc->num_vars == NUM_TESTVARS ); - for(ii = 0; ii < cdesc->num_vars; ii++, tvp++ ) + for(ii = 0; ii < cdesc->num_vars; ii++, tvp++ ) { int jj; assert( nc_inq_var(id, ii, @@ -532,7 +532,7 @@ main(int argc, char *argv[]) /* VATTR */ /* (void) printf("VATTR\n"); */ - for(jj=0; jjnum_attrs; jj++ ) + for(jj=0; jjnum_attrs; jj++ ) { assert( nc_inq_attname(id, ii, jj, adesc->mnem) == NC_NOERR); if( strcmp(adesc->mnem, reqattr[jj]) != 0 ) @@ -547,7 +547,7 @@ main(int argc, char *argv[]) != -1) { assert( adesc->type == NC_CHAR ); assert( adesc->len == strlen(tvp->units) ); - assert( nc_get_att_text(id,ii,reqattr[0],buf)== NC_NOERR); + assert( nc_get_att_text(id,ii,reqattr[0],buf)== NC_NOERR); buf[adesc->len] = 0; assert( strcmp(tvp->units, buf) == 0); } @@ -596,7 +596,7 @@ main(int argc, char *argv[]) { assert( adesc->type == NC_CHAR ); assert( adesc->len == strlen(tvp->fieldnam) ); - assert( nc_get_att_text(id,ii,reqattr[5],buf)== NC_NOERR); + assert( nc_get_att_text(id,ii,reqattr[5],buf)== NC_NOERR); buf[adesc->len] = 0; assert( strcmp(tvp->fieldnam, buf) == 0); } diff --git a/nc_test/testnc3perf.c b/nc_test/testnc3perf.c index 549f6203f..5a51a5062 100644 --- a/nc_test/testnc3perf.c +++ b/nc_test/testnc3perf.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1989, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/nctime.c,v 1.12 1996/04/30 17:56:58 davis Exp $ *********************************************************************/ @@ -66,7 +66,7 @@ static int DEFAULTDIMS[NDIMS] = {10, 20, 30, 40}; /* * Fill typed array element with specified value, that is - * + * * v[ii] = val; */ static void @@ -111,7 +111,7 @@ val_stuff(type, v, ii, val) /* v[ii] = val */ * * (v[ii] != val) * - * returns 0 if equal, 1 if not equal + * returns 0 if equal, 1 if not equal */ static int @@ -170,7 +170,7 @@ val_diff(type, v, ii, val) /* v[ii] != val */ clock_t TMus, TMsy; /* user and system time in clock ticks */ \ float TMelapsed; /* elapsed time in seconds */ \ struct tms TMru; - + #define TIMING_START \ TMrepeats = 1; \ do { /* loop enough times for at least 0.1 second elapsed time */ \ @@ -179,7 +179,7 @@ val_diff(type, v, ii, val) /* v[ii] != val */ TMus = TMru.tms_utime; \ TMsy = TMru.tms_stime; \ for(TMreps=0;TMreps < TMrepeats;TMreps++) { - + #define TIMING_END \ } \ times(&TMru); \ @@ -231,7 +231,7 @@ test_slabs(ncid, sizes) dims[idim].size = sizes[idim]; dims[idim].name = dnames[idim]; } - + /* back in define mode OK, now add dimensions */ dimids[0] = ncdimdef(ncid, dims[0].name, NC_UNLIMITED); @@ -263,7 +263,7 @@ test_slabs(ncid, sizes) if (ncendef (ncid) == -1) { ncclose(ncid); return; } - + printf("Note: first ncvarput writes fill values for all variables.\n"); for (iv = 0; iv < NVARS; iv++) { /* test each type of variable */ @@ -291,7 +291,7 @@ test_slabs(ncid, sizes) } } } - + for (idim = 0; idim < NDIMS; idim++) { corner[idim] = 0; edge[idim] = dims[idim].size; @@ -319,19 +319,19 @@ test_slabs(ncid, sizes) edge[idim] = 1; point[idim] = corner[idim]; } - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); - + TIMING_START ; if (ncvarget(ncid, varid[iv], corner, edge, (void *) v) == -1) return; TIMING_END ; - + /* if (v[0] != VF(point)) */ if (val_diff(va[iv].type, v, 0, VF(point))) fprintf(stderr,"ncvarget got wrong value for point"); - + /* get a vector in each direction */ for (idim=0; idim < NDIMS; idim++) { for (jdim=0; jdim < NDIMS; jdim++) { @@ -370,7 +370,7 @@ test_slabs(ncid, sizes) corner[jdim] = 0; edge[idim] = dims[idim].size; edge[jdim] = dims[jdim].size; - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); @@ -393,7 +393,7 @@ test_slabs(ncid, sizes) } } } - + /* get a cube in each direction */ for (idim=0; idim < NDIMS; idim++) { for (jdim=idim+1; jdim < NDIMS; jdim++) { @@ -409,7 +409,7 @@ test_slabs(ncid, sizes) edge[idim] = dims[idim].size; edge[jdim] = dims[jdim].size; edge[kdim] = dims[kdim].size; - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); @@ -439,13 +439,13 @@ test_slabs(ncid, sizes) } } } - + /* get one 4-D slab of data */ for(idim = 0; idim < NDIMS; idim++) { corner[idim] = 0; edge[idim] = dims[idim].size; } - + sprintf(time_mess,"ncvarget %ldx%ldx%ldx%ld" ,edge[0],edge[1],edge[2],edge[3]); diff --git a/nc_test/tests.h b/nc_test/tests.h index 2e24295a5..0eba3b8e4 100644 --- a/nc_test/tests.h +++ b/nc_test/tests.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: tests.h 2785 2014-10-26 05:21:20Z wkliao $ *********************************************************************/ diff --git a/nc_test/tst_addvar.c b/nc_test/tst_addvar.c index f05a8af87..d57bb0ba6 100644 --- a/nc_test/tst_addvar.c +++ b/nc_test/tst_addvar.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This program adds two new variables to an existing netCDF file. * It is used to test if netCDF can correctly calculate the file offsets * for the two new variables, in particular for files that align the diff --git a/nc_test/tst_atts3.c b/nc_test/tst_atts3.c index fcdcc691a..bcad82c07 100644 --- a/nc_test/tst_atts3.c +++ b/nc_test/tst_atts3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test/tst_big_rvar.c b/nc_test/tst_big_rvar.c index 8a595474c..28c27097b 100644 --- a/nc_test/tst_big_rvar.c +++ b/nc_test/tst_big_rvar.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests a large file bug on 32-bit platforms in versions diff --git a/nc_test/tst_big_var.c b/nc_test/tst_big_var.c index f66080c1b..b3b5bd994 100644 --- a/nc_test/tst_big_var.c +++ b/nc_test/tst_big_var.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_big_var2.c b/nc_test/tst_big_var2.c index 4f722ca74..362efa557 100644 --- a/nc_test/tst_big_var2.c +++ b/nc_test/tst_big_var2.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the fix for a large file bug in versions previous diff --git a/nc_test/tst_big_var6.c b/nc_test/tst_big_var6.c index 5f4fad7e0..04f6e9d7a 100644 --- a/nc_test/tst_big_var6.c +++ b/nc_test/tst_big_var6.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the fix for a large file bug in versions previous diff --git a/nc_test/tst_cdf5_begin.c b/nc_test/tst_cdf5_begin.c index d704d9aa0..e468f6046 100644 --- a/nc_test/tst_cdf5_begin.c +++ b/nc_test/tst_cdf5_begin.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -18,7 +29,7 @@ int main(int argc, char *argv[]) int i, err, nerrs=0, ncid, dimid[2], varid[2]; short buf[10]; size_t start, count; - + err = nc_create(FILE_NAME, NC_CLOBBER|NC_64BIT_DATA, &ncid); ERR; err = nc_def_dim(ncid, "dim0", NC_MAX_UINT, &dimid[0]); ERR err = nc_def_dim(ncid, "dim1", 10, &dimid[1]); ERR @@ -53,4 +64,3 @@ int main(int argc, char *argv[]) return (nerrs > 0); } - diff --git a/nc_test/tst_cdf5format.c b/nc_test/tst_cdf5format.c index 488935724..e5a200865 100644 --- a/nc_test/tst_cdf5format.c +++ b/nc_test/tst_cdf5format.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, @@ -23,7 +23,7 @@ write2(int ncid, int parallel) int dimid[NDIM2]; char str[NC_MAX_NAME + 1]; int varid[NVARS]; - + /* define dimension */ if (nc_def_dim(ncid, "Y", NC_UNLIMITED, &dimid[0])) ERR; if (nc_def_dim(ncid, "X", NX, &dimid[1])) ERR; @@ -42,16 +42,16 @@ write2(int ncid, int parallel) if (nc_def_var(ncid, str, NC_INT, 2, dimid, &varid[i])) ERR; } } - + if (nc_enddef(ncid)) ERR; - + /* write all variables */ for (int i = 0; i < NVARS; i++) { size_t start[NDIM2] = {0, 0}; size_t count[NDIM2]; int buf[NX]; - + /* Initialize some data. */ for (int j = 0; j < NX; j++) buf[j] = i * 10 + j; @@ -80,7 +80,7 @@ extend(int ncid) char str[32]; if (nc_redef(ncid)) ERR; - + /* add attributes to make header grow */ for (i = 0; i < NVARS; i++) { @@ -98,7 +98,7 @@ read2(int ncid) for (int i = 0; i < NVARS; i++) { int buf[NX]; - size_t start[2] = {0, 0}, count[2]; + size_t start[2] = {0, 0}, count[2]; if (i % 2) { @@ -109,7 +109,7 @@ read2(int ncid) count[0] = 1; count[1] = NX; } - if (nc_get_vara_int(ncid, i, start, count, buf)) ERR; + if (nc_get_vara_int(ncid, i, start, count, buf)) ERR; for (int j = 0; j < NX; j++) { if (buf[j] != i * 10 + j) @@ -142,12 +142,12 @@ int main(int argc, char* argv[]) if (nc_create_par(FILENAME, cmode, comm, info, &ncid)) ERR; if (write2(ncid, 1)) ERR; if (nc_close(ncid)) ERR; - + /* Re-open the file with pnetCDF (parallel) and add var attributes. */ if (nc_open_par(FILENAME, NC_WRITE, comm, info, &ncid)) ERR; if (extend(ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open with classic and check. */ if (nc_open(FILENAME, 0, &ncid)) ERR; if (read2(ncid)) ERR; @@ -162,7 +162,7 @@ int main(int argc, char* argv[]) if (nc_create(FILENAME, cmode, &ncid)) ERR; if (write2(ncid, 0)) ERR; if (nc_close(ncid)) ERR; - + /* Re-open the file with CDF5 and add some atts. */ if (nc_open(FILENAME, NC_WRITE, &ncid)) ERR; if (extend(ncid)) ERR; diff --git a/nc_test/tst_def_var_fill.c b/nc_test/tst_def_var_fill.c index affd3156e..ed3f182fa 100644 --- a/nc_test/tst_def_var_fill.c +++ b/nc_test/tst_def_var_fill.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - * Copyright 2005 University Corporation for Atmospheric Research/Unidata + * Copyright 2018 University Corporation for Atmospheric Research/Unidata * See COPYRIGHT file for conditions of use. * * Test per-variable fill mode for classic file formats. @@ -143,4 +143,3 @@ int main(int argc, char** argv) { return (nerrs > 0); } - diff --git a/nc_test/tst_default_format.c b/nc_test/tst_default_format.c index 886cc7d19..8940500be 100644 --- a/nc_test/tst_default_format.c +++ b/nc_test/tst_default_format.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_default_format_pnetcdf.c b/nc_test/tst_default_format_pnetcdf.c index 2e7a4fc3d..a7fa31c0f 100644 --- a/nc_test/tst_default_format_pnetcdf.c +++ b/nc_test/tst_default_format_pnetcdf.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_diskless.c b/nc_test/tst_diskless.c index 73cec3456..5c48769e3 100644 --- a/nc_test/tst_diskless.c +++ b/nc_test/tst_diskless.c @@ -1,7 +1,7 @@ /** \file \internal Basic diskless API tests. -Copyright 2011, UCAR/Unidata. See COPYRIGHT file for copying and +Copyright 2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test/tst_diskless2.c b/nc_test/tst_diskless2.c index 14125e772..38f30fedf 100644 --- a/nc_test/tst_diskless2.c +++ b/nc_test/tst_diskless2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include diff --git a/nc_test/tst_diskless3.c b/nc_test/tst_diskless3.c index 442e82329..d4b75e12a 100644 --- a/nc_test/tst_diskless3.c +++ b/nc_test/tst_diskless3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_diskless4.c b/nc_test/tst_diskless4.c index ee0e9f679..be667fe74 100644 --- a/nc_test/tst_diskless4.c +++ b/nc_test/tst_diskless4.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_diskless5.c b/nc_test/tst_diskless5.c index ae4639656..2148f5741 100644 --- a/nc_test/tst_diskless5.c +++ b/nc_test/tst_diskless5.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include diff --git a/nc_test/tst_diskless6.c b/nc_test/tst_diskless6.c index e2c69cf1b..d968d71b1 100644 --- a/nc_test/tst_diskless6.c +++ b/nc_test/tst_diskless6.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include @@ -215,7 +226,7 @@ main() /* Of the above modified files, re-read and modify but do not re-persist */ /* Test open + modify + rdonly; requires NC_DISKLESS*/ #if 0 - /* Fails with hdf5, file must be writeable even if not persisted */ + /* Fails with hdf5, file must be writeable even if not persisted */ changeaccess(RDONLY); /* prevent re-persist */ #endif printf("*** Testopen modify + rdonly\n"); fflush(stdout); diff --git a/nc_test/tst_err_enddef.c b/nc_test/tst_err_enddef.c index 7d0f9f6cd..e6a752839 100644 --- a/nc_test/tst_err_enddef.c +++ b/nc_test/tst_err_enddef.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include diff --git a/nc_test/tst_formats.c b/nc_test/tst_formats.c index 6033138e9..9679f22d4 100644 --- a/nc_test/tst_formats.c +++ b/nc_test/tst_formats.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. @@ -58,12 +58,12 @@ check_inq_format(int ncid, int expected_format, int expected_extended_format, in int format; int extended_format; int mode; - + if (nc_inq_format(ncid + 66000, NULL) != NC_EBADID) ERR; if (nc_inq_format(ncid, NULL)) ERR; if (nc_inq_format(ncid, &format)) ERR; if (format != expected_format) { - printf("format %d expected_format %d\n", format, expected_format); + printf("format %d expected_format %d\n", format, expected_format); ERR; } if (nc_inq_format_extended(ncid + 66000, &extended_format, &mode) != NC_EBADID) ERR; diff --git a/nc_test/tst_formatx_pnetcdf.c b/nc_test/tst_formatx_pnetcdf.c index 2cfbf5e83..d8275daf3 100644 --- a/nc_test/tst_formatx_pnetcdf.c +++ b/nc_test/tst_formatx_pnetcdf.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, @@ -27,7 +27,7 @@ int main(int argc, char* argv[]) int err = 0; int ecode = 0; int ncid; - int cmode, format; + int cmode, format; int nprocs, rank; MPI_Comm comm=MPI_COMM_SELF; MPI_Info info=MPI_INFO_NULL; diff --git a/nc_test/tst_global_fillval.c b/nc_test/tst_global_fillval.c index 92060bee7..51415d75a 100644 --- a/nc_test/tst_global_fillval.c +++ b/nc_test/tst_global_fillval.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2017 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_inmemory.c b/nc_test/tst_inmemory.c index 5aba2f6ea..d3750a464 100644 --- a/nc_test/tst_inmemory.c +++ b/nc_test/tst_inmemory.c @@ -1,7 +1,7 @@ /** \file \internal Basic NC_INMEMORY API tests both for netcdf-3 and netcdf-4 -Copyright 2011, UCAR/Unidata. See COPYRIGHT file for copying and +Copyright 2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test/tst_inq_type.c b/nc_test/tst_inq_type.c index 0164cdc95..a38df958e 100644 --- a/nc_test/tst_inq_type.c +++ b/nc_test/tst_inq_type.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2016 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. @@ -184,4 +184,3 @@ int main(int argc, char **argv) { FINAL_RESULTS; } - diff --git a/nc_test/tst_large.c b/nc_test/tst_large.c index 92d12ac41..7cc9f15f2 100644 --- a/nc_test/tst_large.c +++ b/nc_test/tst_large.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_large_cdf5.c b/nc_test/tst_large_cdf5.c index ef8681f0b..106d4f002 100644 --- a/nc_test/tst_large_cdf5.c +++ b/nc_test/tst_large_cdf5.c @@ -1,5 +1,5 @@ /* - Copyright 2017, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests the large file bug in netCDF 3.6.2, diff --git a/nc_test/tst_max_var_dims.c b/nc_test/tst_max_var_dims.c index 3157630c3..aec5c6067 100644 --- a/nc_test/tst_max_var_dims.c +++ b/nc_test/tst_max_var_dims.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include @@ -31,4 +42,3 @@ int main(int argc, char *argv[]) err = nc_close(ncid); ERR return (nerrs > 0); } - diff --git a/nc_test/tst_meta.c b/nc_test/tst_meta.c index 7653953a3..c3c68bb2e 100644 --- a/nc_test/tst_meta.c +++ b/nc_test/tst_meta.c @@ -1,5 +1,5 @@ /* - Copyright 20014, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_misc.c b/nc_test/tst_misc.c index 536bec9a2..097d0357c 100644 --- a/nc_test/tst_misc.c +++ b/nc_test/tst_misc.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. @@ -61,20 +61,20 @@ main(int argc, char **argv) } SUMMARIZE_ERR; -#ifndef USE_NETCDF4 +#ifndef USE_NETCDF4 printf("*** Trying to create netCDF-4 file without netCDF-4..."); { int ncid; - + if (nc_create(FILE_NAME, NC_NETCDF4, &ncid) != NC_ENOTBUILT) ERR; } SUMMARIZE_ERR; #endif /* USE_NETCDF4 undefined */ - + #ifdef TEST_PNETCDF MPI_Finalize(); #endif - + FINAL_RESULTS; } diff --git a/nc_test/tst_names.c b/nc_test/tst_names.c index d12522c5d..0c4cabad9 100644 --- a/nc_test/tst_names.c +++ b/nc_test/tst_names.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which tests rejection of bad names for diff --git a/nc_test/tst_nofill.c b/nc_test/tst_nofill.c index 684192e2f..770821bd3 100644 --- a/nc_test/tst_nofill.c +++ b/nc_test/tst_nofill.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_nofill2.c b/nc_test/tst_nofill2.c index e8187f235..9d8561901 100644 --- a/nc_test/tst_nofill2.c +++ b/nc_test/tst_nofill2.c @@ -1,5 +1,5 @@ /* - Copyright 2011, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_nofill3.c b/nc_test/tst_nofill3.c index d9dbbcfdb..e81b3e8f1 100644 --- a/nc_test/tst_nofill3.c +++ b/nc_test/tst_nofill3.c @@ -1,5 +1,5 @@ /* - Copyright 2011, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This is part of netCDF. diff --git a/nc_test/tst_norm.c b/nc_test/tst_norm.c index b7918662a..f16b0e5ee 100644 --- a/nc_test/tst_norm.c +++ b/nc_test/tst_norm.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which tests NFC normalization of diff --git a/nc_test/tst_open_cdf5.c b/nc_test/tst_open_cdf5.c index 1d5e9b5f6..be8a977aa 100644 --- a/nc_test/tst_open_cdf5.c +++ b/nc_test/tst_open_cdf5.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include diff --git a/nc_test/tst_open_mem.c b/nc_test/tst_open_mem.c index f25a7003f..d48106d31 100644 --- a/nc_test/tst_open_mem.c +++ b/nc_test/tst_open_mem.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include #include @@ -49,19 +60,19 @@ readfile(const char* path, NC_memio* memio) size_t actual; actual = fread(p,1,count,f); if(actual == 0 || ferror(f)) - {status = NC_EIO; goto done;} + {status = NC_EIO; goto done;} count -= actual; p += actual; } if(memio) { memio->size = (size_t)filesize; memio->memory = memory; - } + } done: if(status != NC_NOERR && memory != NULL) free(memory); if(f != NULL) fclose(f); - return status; + return status; } int diff --git a/nc_test/tst_parallel2.c b/nc_test/tst_parallel2.c index cfe7d1ed9..a9c52f4af 100644 --- a/nc_test/tst_parallel2.c +++ b/nc_test/tst_parallel2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This is a benchmarking program for netCDF-4 parallel I/O. */ /* Defining USE_MPE causes the MPE trace library to be used (and you @@ -30,7 +41,7 @@ int main(int argc, char **argv) { /* MPI stuff. */ - int mpi_namelen; + int mpi_namelen; char mpi_name[MPI_MAX_PROCESSOR_NAME]; int mpi_size, mpi_rank; MPI_Comm comm = MPI_COMM_WORLD; @@ -43,7 +54,7 @@ main(int argc, char **argv) size_t count[NDIMS] = {1, DIMSIZE, DIMSIZE}; int data[DIMSIZE * DIMSIZE], data_in[DIMSIZE * DIMSIZE]; int j, i; - + char file_name[NC_MAX_NAME + 1]; int ndims_in, nvars_in, natts_in, unlimdimid_in; @@ -63,23 +74,23 @@ main(int argc, char **argv) /* Must be able to evenly divide my slabs between processors. */ if (NUM_SLABS % mpi_size != 0) { - if (!mpi_rank) printf("NUM_SLABS (%d) is not evenly divisible by mpi_size(%d)\n", + if (!mpi_rank) printf("NUM_SLABS (%d) is not evenly divisible by mpi_size(%d)\n", NUM_SLABS, mpi_size); ERR; } #ifdef USE_MPE MPE_Init_log(); - s_init = MPE_Log_get_event_number(); - e_init = MPE_Log_get_event_number(); - s_define = MPE_Log_get_event_number(); - e_define = MPE_Log_get_event_number(); - s_write = MPE_Log_get_event_number(); - e_write = MPE_Log_get_event_number(); - s_close = MPE_Log_get_event_number(); - e_close = MPE_Log_get_event_number(); - s_open = MPE_Log_get_event_number(); - e_open = MPE_Log_get_event_number(); + s_init = MPE_Log_get_event_number(); + e_init = MPE_Log_get_event_number(); + s_define = MPE_Log_get_event_number(); + e_define = MPE_Log_get_event_number(); + s_write = MPE_Log_get_event_number(); + e_write = MPE_Log_get_event_number(); + s_close = MPE_Log_get_event_number(); + e_close = MPE_Log_get_event_number(); + s_open = MPE_Log_get_event_number(); + e_open = MPE_Log_get_event_number(); MPE_Describe_state(s_init, e_init, "Init", "red"); MPE_Describe_state(s_define, e_define, "Define", "yellow"); MPE_Describe_state(s_write, e_write, "Write", "green"); @@ -176,7 +187,7 @@ main(int argc, char **argv) /* Close the netcdf file. */ if (nc_close(ncid)) ERR; - + #ifdef USE_MPE MPE_Log_event(e_close, 0, "end close file"); #endif /* USE_MPE */ @@ -187,7 +198,7 @@ main(int argc, char **argv) #endif if (nc_open_par(file_name, NC_NOWRITE, comm, info, &ncid)) ERR; if (nc_inq(ncid, &ndims_in, &nvars_in, &natts_in, &unlimdimid_in)) ERR; - if (ndims_in != NDIMS || nvars_in != 1 || natts_in != 1 || + if (ndims_in != NDIMS || nvars_in != 1 || natts_in != 1 || unlimdimid_in != -1) ERR; /* Read all the slabs this process is responsible for. */ @@ -201,10 +212,10 @@ main(int argc, char **argv) /* Read one slab of data. */ if (nc_get_vara_int(ncid, varid, start, count, data_in)) ERR; - + /* Check data. */ for (j = 0; j < DIMSIZE * DIMSIZE; j++) - if (data_in[j] != mpi_rank) + if (data_in[j] != mpi_rank) { ERR; break; @@ -221,7 +232,7 @@ main(int argc, char **argv) /* Close the netcdf file. */ if (nc_close(ncid)) ERR; - + #ifdef USE_MPE MPE_Log_event(e_close, 0, "end close file"); #endif /* USE_MPE */ diff --git a/nc_test/tst_pnetcdf.c b/nc_test/tst_pnetcdf.c index a82a2bb94..1766dad01 100644 --- a/nc_test/tst_pnetcdf.c +++ b/nc_test/tst_pnetcdf.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test fix of bug involving creation of a file with PnetCDF APIs, diff --git a/nc_test/tst_small.c b/nc_test/tst_small.c index cca6340fd..5515872d0 100644 --- a/nc_test/tst_small.c +++ b/nc_test/tst_small.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test/tst_utf8_phrases.c b/nc_test/tst_utf8_phrases.c index 29ec68cc7..468bd9138 100644 --- a/nc_test/tst_utf8_phrases.c +++ b/nc_test/tst_utf8_phrases.c @@ -1,6 +1,6 @@ /* - * Copyright 1998-2015 University Corporation for Atmospheric Research/Unidata + * Copyright 1998-2018 University Corporation for Atmospheric Research/Unidata * See the LICENSE file for more information. */ diff --git a/nc_test/util.c b/nc_test/util.c index d7afd1ead..be2f678d8 100644 --- a/nc_test/util.c +++ b/nc_test/util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1996, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: util.c 2792 2014-10-27 06:02:59Z wkliao $ *********************************************************************/ diff --git a/nc_test4/CMakeLists.txt b/nc_test4/CMakeLists.txt index 824e27dd4..a094417f3 100644 --- a/nc_test4/CMakeLists.txt +++ b/nc_test4/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. # Some extra tests SET(NC4_TESTS tst_dims tst_dims2 tst_dims3 tst_files tst_files4 tst_vars tst_varms tst_unlim_vars tst_converts tst_converts2 diff --git a/nc_test4/bigmeta.c b/nc_test4/bigmeta.c index fb2054eb2..f49c05247 100644 --- a/nc_test4/bigmeta.c +++ b/nc_test4/bigmeta.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* Create a netcdf-4 file with horrendously large metadata. */ @@ -155,7 +166,7 @@ buildgroup(int parent, int grpindex, int depth) snprintf(name,NC_MAX_NAME,"g%d",grpindex); CHECK(nc_def_grp(parent, name, &grpid)); - + /* Add dimensions and capture ids */ for(i=0;i #include "err_macros.h" #include diff --git a/nc_test4/tst_camrun.c b/nc_test4/tst_camrun.c index 2ce9cbbb0..5b96bc3f8 100644 --- a/nc_test4/tst_camrun.c +++ b/nc_test4/tst_camrun.c @@ -1,5 +1,5 @@ /* - Copyright 2010, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program writes a data file from the CAM model run. (Thanks to diff --git a/nc_test4/tst_chunks.c b/nc_test4/tst_chunks.c index 9279c6d97..48ea1eb94 100644 --- a/nc_test4/tst_chunks.c +++ b/nc_test4/tst_chunks.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_chunks2.c b/nc_test4/tst_chunks2.c index b6ac94a7e..f540faefe 100644 --- a/nc_test4/tst_chunks2.c +++ b/nc_test4/tst_chunks2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2011 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 chunking. diff --git a/nc_test4/tst_chunks3.c b/nc_test4/tst_chunks3.c index bd952cfed..dc6d8b49f 100644 --- a/nc_test4/tst_chunks3.c +++ b/nc_test4/tst_chunks3.c @@ -60,7 +60,7 @@ long inb, oub; \ char time_mess[100]; \ float seconds; - + #define TIMING_START \ TMrepeats = 1; \ do { \ @@ -71,7 +71,7 @@ inb = ru.ru_inblock; \ oub = ru.ru_oublock; \ for(TMreps=0; TMreps < TMrepeats; TMreps++) { - + #define TIMING_END(seconds) \ } \ if(getrusage(RUSAGE_SELF, &ru)) { \ @@ -99,7 +99,7 @@ return n; \ void parse_args(int argc, char *argv[], /* from command-line invocation */ - int *deflate_levelp, /* returned: 0 uncompressed, + int *deflate_levelp, /* returned: 0 uncompressed, 1-9 compression level */ int *shufflep, /* returned: 1 if shuffle, otherwise 0 */ size_t *dims, /* returned: dimension sizes */ @@ -128,7 +128,7 @@ parse_args(int argc, char *argv[], /* from command-line invocation */ dims[1] = dims[0]; if(argc > 5) chunks[1] = atol(argv[5]); - else + else chunks[1] = chunks[0]; if(argc > 6) dims[2] = atol(argv[6]); @@ -145,10 +145,10 @@ parse_args(int argc, char *argv[], /* from command-line invocation */ if(argc > 10) *cache_prep = atof(argv[10]); if(argc > 11) { - printf("Usage: %s [def_level] [dim1] [chunk1] [dim2] [chunk2] [dim3] [chunk3] [cache_size] [cache_nelems] [cache_pre]\n", + printf("Usage: %s [def_level] [dim1] [chunk1] [dim2] [chunk2] [dim3] [chunk3] [cache_size] [cache_nelems] [cache_pre]\n", argv[0]); exit(1); - } + } return; } @@ -204,11 +204,11 @@ main(int argc, char *argv[]) { /* From args, get parameters for timing, including variable and chunk sizes. Negative deflate level means also use shuffle filter. */ - parse_args(argc, argv, &deflate_level, &shuffle, dims, + parse_args(argc, argv, &deflate_level, &shuffle, dims, chunks, &cache_size, &cache_hash, &cache_pre); /* get cache defaults, then set cache parameters that are not default */ - if((stat = nc_get_chunk_cache(&cache_size_def, &cache_hash_def, + if((stat = nc_get_chunk_cache(&cache_size_def, &cache_hash_def, &cache_pre_def))) ERR1(stat); if(cache_size == 0) @@ -219,7 +219,7 @@ main(int argc, char *argv[]) { cache_pre = cache_pre_def; if((stat = nc_set_chunk_cache(cache_size, cache_hash, cache_pre))) ERR1(stat); - printf("cache: %3.2f MBytes %ld objs %3.2f preempt, ", + printf("cache: %3.2f MBytes %ld objs %3.2f preempt, ", cache_size/1.e6, cache_hash, cache_pre); if(deflate_level == 0) { @@ -257,7 +257,7 @@ main(int argc, char *argv[]) { if((stat = nc_create(FILENAME, NC_NETCDF4 | NC_CLASSIC_MODEL, &ncid))) ERR1(stat); - + /* define dimensions */ if((stat = nc_def_dim(ncid, "dim1", dims[0], &dim1id))) ERR1(stat); @@ -265,18 +265,18 @@ main(int argc, char *argv[]) { ERR1(stat); if((stat = nc_def_dim(ncid, "dim3", dims[2], &dim3id))) ERR1(stat); - + /* define variables */ var_dims[0] = dim1id; var_dims[1] = dim2id; var_dims[2] = dim3id; - if((stat = nc_def_var(ncid, "var_contiguous", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_contiguous", NC_FLOAT, RANK_var1, var_dims, &varid_g))) ERR1(stat); - if((stat = nc_def_var(ncid, "var_chunked", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_chunked", NC_FLOAT, RANK_var1, var_dims, &varid_k))) ERR1(stat); - if((stat = nc_def_var(ncid, "var_compressed", NC_FLOAT, RANK_var1, + if((stat = nc_def_var(ncid, "var_compressed", NC_FLOAT, RANK_var1, var_dims, &varid_x))) ERR1(stat); @@ -290,7 +290,7 @@ main(int argc, char *argv[]) { ERR1(stat); if (deflate_level != 0) { - if((stat = nc_def_var_deflate(ncid, varid_x, shuffle, + if((stat = nc_def_var_deflate(ncid, varid_x, shuffle, NC_COMPRESSED, deflate_level))) ERR1(stat); } @@ -298,7 +298,7 @@ main(int argc, char *argv[]) { /* leave define mode */ if((stat = nc_enddef (ncid))) ERR1(stat); - + /* write each variable one yz slab at a time */ start[0] = 0; start[1] = 0; @@ -404,7 +404,7 @@ main(int argc, char *argv[]) { else printf(" %5.2g x slower\n", 1.0/ratio); printf("\n"); - + /* write each variable one xy slab at a time */ start[0] = 0; start[1] = 0; @@ -424,7 +424,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked write %3ld %3ld %3d %3ld %3ld %3ld", dims[0], dims[1], 1, chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -477,7 +477,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked read %3d %3ld %3ld %3ld %3ld %3ld", 1, dims[1], dims[2] , chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -493,7 +493,7 @@ main(int argc, char *argv[]) { printf(" %5.2g x faster\n", ratio); else printf(" %5.2g x slower\n", 1.0/ratio); - + sprintf(time_mess," compressed read %3d %3ld %3ld %3ld %3ld %3ld", 1, dims[1], dims[2] , chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -530,7 +530,7 @@ main(int argc, char *argv[]) { TIMING_END(TMsec) ; printf("\n"); contig_time = TMsec; - + sprintf(time_mess," chunked read %3ld %3d %3ld %3ld %3ld %3ld", dims[0], 1, dims[2], chunks[0], chunks[1], chunks[2]); TIMING_START ; @@ -546,7 +546,7 @@ main(int argc, char *argv[]) { printf(" %5.2g x faster\n", ratio); else printf(" %5.2g x slower\n", 1.0/ratio); - + sprintf(time_mess," compressed read %3ld %3d %3ld %3ld %3ld %3ld", dims[0], 1, dims[2], chunks[0], chunks[1], chunks[2]); TIMING_START ; diff --git a/nc_test4/tst_compounds.c b/nc_test4/tst_compounds.c index d1601d60d..f91c21002 100644 --- a/nc_test4/tst_compounds.c +++ b/nc_test4/tst_compounds.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature. diff --git a/nc_test4/tst_compounds2.c b/nc_test4/tst_compounds2.c index c6d8556bb..7b1af1de9 100644 --- a/nc_test4/tst_compounds2.c +++ b/nc_test4/tst_compounds2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature. diff --git a/nc_test4/tst_compounds3.c b/nc_test4/tst_compounds3.c index adda5b546..c09cb0b44 100644 --- a/nc_test4/tst_compounds3.c +++ b/nc_test4/tst_compounds3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 compound type feature, even more. diff --git a/nc_test4/tst_converts.c b/nc_test4/tst_converts.c index b6cb74bd3..43507e87e 100644 --- a/nc_test4/tst_converts.c +++ b/nc_test4/tst_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test data conversions and fill value handling. diff --git a/nc_test4/tst_converts2.c b/nc_test4/tst_converts2.c index 1e870e981..0f3bd9225 100644 --- a/nc_test4/tst_converts2.c +++ b/nc_test4/tst_converts2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test even more data conversions. diff --git a/nc_test4/tst_coords.c b/nc_test4/tst_coords.c index d5acaf25b..000b8a632 100644 --- a/nc_test4/tst_coords.c +++ b/nc_test4/tst_coords.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_coords2.c b/nc_test4/tst_coords2.c index 952597b58..29f9d713d 100644 --- a/nc_test4/tst_coords2.c +++ b/nc_test4/tst_coords2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2009 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_coords3.c b/nc_test4/tst_coords3.c index f03cc7c46..8930259ab 100644 --- a/nc_test4/tst_coords3.c +++ b/nc_test4/tst_coords3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_dims.c b/nc_test4/tst_dims.c index caf278d08..3bcf81469 100644 --- a/nc_test4/tst_dims.c +++ b/nc_test4/tst_dims.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_dims2.c b/nc_test4/tst_dims2.c index cebf9e3e9..db38a9bf3 100644 --- a/nc_test4/tst_dims2.c +++ b/nc_test4/tst_dims2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_dims3.c b/nc_test4/tst_dims3.c index f9fbba8fa..92978f608 100644 --- a/nc_test4/tst_dims3.c +++ b/nc_test4/tst_dims3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_elatefill.c b/nc_test4/tst_elatefill.c index 99dece284..9b2474773 100644 --- a/nc_test4/tst_elatefill.c +++ b/nc_test4/tst_elatefill.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2017 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_empty_vlen_unlim.c b/nc_test4/tst_empty_vlen_unlim.c index d1d18971d..5123275f0 100644 --- a/nc_test4/tst_empty_vlen_unlim.c +++ b/nc_test4/tst_empty_vlen_unlim.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_endian_fill.c b/nc_test4/tst_endian_fill.c index 38afba139..22cbfb8ed 100644 --- a/nc_test4/tst_endian_fill.c +++ b/nc_test4/tst_endian_fill.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_enums.c b/nc_test4/tst_enums.c index 977d73cb4..ba2cf5fe4 100644 --- a/nc_test4/tst_enums.c +++ b/nc_test4/tst_enums.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_files.c b/nc_test4/tst_files.c index 55ee7a30c..d8927d8ec 100644 --- a/nc_test4/tst_files.c +++ b/nc_test4/tst_files.c @@ -431,10 +431,10 @@ test_redef(int format) cache_size_in = 0; if (nc_get_chunk_cache(&cache_size_in, NULL, NULL)) ERR; if (cache_size_in != NEW_CACHE_SIZE) ERR; - cache_nelems_in = 0; + cache_nelems_in = 0; if (nc_get_chunk_cache(NULL, &cache_nelems_in, NULL)) ERR; if (cache_nelems_in != NEW_CACHE_NELEMS) ERR; - cache_preemption_in = 0; + cache_preemption_in = 0; if (nc_get_chunk_cache(NULL, NULL, &cache_preemption_in)) ERR; if (cache_preemption_in != NEW_CACHE_PREEMPTION) ERR; @@ -463,7 +463,7 @@ test_redef(int format) -1) != NC_EINVAL) ERR; if (nc_set_chunk_cache_ints(NEW_CACHE_SIZE_2, NEW_CACHE_NELEMS_2, 101) != NC_EINVAL) ERR; - + /* Change chunk cache again. */ if (nc_set_chunk_cache_ints(NEW_CACHE_SIZE_2, NEW_CACHE_NELEMS_2, @@ -472,7 +472,7 @@ test_redef(int format) &cache_preemption_int_in)) ERR; if (cache_size_int_in != NEW_CACHE_SIZE_2 || cache_nelems_int_in != NEW_CACHE_NELEMS_2 || cache_preemption_int_in != (int)(NEW_CACHE_PREEMPTION_2 * 100)) ERR; - + /* This will fail, except for netcdf-4/hdf5, which permits any * name. */ diff --git a/nc_test4/tst_files4.c b/nc_test4/tst_files4.c index a83523a30..062677b64 100644 --- a/nc_test4/tst_files4.c +++ b/nc_test4/tst_files4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 file from user-reported error. This code based on an diff --git a/nc_test4/tst_files5.c b/nc_test4/tst_files5.c index e6dd57fd4..922a4ff7e 100644 --- a/nc_test4/tst_files5.c +++ b/nc_test4/tst_files5.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf files a bit. diff --git a/nc_test4/tst_files6.c b/nc_test4/tst_files6.c index 3e660e432..49bae17a7 100644 --- a/nc_test4/tst_files6.c +++ b/nc_test4/tst_files6.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf files a bit. diff --git a/nc_test4/tst_fill_attr_vanish.c b/nc_test4/tst_fill_attr_vanish.c index 189d20b11..392b489e4 100644 --- a/nc_test4/tst_fill_attr_vanish.c +++ b/nc_test4/tst_fill_attr_vanish.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Based on tst_fillbug.c diff --git a/nc_test4/tst_fillbug.c b/nc_test4/tst_fillbug.c index b4a04e22c..6d4f14da8 100644 --- a/nc_test4/tst_fillbug.c +++ b/nc_test4/tst_fillbug.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2008 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test for a bug that Russ found testing fill values. diff --git a/nc_test4/tst_fills.c b/nc_test4/tst_fills.c index 808eb3c10..240f4b411 100644 --- a/nc_test4/tst_fills.c +++ b/nc_test4/tst_fills.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_fills2.c b/nc_test4/tst_fills2.c index 323e5d091..d29a6adfe 100644 --- a/nc_test4/tst_fills2.c +++ b/nc_test4/tst_fills2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_filterparser.c b/nc_test4/tst_filterparser.c index 9e83e987d..63f88540a 100644 --- a/nc_test4/tst_filterparser.c +++ b/nc_test4/tst_filterparser.c @@ -1,5 +1,5 @@ /* - Copyright 2008, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. */ diff --git a/nc_test4/tst_grps.c b/nc_test4/tst_grps.c index 8959e0353..528f3efbb 100644 --- a/nc_test4/tst_grps.c +++ b/nc_test4/tst_grps.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 group code. diff --git a/nc_test4/tst_grps2.c b/nc_test4/tst_grps2.c index 55d10ad0d..bf6441242 100644 --- a/nc_test4/tst_grps2.c +++ b/nc_test4/tst_grps2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 group code some more. diff --git a/nc_test4/tst_h5_endians.c b/nc_test4/tst_h5_endians.c index 081f8782a..6984bd5a3 100644 --- a/nc_test4/tst_h5_endians.c +++ b/nc_test4/tst_h5_endians.c @@ -1,4 +1,10 @@ /*! Test for NCF-331. Added May 11, 2015. + * Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + * 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, + * 2015, 2016, 2017, 2018 + * University Corporation for Atmospheric Research/Unidata. + * + * See \ref copyright file for more info. * See the following links for more information: * * o Issue on GitHub: https://github.com/Unidata/netcdf-c/issues/112 diff --git a/nc_test4/tst_h_converts.c b/nc_test4/tst_h_converts.c index 4a6bb49ad..862ae2a21 100644 --- a/nc_test4/tst_h_converts.c +++ b/nc_test4/tst_h_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/nc_test4/tst_h_many_atts.c b/nc_test4/tst_h_many_atts.c index d0ee537b6..f484c4310 100644 --- a/nc_test4/tst_h_many_atts.c +++ b/nc_test4/tst_h_many_atts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test HDF5 file code. These are not intended to be exhaustive tests, diff --git a/nc_test4/tst_h_refs.c b/nc_test4/tst_h_refs.c index 95949be4d..7610e42f8 100644 --- a/nc_test4/tst_h_refs.c +++ b/nc_test4/tst_h_refs.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_scalar.c b/nc_test4/tst_h_scalar.c index fbd40ca8f..c21b0ecb4 100644 --- a/nc_test4/tst_h_scalar.c +++ b/nc_test4/tst_h_scalar.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2013 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_strbug.c b/nc_test4/tst_h_strbug.c index b81960410..eb76e5fa0 100644 --- a/nc_test4/tst_h_strbug.c +++ b/nc_test4/tst_h_strbug.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_strings3.c b/nc_test4/tst_h_strings3.c index 0bf8b2f66..5c125b2b5 100644 --- a/nc_test4/tst_h_strings3.c +++ b/nc_test4/tst_h_strings3.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_h_vl2.c b/nc_test4/tst_h_vl2.c index 9d4d77e38..cc4ba27fe 100644 --- a/nc_test4/tst_h_vl2.c +++ b/nc_test4/tst_h_vl2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_hdf5_file_compat.c b/nc_test4/tst_hdf5_file_compat.c index 4813d9d25..01926702b 100644 --- a/nc_test4/tst_hdf5_file_compat.c +++ b/nc_test4/tst_hdf5_file_compat.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Tests library ability to open files generated by a netcdf diff --git a/nc_test4/tst_interops.c b/nc_test4/tst_interops.c index 086336e30..f7662e42b 100644 --- a/nc_test4/tst_interops.c +++ b/nc_test4/tst_interops.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test that HDF5 and NetCDF-4 can read and write the same file. diff --git a/nc_test4/tst_interops4.c b/nc_test4/tst_interops4.c index d655ab33a..535a80e4f 100644 --- a/nc_test4/tst_interops4.c +++ b/nc_test4/tst_interops4.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011, University +/*! This is part of the netCDF package. Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_interops5.c b/nc_test4/tst_interops5.c index 44c3274e8..3faf379ad 100644 --- a/nc_test4/tst_interops5.c +++ b/nc_test4/tst_interops5.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2011, University +/* This is part of the netCDF package. Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_interops6.c b/nc_test4/tst_interops6.c index ef9221900..32086dd86 100644 --- a/nc_test4/tst_interops6.c +++ b/nc_test4/tst_interops6.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_large.c b/nc_test4/tst_large.c index 5afac598b..4aa9a47de 100644 --- a/nc_test4/tst_large.c +++ b/nc_test4/tst_large.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 large file fill values. diff --git a/nc_test4/tst_large2.c b/nc_test4/tst_large2.c index 48cbe3ebe..0a61e57ab 100644 --- a/nc_test4/tst_large2.c +++ b/nc_test4/tst_large2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test large file problems reported by user. This test based on code diff --git a/nc_test4/tst_large3.c b/nc_test4/tst_large3.c index 4f43a6a4c..780d4114a 100644 --- a/nc_test4/tst_large3.c +++ b/nc_test4/tst_large3.c @@ -1,5 +1,5 @@ /* - Copyright 2007, UCAR/Unidata + Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program (quickly, but not thoroughly) tests the large file diff --git a/nc_test4/tst_large5.c b/nc_test4/tst_large5.c index 0b5c401a4..2b3eaf824 100644 --- a/nc_test4/tst_large5.c +++ b/nc_test4/tst_large5.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test large file problems reported by user. This test based on code diff --git a/nc_test4/tst_mem.c b/nc_test4/tst_mem.c index fcfec9e58..6e03bc12e 100644 --- a/nc_test4/tst_mem.c +++ b/nc_test4/tst_mem.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test internal netcdf-4 file code. diff --git a/nc_test4/tst_mode.c b/nc_test4/tst_mode.c index 3d6b945ad..25c5da01b 100644 --- a/nc_test4/tst_mode.c +++ b/nc_test4/tst_mode.c @@ -1,5 +1,13 @@ -/** - * @file +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + + * Test some illegal mode combinations * */ diff --git a/nc_test4/tst_mpi_parallel.c b/nc_test4/tst_mpi_parallel.c index 73233457d..6bdcb710e 100644 --- a/nc_test4/tst_mpi_parallel.c +++ b/nc_test4/tst_mpi_parallel.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* This is a quickie tester for netcdf-4. This just excersizes MPI file I/O to make sure everything's working diff --git a/nc_test4/tst_nc4perf.c b/nc_test4/tst_nc4perf.c index 032e76820..af39e2094 100644 --- a/nc_test4/tst_nc4perf.c +++ b/nc_test4/tst_nc4perf.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 parallel I/O. These tests are based on the diff --git a/nc_test4/tst_nc_converts.c b/nc_test4/tst_nc_converts.c index 25fcffac6..15ab7efa9 100644 --- a/nc_test4/tst_nc_converts.c +++ b/nc_test4/tst_nc_converts.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test some things about how classic netCDF behaves. diff --git a/nc_test4/tst_opaques.c b/nc_test4/tst_opaques.c index 731f8db69..c5130a376 100644 --- a/nc_test4/tst_opaques.c +++ b/nc_test4/tst_opaques.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_parallel.c b/nc_test4/tst_parallel.c index 07c53b10b..1ed128fb0 100644 --- a/nc_test4/tst_parallel.c +++ b/nc_test4/tst_parallel.c @@ -1,5 +1,5 @@ /* -Copyright 2009, UCAR/Unidata +Copyright 2018, UCAR/Unidata See COPYRIGHT file for copying and redistribution conditions. This program tests netcdf-4 parallel I/O. diff --git a/nc_test4/tst_parallel4.c b/nc_test4/tst_parallel4.c index 4f11d5e53..b2e8df264 100644 --- a/nc_test4/tst_parallel4.c +++ b/nc_test4/tst_parallel4.c @@ -1,4 +1,4 @@ -/* Copyright 2007-2011, UCAR/Unidata. See COPYRIGHT file for copying +/* Copyright 2007-2018, UCAR/Unidata. See COPYRIGHT file for copying and redistribution conditions. This is part of the netCDF package. diff --git a/nc_test4/tst_put_vars.c b/nc_test4/tst_put_vars.c index 54ad1209b..a74bee638 100644 --- a/nc_test4/tst_put_vars.c +++ b/nc_test4/tst_put_vars.c @@ -1,4 +1,11 @@ -/*! Test added as part of JIRA ticket NCF-326. +/*! \file Test added as part of JIRA ticket NCF-326. + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. The test was provided by Ellen Johnson at Mathworks. diff --git a/nc_test4/tst_put_vars_two_unlim_dim.c b/nc_test4/tst_put_vars_two_unlim_dim.c index 785d0d56b..8cbd2be28 100644 --- a/nc_test4/tst_put_vars_two_unlim_dim.c +++ b/nc_test4/tst_put_vars_two_unlim_dim.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test contributed in support of netCDF issue * https://github.com/Unidata/netcdf-c/issues/160 diff --git a/nc_test4/tst_rehash.c b/nc_test4/tst_rehash.c index c594bd1cc..bd21daa01 100644 --- a/nc_test4/tst_rehash.c +++ b/nc_test4/tst_rehash.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2016 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Provided in support of https://github.com/Unidata/netcdf-c/issues/282 diff --git a/nc_test4/tst_rename.c b/nc_test4/tst_rename.c index 4b0184a41..05eb85979 100644 --- a/nc_test4/tst_rename.c +++ b/nc_test4/tst_rename.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test renames of vars and dims. It's a surprisingly tricky business. * diff --git a/nc_test4/tst_rename2.c b/nc_test4/tst_rename2.c index 53213ca5f..5382e7813 100644 --- a/nc_test4/tst_rename2.c +++ b/nc_test4/tst_rename2.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* * Test more renames of vars and dims. * @@ -46,7 +57,7 @@ main(int argc, char **argv) { sprintf(filename, "%s_%d_%d.nc", TEST_NAME, formats[format], enddef_setting); - + /* Create file with three dims. */ if (nc_create(filename, 0, &ncid)) ERR; if (nc_def_dim(ncid, LAT, DIM1_LEN, &dimid[0])) ERR; @@ -58,15 +69,15 @@ main(int argc, char **argv) if (nc_enddef(ncid)) ERR; if (nc_redef(ncid)) ERR; } - + /* Rename the dimensions. */ if (nc_rename_dim(ncid, 0, DIM_X)) ERR; if (nc_rename_dim(ncid, 1, DIM_Y)) ERR; if (nc_rename_dim(ncid, 2, DIM_Z)) ERR; - + /* Close the file. */ if (nc_close(ncid)) ERR; - + /* Reopen the file and check. */ if (nc_open(filename, NC_NOWRITE, &ncid)) ERR; if (nc_inq_dimid(ncid, DIM_X, &dimid_in)) ERR; @@ -93,7 +104,7 @@ main(int argc, char **argv) if (nc_set_default_format(formats[format], NULL)) ERR; sprintf(filename, "%s_data_%d.nc", TEST_NAME, formats[format]); - + /* Create file with three dims. */ if (nc_create(filename, 0, &ncid)) ERR; if (nc_def_dim(ncid, LAT, DIM1_LEN, &dimid[0])) ERR; @@ -114,15 +125,15 @@ main(int argc, char **argv) if (nc_close(ncid)) ERR; if (nc_open(filename, NC_WRITE, &ncid)) ERR; if (nc_redef(ncid)) ERR; - + /* Rename the dimensions. */ if (nc_rename_dim(ncid, 0, DIM_X)) ERR; if (nc_rename_dim(ncid, 1, DIM_Y)) ERR; if (nc_rename_dim(ncid, 2, DIM_Z)) ERR; - + /* Close the file. */ if (nc_close(ncid)) ERR; - + /* Reopen the file and check. */ if (nc_open(filename, NC_NOWRITE, &ncid)) ERR; if (nc_inq_dimid(ncid, DIM_X, &dimid_in)) ERR; @@ -134,7 +145,7 @@ main(int argc, char **argv) if (nc_close(ncid)) ERR; } SUMMARIZE_ERR; - + } /* next format */ FINAL_RESULTS; } diff --git a/nc_test4/tst_simplerw_coll_r.c b/nc_test4/tst_simplerw_coll_r.c index cd25cbcf1..bf6637df6 100644 --- a/nc_test4/tst_simplerw_coll_r.c +++ b/nc_test4/tst_simplerw_coll_r.c @@ -1,4 +1,4 @@ -/* Copyright 2007-2011, UCAR/Unidata. See COPYRIGHT file for copying +/* Copyright 2007-2018, UCAR/Unidata. See COPYRIGHT file for copying * and redistribution conditions. * * This is part of the netCDF package. @@ -113,7 +113,7 @@ main(int argc, char **argv) unsigned int uint_fill_value_in; long long int int64_fill_value_in; unsigned long long int uint64_fill_value_in; - + /* Data to write and read. */ signed char byte_data[DIMSIZE * DIMSIZE], byte_data_in[DIMSIZE * DIMSIZE]; unsigned char char_data[DIMSIZE * DIMSIZE], char_data_in[DIMSIZE * DIMSIZE]; @@ -126,7 +126,7 @@ main(int argc, char **argv) unsigned int uint_data[DIMSIZE * DIMSIZE], uint_data_in[DIMSIZE * DIMSIZE]; long long int int64_data[DIMSIZE * DIMSIZE], int64_data_in[DIMSIZE * DIMSIZE]; unsigned long long int uint64_data[DIMSIZE * DIMSIZE], uint64_data_in[DIMSIZE * DIMSIZE]; - + if (!mpi_rank) printf("*** writing a %d x %d x %d file from %d processors for fill value test %d type %d...\n", NUM_SLABS, DIMSIZE, DIMSIZE, mpi_size, fv, test_type[tt]); @@ -234,7 +234,7 @@ main(int argc, char **argv) fill_value_in = &uint64_fill_value_in; break; } - + /* Create a file name. */ sprintf(file_name, "%s_type_%d_fv_%d.nc", TEST_NAME, test_type[tt], fv); @@ -268,7 +268,7 @@ main(int argc, char **argv) if (nc_def_var_fill(ncid, varid, NC_NOFILL, NULL)) ERR; if (nc_inq_var_fill(ncid, varid, &fill_mode_in, NULL)) ERR; if (!fill_mode_in) ERR; /* nofill will be true */ - } + } /* Write metadata to file. */ if (nc_enddef(ncid)) ERR; @@ -406,7 +406,7 @@ main(int argc, char **argv) SUMMARIZE_ERR; } /* next test type */ } /* next fill value test run */ - + /* Shut down MPI. */ MPI_Finalize(); diff --git a/nc_test4/tst_strings.c b/nc_test4/tst_strings.c index 176df80c3..301ca6cd7 100644 --- a/nc_test4/tst_strings.c +++ b/nc_test4/tst_strings.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_strings2.c b/nc_test4/tst_strings2.c index f0b7aa2b1..2edeadebc 100644 --- a/nc_test4/tst_strings2.c +++ b/nc_test4/tst_strings2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/nc_test4/tst_sync.c b/nc_test4/tst_sync.c index 3ac8799c3..30df93fc3 100644 --- a/nc_test4/tst_sync.c +++ b/nc_test4/tst_sync.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2011 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_types.c b/nc_test4/tst_types.c index 9db571e8b..ea0b0ffaa 100644 --- a/nc_test4/tst_types.c +++ b/nc_test4/tst_types.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 types. diff --git a/nc_test4/tst_udf.c b/nc_test4/tst_udf.c index c5fc9d244..ebe543780 100644 --- a/nc_test4/tst_udf.c +++ b/nc_test4/tst_udf.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007 University +/* This is part of the netCDF package. Copyright 2005-2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. @@ -166,7 +166,7 @@ main(int argc, char **argv) int ncid; NC_Dispatch *disp_in; int i; - + /* Create an empty file to play with. */ if (nc_create(FILE_NAME, 0, &ncid)) ERR; if (nc_close(ncid)) ERR; @@ -180,11 +180,11 @@ main(int argc, char **argv) /* Check that our user-defined format has been added. */ if (nc_inq_user_format(mode[i], &disp_in, NULL)) ERR; if (disp_in != &tst_dispatcher) ERR; - + /* Open file with our defined functions. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open file again and abort, which is the same as closing it. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_inq_format(ncid, NULL) != TEST_VAL_42) ERR; @@ -202,7 +202,7 @@ main(int argc, char **argv) char magic_number_in[NC_MAX_MAGIC_NUMBER_LEN]; FILE *FP; int i; - + /* Create a file with magic number at start. */ if (!(FP = fopen(FILE_NAME, "w"))) ERR; if (fwrite(magic_number, sizeof(char), strlen(magic_number), FP) @@ -210,13 +210,13 @@ main(int argc, char **argv) if (fwrite(dummy_data, sizeof(char), strlen(dummy_data), FP) != strlen(dummy_data)) ERR; if (fclose(FP)) ERR; - + /* Test all available user-defined format slots. */ for (i = 0; i < NUM_UDFS; i++) { /* Add our test user defined format. */ if (nc_def_user_format(mode[i], &tst_dispatcher, magic_number)) ERR; - + /* Check that our user-defined format has been added. */ if (nc_inq_user_format(mode[i], &disp_in, magic_number_in)) ERR; if (disp_in != &tst_dispatcher) ERR; @@ -225,7 +225,7 @@ main(int argc, char **argv) /* Open file with our defined functions. */ if (nc_open(FILE_NAME, mode[i], &ncid)) ERR; if (nc_close(ncid)) ERR; - + /* Open file again and abort, which is the same as closing * it. This time we don't specify a mode, because the magic * number is used to identify the file. */ diff --git a/nc_test4/tst_unlim_vars.c b/nc_test4/tst_unlim_vars.c index 306e53e36..31e559587 100644 --- a/nc_test4/tst_unlim_vars.c +++ b/nc_test4/tst_unlim_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables with unlimited dimensions. diff --git a/nc_test4/tst_utf8.c b/nc_test4/tst_utf8.c index 13da950e9..86efd4927 100644 --- a/nc_test4/tst_utf8.c +++ b/nc_test4/tst_utf8.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/nc_test4/tst_utils.c b/nc_test4/tst_utils.c index cf8a83885..96a16294e 100644 --- a/nc_test4/tst_utils.c +++ b/nc_test4/tst_utils.c @@ -1,6 +1,17 @@ -/** \internal -\file -Utility functions for tests. */ +/*! \file Utility functions for tests. + +\internal +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + + +*/ + + #include #include diff --git a/nc_test4/tst_v2.c b/nc_test4/tst_v2.c index 0204ce90e..c012aa51c 100644 --- a/nc_test4/tst_v2.c +++ b/nc_test4/tst_v2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test internal netcdf-4 file code. diff --git a/nc_test4/tst_varms.c b/nc_test4/tst_varms.c index 63a3e8e0a..23990b32f 100644 --- a/nc_test4/tst_varms.c +++ b/nc_test4/tst_varms.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. diff --git a/nc_test4/tst_vars.c b/nc_test4/tst_vars.c index dfd8502bb..5ff8b02a7 100644 --- a/nc_test4/tst_vars.c +++ b/nc_test4/tst_vars.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars2.c b/nc_test4/tst_vars2.c index 9531427f4..f94c71d75 100644 --- a/nc_test4/tst_vars2.c +++ b/nc_test4/tst_vars2.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars3.c b/nc_test4/tst_vars3.c index 229ae15df..c7be6dedf 100644 --- a/nc_test4/tst_vars3.c +++ b/nc_test4/tst_vars3.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_vars4.c b/nc_test4/tst_vars4.c index 19610a7b2..bb571ea7f 100644 --- a/nc_test4/tst_vars4.c +++ b/nc_test4/tst_vars4.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test netcdf-4 variables. diff --git a/nc_test4/tst_varsperf.c b/nc_test4/tst_varsperf.c index 3aac8bab4..7a276f242 100644 --- a/nc_test4/tst_varsperf.c +++ b/nc_test4/tst_varsperf.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + /* Create a netcdf-4 file with a large variable for the purpose @@ -47,11 +58,11 @@ buildfile(void) if(nc_def_dim(ncid,DIM0,(size_t)DIMSIZE0,&dimids[0])) ERR; if(nc_def_dim(ncid,DIM1,(size_t)DIMSIZE1,&dimids[1])) ERR; if(nc_def_var(ncid,VAR,NC_INT,NDIMS,dimids,&varid)) ERR; - + if(nc_enddef(ncid)) ERR; for(p=data,index=0;index #include @@ -42,7 +52,7 @@ main(int argc, char** argv) argc--; argv++; if(argc < 2) - usage(); + usage(); proto = strdup(argv[0]); servlet = strdup(argv[1]); if(argc >= 3) @@ -76,7 +86,7 @@ main(int argc, char** argv) printf("%s",url); fflush(stdout); /* clean up */ - free(serverlist); + free(serverlist); free(url); exit(0); } diff --git a/ncdap_test/nocacheremote3/CMakeLists.txt b/ncdap_test/nocacheremote3/CMakeLists.txt index d46021ec0..5df1d4251 100644 --- a/ncdap_test/nocacheremote3/CMakeLists.txt +++ b/ncdap_test/nocacheremote3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/nocacheremote3/Makefile.am b/ncdap_test/nocacheremote3/Makefile.am index a9c963bae..691df5cda 100644 --- a/ncdap_test/nocacheremote3/Makefile.am +++ b/ncdap_test/nocacheremote3/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files diff --git a/ncdap_test/special3/CMakeLists.txt b/ncdap_test/special3/CMakeLists.txt index 2332d8f85..b21e9d53b 100644 --- a/ncdap_test/special3/CMakeLists.txt +++ b/ncdap_test/special3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdap_test/t_auth.c b/ncdap_test/t_auth.c index 92c0fc803..6009426dc 100644 --- a/ncdap_test/t_auth.c +++ b/ncdap_test/t_auth.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -148,7 +158,7 @@ testrc(const char* prefix, const char* url) if(rc == NULL) { fprintf(stderr,"Cannot create ./%s\n",RC); exit(1); - } + } fclose(rc); fillrc(rcpath); retval = nc_open(url, 0, &ncid); diff --git a/ncdap_test/t_dap.c b/ncdap_test/t_dap.c index a73bb6b5a..5c45e69e7 100644 --- a/ncdap_test/t_dap.c +++ b/ncdap_test/t_dap.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include #include @@ -120,7 +130,7 @@ int main() /* location of our target url: use file:// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -137,7 +147,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -369,7 +379,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); @@ -460,4 +470,3 @@ case CASE(NC_CHAR,NC_STRING):{ } /*switch*/ } - diff --git a/ncdap_test/t_dap3a.c b/ncdap_test/t_dap3a.c index 535579ace..f043e2885 100644 --- a/ncdap_test/t_dap3a.c +++ b/ncdap_test/t_dap3a.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #define NETCDF3ONLY #include #include @@ -120,7 +130,7 @@ int main() /* location of our target url: use file:// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -137,7 +147,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -369,7 +379,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); @@ -460,4 +470,3 @@ case CASE(NC_CHAR,NC_STRING):{ } /*switch*/ } - diff --git a/ncdap_test/t_dap3b.c b/ncdap_test/t_dap3b.c index 706f913d3..36b36abb6 100644 --- a/ncdap_test/t_dap3b.c +++ b/ncdap_test/t_dap3b.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include diff --git a/ncdap_test/t_dap3c.c b/ncdap_test/t_dap3c.c index 313437b87..299d7491e 100644 --- a/ncdap_test/t_dap3c.c +++ b/ncdap_test/t_dap3c.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -20,7 +30,7 @@ main() int i32[100]; size_t start[1]; size_t count[1]; - int ok = 1; + int ok = 1; const char* topsrcdir; char url[4096]; diff --git a/ncdap_test/t_misc.c b/ncdap_test/t_misc.c index d613f4e0d..b158033f5 100644 --- a/ncdap_test/t_misc.c +++ b/ncdap_test/t_misc.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -46,7 +56,7 @@ main() svcurl = nc_findtestserver(servlet,0,serverlist); if(svcurl == NULL) { fprintf(stderr,"not found: %s\n",servlet); - exit(1); + exit(1); } snprintf(url,sizeof(url),FURL,svcurl); diff --git a/ncdap_test/t_ncf330.c b/ncdap_test/t_ncf330.c index d68f8202c..20fac197a 100644 --- a/ncdap_test/t_ncf330.c +++ b/ncdap_test/t_ncf330.c @@ -1,5 +1,12 @@ /*! Test program for netcdf issue NCF-330 - * + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + * This test was provided by Ellen Johnson at Mathworks and * illustrates an issue currently only seen on Windows. * diff --git a/ncdap_test/t_srcdir.h b/ncdap_test/t_srcdir.h index 30a5b5572..ca1c43424 100644 --- a/ncdap_test/t_srcdir.h +++ b/ncdap_test/t_srcdir.h @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #define XSTRINGIFY(s) #s #define STRINGIFY(s) XSTRINGIFY(s) @@ -20,7 +30,7 @@ gettopsrcdir(void) if(topsrcdir == NULL) { fprintf(stderr,"*** FAIL: $abs_top_srcdir not defined\n"); exit(1); - } + } fprintf(stderr,"topsrcdir=%s\n",topsrcdir); return topsrcdir; } diff --git a/ncdap_test/test_cvt.c b/ncdap_test/test_cvt.c index f9bb03f71..24915c49e 100644 --- a/ncdap_test/test_cvt.c +++ b/ncdap_test/test_cvt.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include #include #include @@ -119,7 +129,7 @@ int main() /* location of our target url: use file// to avoid remote server downtime issues */ - + topsrcdir = gettopsrcdir(); url[0] = '\0'; @@ -136,7 +146,7 @@ int main() /* open file, get varid */ CHECK(nc_open(url, NC_NOWRITE, &ncid)); - + /* extract the string case for netcdf-3*/ #ifndef USE_NETCDF4 CHECK(nc_inq_varid(ncid, "s", &varid)); @@ -368,7 +378,7 @@ compare(nc_type t1, nc_type t2, void* v0, void* vdata0, char* tag, default: { printf("unexpected compare: %d %d\n",(int)t1,(int)t2); abort(); - } + } case CASE(NC_CHAR,NC_CHAR): { setup(char); diff --git a/ncdap_test/test_environment.c b/ncdap_test/test_environment.c index 6c2eeb9f8..e5dbb4d39 100644 --- a/ncdap_test/test_environment.c +++ b/ncdap_test/test_environment.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -26,7 +36,7 @@ main(int argc, char** argv) int c = *p; if(c >= 'A' && c <= 'Z') c = ((c - 'A') + 'a'); *p = (char)c; - } + } do { #ifdef TOPSRCDIR if(strcmp(arg,"topsrcdir") == 0) { diff --git a/ncdap_test/test_nstride_cached.c b/ncdap_test/test_nstride_cached.c index 985fb30ca..d2bc42c8c 100644 --- a/ncdap_test/test_nstride_cached.c +++ b/ncdap_test/test_nstride_cached.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Report from Ansely Manke: I've attached a file with a short c program that diff --git a/ncdap_test/test_partvar.c b/ncdap_test/test_partvar.c index fe2b95808..236afbb3f 100644 --- a/ncdap_test/test_partvar.c +++ b/ncdap_test/test_partvar.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Test part variable fetch code */ @@ -9,7 +19,7 @@ Test part variable fetch code #include "ncdispatch.h" #include "nctestserver.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf ingrid { dimensions: ISTA = 35 ; @@ -40,7 +50,7 @@ variables: /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -85,7 +95,7 @@ void dump(float* source, size_t start, size_t count) if((i % 6) == 5) printf("\n"); } printf("\n"); -#endif +#endif } int @@ -136,7 +146,7 @@ main() #ifdef DEBUG dump((float*)targetpart,0,ISTA*IZ); -#endif +#endif /* validate the part var */ if(!check(targetpart,start0,count0)) goto fail; @@ -156,7 +166,7 @@ subslice(int rank, size_t* count, int startdim) { int i; size_t offset = 1; - for(i=startdim;irank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -250,282 +260,282 @@ odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } /* Capture the complete set of data */ static float target_content[ISTA*IZ] = { - 0, 0.009999833, 0.01999867, 0.0299955, 0.03998933, 0.04997917, 0.059964, - 0.06994285, 0.0799147, 0.08987855, 0.09983341, 0.1097783, 0.1197122, - 0.1296341, 0.1395431, 0.1494381, 0.1593182, 0.1691823, 0.1790296, - 0.1888589, 0.1986693, 0.2084599, 0.2182296, 0.2279775, 0.2377026, - 0.247404, 0.2570806, 0.2667314, 0.2763557, 0.2859522, 0.2955202, - 0.3050586, 0.3145666, 0.324043, 0.3334871, 0.3428978, 0.3522742, - 0.3616154, 0.3709205, 0.3801884, 0.3894183, 0.3986093, 0.4077604, + 0, 0.009999833, 0.01999867, 0.0299955, 0.03998933, 0.04997917, 0.059964, + 0.06994285, 0.0799147, 0.08987855, 0.09983341, 0.1097783, 0.1197122, + 0.1296341, 0.1395431, 0.1494381, 0.1593182, 0.1691823, 0.1790296, + 0.1888589, 0.1986693, 0.2084599, 0.2182296, 0.2279775, 0.2377026, + 0.247404, 0.2570806, 0.2667314, 0.2763557, 0.2859522, 0.2955202, + 0.3050586, 0.3145666, 0.324043, 0.3334871, 0.3428978, 0.3522742, + 0.3616154, 0.3709205, 0.3801884, 0.3894183, 0.3986093, 0.4077604, 0.4168708, - 0.4259395, 0.4349655, 0.4439481, 0.4528863, 0.4617792, 0.4706259, - 0.4794255, 0.4881772, 0.4968801, 0.5055333, 0.514136, 0.5226873, - 0.5311862, 0.539632, 0.5480239, 0.556361, 0.5646425, 0.5728675, - 0.5810351, 0.5891448, 0.5971954, 0.6051864, 0.6131169, 0.620986, - 0.628793, 0.6365372, 0.6442177, 0.6518338, 0.6593847, 0.6668696, - 0.6742879, 0.6816388, 0.6889215, 0.6961352, 0.7032794, 0.7103533, - 0.7173561, 0.7242872, 0.7311459, 0.7379314, 0.7446431, 0.7512804, + 0.4259395, 0.4349655, 0.4439481, 0.4528863, 0.4617792, 0.4706259, + 0.4794255, 0.4881772, 0.4968801, 0.5055333, 0.514136, 0.5226873, + 0.5311862, 0.539632, 0.5480239, 0.556361, 0.5646425, 0.5728675, + 0.5810351, 0.5891448, 0.5971954, 0.6051864, 0.6131169, 0.620986, + 0.628793, 0.6365372, 0.6442177, 0.6518338, 0.6593847, 0.6668696, + 0.6742879, 0.6816388, 0.6889215, 0.6961352, 0.7032794, 0.7103533, + 0.7173561, 0.7242872, 0.7311459, 0.7379314, 0.7446431, 0.7512804, 0.7578425, 0.764329, - 0.7707389, 0.7770718, 0.7833269, 0.7895038, 0.7956016, 0.8016199, - 0.8075581, 0.8134155, 0.8191916, 0.8248857, 0.8304974, 0.836026, - 0.841471, 0.8468319, 0.852108, 0.857299, 0.8624042, 0.8674232, 0.8723555, - 0.8772005, 0.8819578, 0.8866269, 0.8912073, 0.8956987, 0.9001005, - 0.9044122, 0.9086335, 0.912764, 0.9168031, 0.9207506, 0.924606, 0.928369, - 0.9320391, 0.935616, 0.9390994, 0.9424888, 0.945784, 0.9489846, + 0.7707389, 0.7770718, 0.7833269, 0.7895038, 0.7956016, 0.8016199, + 0.8075581, 0.8134155, 0.8191916, 0.8248857, 0.8304974, 0.836026, + 0.841471, 0.8468319, 0.852108, 0.857299, 0.8624042, 0.8674232, 0.8723555, + 0.8772005, 0.8819578, 0.8866269, 0.8912073, 0.8956987, 0.9001005, + 0.9044122, 0.9086335, 0.912764, 0.9168031, 0.9207506, 0.924606, 0.928369, + 0.9320391, 0.935616, 0.9390994, 0.9424888, 0.945784, 0.9489846, 0.9520903, 0.9551008, 0.9580159, 0.960835, 0.9635582, 0.966185, - 0.9687151, 0.9711484, 0.9734845, 0.9757234, 0.9778646, 0.979908, 0.9818535, - 0.9837008, 0.9854497, 0.9871001, 0.9886518, 0.9901046, 0.9914584, - 0.992713, 0.9938684, 0.9949244, 0.9958808, 0.9967378, 0.997495, - 0.9981525, 0.9987102, 0.9991679, 0.9995258, 0.9997838, 0.9999417, - 0.9999997, 0.9999576, 0.9998156, 0.9995736, 0.9992316, 0.9987897, - 0.998248, 0.9976064, 0.996865, 0.996024, 0.9950833, 0.9940432, 0.9929036, + 0.9687151, 0.9711484, 0.9734845, 0.9757234, 0.9778646, 0.979908, 0.9818535, + 0.9837008, 0.9854497, 0.9871001, 0.9886518, 0.9901046, 0.9914584, + 0.992713, 0.9938684, 0.9949244, 0.9958808, 0.9967378, 0.997495, + 0.9981525, 0.9987102, 0.9991679, 0.9995258, 0.9997838, 0.9999417, + 0.9999997, 0.9999576, 0.9998156, 0.9995736, 0.9992316, 0.9987897, + 0.998248, 0.9976064, 0.996865, 0.996024, 0.9950833, 0.9940432, 0.9929036, 0.9916648, 0.9903268, 0.9888898, 0.9873539, 0.9857192, 0.983986, - 0.9821543, 0.9802245, 0.9781966, 0.9760709, 0.9738476, 0.971527, 0.9691091, - 0.9665944, 0.963983, 0.9612752, 0.9584713, 0.9555715, 0.9525762, - 0.9494856, 0.9463001, 0.9430199, 0.9396455, 0.9361771, 0.932615, - 0.9289597, 0.9252115, 0.9213708, 0.917438, 0.9134133, 0.9092974, - 0.9050906, 0.9007932, 0.8964058, 0.8919287, 0.8873624, 0.8827074, - 0.8779641, 0.873133, 0.8682146, 0.8632094, 0.8581178, 0.8529405, + 0.9821543, 0.9802245, 0.9781966, 0.9760709, 0.9738476, 0.971527, 0.9691091, + 0.9665944, 0.963983, 0.9612752, 0.9584713, 0.9555715, 0.9525762, + 0.9494856, 0.9463001, 0.9430199, 0.9396455, 0.9361771, 0.932615, + 0.9289597, 0.9252115, 0.9213708, 0.917438, 0.9134133, 0.9092974, + 0.9050906, 0.9007932, 0.8964058, 0.8919287, 0.8873624, 0.8827074, + 0.8779641, 0.873133, 0.8682146, 0.8632094, 0.8581178, 0.8529405, 0.8476778, 0.8423305, 0.8368988, 0.8313835, 0.825785, 0.8201039, 0.8143409, - 0.8084964, 0.8025711, 0.7965655, 0.7904802, 0.7843159, 0.7780732, - 0.7717527, 0.7653549, 0.7588807, 0.7523306, 0.7457052, 0.7390053, - 0.7322314, 0.7253844, 0.7184648, 0.7114733, 0.7044108, 0.6972777, - 0.690075, 0.6828032, 0.6754632, 0.6680556, 0.6605812, 0.6530408, - 0.645435, 0.6377647, 0.6300306, 0.6222336, 0.6143743, 0.6064535, - 0.5984721, 0.5904309, 0.5823306, 0.5741721, 0.5659562, 0.5576837, - 0.5493554, 0.5409722, 0.5325349, 0.5240443, 0.5155014, 0.5069069, + 0.8084964, 0.8025711, 0.7965655, 0.7904802, 0.7843159, 0.7780732, + 0.7717527, 0.7653549, 0.7588807, 0.7523306, 0.7457052, 0.7390053, + 0.7322314, 0.7253844, 0.7184648, 0.7114733, 0.7044108, 0.6972777, + 0.690075, 0.6828032, 0.6754632, 0.6680556, 0.6605812, 0.6530408, + 0.645435, 0.6377647, 0.6300306, 0.6222336, 0.6143743, 0.6064535, + 0.5984721, 0.5904309, 0.5823306, 0.5741721, 0.5659562, 0.5576837, + 0.5493554, 0.5409722, 0.5325349, 0.5240443, 0.5155014, 0.5069069, 0.4982616, 0.4895666, - 0.4808226, 0.4720306, 0.4631913, 0.4543057, 0.4453746, 0.4363991, - 0.4273799, 0.4183179, 0.4092142, 0.4000695, 0.3908848, 0.381661, - 0.372399, 0.3630998, 0.3537644, 0.3443935, 0.3349881, 0.3255493, - 0.316078, 0.306575, 0.2970414, 0.287478, 0.2778859, 0.2682661, 0.2586193, - 0.2489468, 0.2392493, 0.229528, 0.2197836, 0.2100173, 0.20023, 0.1904227, - 0.1805963, 0.1707518, 0.1608903, 0.1510127, 0.14112, 0.1312132, + 0.4808226, 0.4720306, 0.4631913, 0.4543057, 0.4453746, 0.4363991, + 0.4273799, 0.4183179, 0.4092142, 0.4000695, 0.3908848, 0.381661, + 0.372399, 0.3630998, 0.3537644, 0.3443935, 0.3349881, 0.3255493, + 0.316078, 0.306575, 0.2970414, 0.287478, 0.2778859, 0.2682661, 0.2586193, + 0.2489468, 0.2392493, 0.229528, 0.2197836, 0.2100173, 0.20023, 0.1904227, + 0.1805963, 0.1707518, 0.1608903, 0.1510127, 0.14112, 0.1312132, 0.1212933, 0.1113612, 0.101418, 0.09146464, 0.08150215, 0.07153151, - 0.06155372, 0.05156977, 0.04158066, 0.0315874, 0.02159098, 0.01159239, - 0.001592653, -0.008407247, -0.01840631, -0.02840353, -0.0383979, - -0.04838844, -0.05837414, -0.068354, -0.07832703, -0.08829223, - -0.09824859, -0.1081951, -0.1181309, -0.1280548, -0.1379659, -0.1478632, - -0.1577457, -0.1676124, -0.1774624, -0.1872947, -0.1971082, -0.206902, - -0.2166751, -0.2264265, -0.2361553, -0.2458605, -0.2555411, -0.2651961, - -0.2748247, -0.2844257, -0.2939983, -0.3035415, -0.3130544, -0.3225359, + 0.06155372, 0.05156977, 0.04158066, 0.0315874, 0.02159098, 0.01159239, + 0.001592653, -0.008407247, -0.01840631, -0.02840353, -0.0383979, + -0.04838844, -0.05837414, -0.068354, -0.07832703, -0.08829223, + -0.09824859, -0.1081951, -0.1181309, -0.1280548, -0.1379659, -0.1478632, + -0.1577457, -0.1676124, -0.1774624, -0.1872947, -0.1971082, -0.206902, + -0.2166751, -0.2264265, -0.2361553, -0.2458605, -0.2555411, -0.2651961, + -0.2748247, -0.2844257, -0.2939983, -0.3035415, -0.3130544, -0.3225359, -0.3319852, -0.3414013, -0.3507832, -0.3601301, - -0.369441, -0.3787149, -0.3879509, -0.3971482, -0.4063057, -0.4154226, - -0.424498, -0.4335309, -0.4425204, -0.4514658, -0.4603659, -0.46922, - -0.4780273, -0.4867867, -0.4954974, -0.5041586, -0.5127693, -0.5213288, - -0.5298361, -0.5382905, -0.5466911, -0.5550369, -0.5633273, -0.5715613, - -0.5797382, -0.5878571, -0.5959172, -0.6039178, -0.6118579, -0.6197369, - -0.6275538, -0.635308, -0.6429988, -0.6506251, -0.6581865, -0.665682, - -0.673111, -0.6804726, -0.6877661, -0.694991, -0.7021463, -0.7092314, + -0.369441, -0.3787149, -0.3879509, -0.3971482, -0.4063057, -0.4154226, + -0.424498, -0.4335309, -0.4425204, -0.4514658, -0.4603659, -0.46922, + -0.4780273, -0.4867867, -0.4954974, -0.5041586, -0.5127693, -0.5213288, + -0.5298361, -0.5382905, -0.5466911, -0.5550369, -0.5633273, -0.5715613, + -0.5797382, -0.5878571, -0.5959172, -0.6039178, -0.6118579, -0.6197369, + -0.6275538, -0.635308, -0.6429988, -0.6506251, -0.6581865, -0.665682, + -0.673111, -0.6804726, -0.6877661, -0.694991, -0.7021463, -0.7092314, -0.7162456, -0.7231881, - -0.7300584, -0.7368556, -0.7435791, -0.7502283, -0.7568025, -0.763301, - -0.7697231, -0.7760683, -0.7823359, -0.7885253, -0.7946358, -0.8006668, - -0.8066177, -0.8124881, -0.8182771, -0.8239843, -0.8296092, -0.835151, - -0.8406094, -0.8459837, -0.8512734, -0.856478, -0.8615969, -0.8666297, - -0.8715758, -0.8764347, -0.881206, -0.8858892, -0.8904838, -0.8949894, - -0.8994054, -0.9037315, -0.9079673, -0.9121122, -0.9161659, -0.920128, - -0.9239982, -0.9277759, -0.9314608, -0.9350526, -0.9385508, -0.9419553, + -0.7300584, -0.7368556, -0.7435791, -0.7502283, -0.7568025, -0.763301, + -0.7697231, -0.7760683, -0.7823359, -0.7885253, -0.7946358, -0.8006668, + -0.8066177, -0.8124881, -0.8182771, -0.8239843, -0.8296092, -0.835151, + -0.8406094, -0.8459837, -0.8512734, -0.856478, -0.8615969, -0.8666297, + -0.8715758, -0.8764347, -0.881206, -0.8858892, -0.8904838, -0.8949894, + -0.8994054, -0.9037315, -0.9079673, -0.9121122, -0.9161659, -0.920128, + -0.9239982, -0.9277759, -0.9314608, -0.9350526, -0.9385508, -0.9419553, -0.9452655, -0.9484812, - -0.9516021, -0.9546278, -0.957558, -0.9603925, -0.963131, -0.965773, - -0.9683186, -0.9707673, -0.973119, -0.9753733, -0.9775301, -0.9795892, - -0.9815503, -0.9834132, -0.9851778, -0.9868439, -0.9884112, -0.9898798, - -0.9912494, -0.9925198, -0.993691, -0.9947628, -0.9957352, -0.996608, - -0.9973811, -0.9980544, -0.998628, -0.9991017, -0.9994755, -0.9997494, - -0.9999232, -0.9999971, -0.999971, -0.9998449, -0.9996188, -0.9992928, - -0.9988668, -0.998341, -0.9977152, -0.9969898, -0.9961646, -0.9952399, + -0.9516021, -0.9546278, -0.957558, -0.9603925, -0.963131, -0.965773, + -0.9683186, -0.9707673, -0.973119, -0.9753733, -0.9775301, -0.9795892, + -0.9815503, -0.9834132, -0.9851778, -0.9868439, -0.9884112, -0.9898798, + -0.9912494, -0.9925198, -0.993691, -0.9947628, -0.9957352, -0.996608, + -0.9973811, -0.9980544, -0.998628, -0.9991017, -0.9994755, -0.9997494, + -0.9999232, -0.9999971, -0.999971, -0.9998449, -0.9996188, -0.9992928, + -0.9988668, -0.998341, -0.9977152, -0.9969898, -0.9961646, -0.9952399, -0.9942155, -0.9930918, - -0.9918687, -0.9905465, -0.9891253, -0.9876051, -0.9859861, -0.9842686, - -0.9824526, -0.9805384, -0.9785261, -0.976416, -0.9742082, -0.9719031, - -0.9695007, -0.9670014, -0.9644054, -0.9617129, -0.9589243, -0.9560397, - -0.9530596, -0.9499842, -0.9468138, -0.9435487, -0.9401892, -0.9367357, - -0.9331886, -0.9295481, -0.9258147, -0.9219887, -0.9180705, -0.9140605, - -0.9099591, -0.9057667, -0.9014837, -0.8971105, -0.8926477, -0.8880956, - -0.8834547, -0.8787254, -0.8739083, -0.8690037, -0.8640123, -0.8589345, + -0.9918687, -0.9905465, -0.9891253, -0.9876051, -0.9859861, -0.9842686, + -0.9824526, -0.9805384, -0.9785261, -0.976416, -0.9742082, -0.9719031, + -0.9695007, -0.9670014, -0.9644054, -0.9617129, -0.9589243, -0.9560397, + -0.9530596, -0.9499842, -0.9468138, -0.9435487, -0.9401892, -0.9367357, + -0.9331886, -0.9295481, -0.9258147, -0.9219887, -0.9180705, -0.9140605, + -0.9099591, -0.9057667, -0.9014837, -0.8971105, -0.8926477, -0.8880956, + -0.8834547, -0.8787254, -0.8739083, -0.8690037, -0.8640123, -0.8589345, -0.8537708, -0.8485217, - -0.8431877, -0.8377695, -0.8322675, -0.8266822, -0.8210142, -0.8152642, - -0.8094327, -0.8035201, -0.7975273, -0.7914547, -0.7853029, -0.7790727, - -0.7727645, -0.766379, -0.7599169, -0.7533789, -0.7467654, -0.7400773, - -0.7333152, -0.7264798, -0.7195717, -0.7125916, -0.7055403, -0.6984185, - -0.6912268, -0.683966, -0.6766368, -0.6692399, -0.6617761, -0.6542461, - -0.6466507, -0.6389906, -0.6312667, -0.6234795, -0.6156301, -0.6077191, - -0.5997473, -0.5917156, -0.5836247, -0.5754754, -0.5672686, -0.559005, + -0.8431877, -0.8377695, -0.8322675, -0.8266822, -0.8210142, -0.8152642, + -0.8094327, -0.8035201, -0.7975273, -0.7914547, -0.7853029, -0.7790727, + -0.7727645, -0.766379, -0.7599169, -0.7533789, -0.7467654, -0.7400773, + -0.7333152, -0.7264798, -0.7195717, -0.7125916, -0.7055403, -0.6984185, + -0.6912268, -0.683966, -0.6766368, -0.6692399, -0.6617761, -0.6542461, + -0.6466507, -0.6389906, -0.6312667, -0.6234795, -0.6156301, -0.6077191, + -0.5997473, -0.5917156, -0.5836247, -0.5754754, -0.5672686, -0.559005, -0.5506855, -0.542311, - -0.5338823, -0.5254001, -0.5168654, -0.5082791, -0.4996419, -0.4909547, - -0.4822185, -0.473434, -0.4646022, -0.4557239, -0.4468001, -0.4378315, - -0.4288192, -0.419764, -0.4106669, -0.4015286, -0.3923502, -0.3831326, - -0.3738767, -0.3645833, -0.3552535, -0.3458883, -0.3364884, -0.3270548, - -0.3175886, -0.3080906, -0.2985618, -0.2890031, -0.2794155, -0.2698, - -0.2601575, -0.250489, -0.2407954, -0.2310778, -0.2213371, -0.2115742, - -0.2017901, -0.1919859, -0.1821625, -0.1723209, -0.162462, -0.1525869, + -0.5338823, -0.5254001, -0.5168654, -0.5082791, -0.4996419, -0.4909547, + -0.4822185, -0.473434, -0.4646022, -0.4557239, -0.4468001, -0.4378315, + -0.4288192, -0.419764, -0.4106669, -0.4015286, -0.3923502, -0.3831326, + -0.3738767, -0.3645833, -0.3552535, -0.3458883, -0.3364884, -0.3270548, + -0.3175886, -0.3080906, -0.2985618, -0.2890031, -0.2794155, -0.2698, + -0.2601575, -0.250489, -0.2407954, -0.2310778, -0.2213371, -0.2115742, + -0.2017901, -0.1919859, -0.1821625, -0.1723209, -0.162462, -0.1525869, -0.1426965, -0.1327919, - -0.122874, -0.1129438, -0.1030023, -0.0930505, -0.0830894, -0.07311999, - -0.06314328, -0.05316024, -0.04317189, -0.03317922, -0.02318323, - -0.01318493, -0.003185302, 0.00681464, 0.0168139, 0.02681148, 0.03680638, - 0.0467976, 0.05678413, 0.06676499, 0.07673918, 0.08670568, 0.09666352, - 0.1066117, 0.1165492, 0.1264751, 0.1363883, 0.1462878, 0.1561728, - 0.1660421, 0.1758948, 0.18573, 0.1955465, 0.2053435, 0.21512, 0.2248749, - 0.2346074, 0.2443164, 0.254001, 0.2636602, 0.273293, 0.2828985, + -0.122874, -0.1129438, -0.1030023, -0.0930505, -0.0830894, -0.07311999, + -0.06314328, -0.05316024, -0.04317189, -0.03317922, -0.02318323, + -0.01318493, -0.003185302, 0.00681464, 0.0168139, 0.02681148, 0.03680638, + 0.0467976, 0.05678413, 0.06676499, 0.07673918, 0.08670568, 0.09666352, + 0.1066117, 0.1165492, 0.1264751, 0.1363883, 0.1462878, 0.1561728, + 0.1660421, 0.1758948, 0.18573, 0.1955465, 0.2053435, 0.21512, 0.2248749, + 0.2346074, 0.2443164, 0.254001, 0.2636602, 0.273293, 0.2828985, 0.2924757, 0.3020236, - 0.3115413, 0.321028, 0.3304825, 0.3399039, 0.3492913, 0.3586439, 0.3679605, - 0.3772404, 0.3864825, 0.395686, 0.4048499, 0.4139734, 0.4230554, - 0.4320951, 0.4410917, 0.4500441, 0.4589515, 0.467813, 0.4766277, - 0.4853948, 0.4941134, 0.5027825, 0.5114013, 0.519969, 0.5284848, - 0.5369476, 0.5453568, 0.5537114, 0.5620106, 0.5702537, 0.5784398, - 0.5865679, 0.5946375, 0.6026475, 0.6105974, 0.6184861, 0.626313, - 0.6340773, 0.6417782, 0.6494148, 0.6569866, 0.6644927, 0.6719322, + 0.3115413, 0.321028, 0.3304825, 0.3399039, 0.3492913, 0.3586439, 0.3679605, + 0.3772404, 0.3864825, 0.395686, 0.4048499, 0.4139734, 0.4230554, + 0.4320951, 0.4410917, 0.4500441, 0.4589515, 0.467813, 0.4766277, + 0.4853948, 0.4941134, 0.5027825, 0.5114013, 0.519969, 0.5284848, + 0.5369476, 0.5453568, 0.5537114, 0.5620106, 0.5702537, 0.5784398, + 0.5865679, 0.5946375, 0.6026475, 0.6105974, 0.6184861, 0.626313, + 0.6340773, 0.6417782, 0.6494148, 0.6569866, 0.6644927, 0.6719322, 0.6793047, - 0.6866091, 0.693845, 0.7010114, 0.7081077, 0.7151332, 0.7220873, 0.728969, - 0.735778, 0.7425133, 0.7491744, 0.7557605, 0.7622711, 0.7687054, - 0.7750629, 0.7813429, 0.7875448, 0.7936679, 0.7997116, 0.8056753, - 0.8115585, 0.8173606, 0.8230809, 0.8287189, 0.834274, 0.8397457, - 0.8451334, 0.8504366, 0.8556548, 0.8607874, 0.8658339, 0.8707939, - 0.8756667, 0.880452, 0.8851492, 0.889758, 0.8942778, 0.8987081, - 0.9030486, 0.9072987, 0.9114581, 0.9155264, 0.9195032, 0.9233879, + 0.6866091, 0.693845, 0.7010114, 0.7081077, 0.7151332, 0.7220873, 0.728969, + 0.735778, 0.7425133, 0.7491744, 0.7557605, 0.7622711, 0.7687054, + 0.7750629, 0.7813429, 0.7875448, 0.7936679, 0.7997116, 0.8056753, + 0.8115585, 0.8173606, 0.8230809, 0.8287189, 0.834274, 0.8397457, + 0.8451334, 0.8504366, 0.8556548, 0.8607874, 0.8658339, 0.8707939, + 0.8756667, 0.880452, 0.8851492, 0.889758, 0.8942778, 0.8987081, + 0.9030486, 0.9072987, 0.9114581, 0.9155264, 0.9195032, 0.9233879, 0.9271804, - 0.9308801, 0.9344868, 0.938, 0.9414194, 0.9447446, 0.9479754, 0.9511114, - 0.9541523, 0.9570977, 0.9599475, 0.9627013, 0.9653587, 0.9679196, - 0.9703838, 0.972751, 0.9750208, 0.9771932, 0.9792678, 0.9812445, - 0.9831231, 0.9849033, 0.9865851, 0.9881682, 0.9896525, 0.9910379, - 0.9923241, 0.9935111, 0.9945988, 0.995587, 0.9964756, 0.9972646, - 0.9979539, 0.9985433, 0.999033, 0.9994227, 0.9997125, 0.9999022, - 0.9999921, 0.9999819, 0.9998717, 0.9996616, 0.9993514, 0.9989414, + 0.9308801, 0.9344868, 0.938, 0.9414194, 0.9447446, 0.9479754, 0.9511114, + 0.9541523, 0.9570977, 0.9599475, 0.9627013, 0.9653587, 0.9679196, + 0.9703838, 0.972751, 0.9750208, 0.9771932, 0.9792678, 0.9812445, + 0.9831231, 0.9849033, 0.9865851, 0.9881682, 0.9896525, 0.9910379, + 0.9923241, 0.9935111, 0.9945988, 0.995587, 0.9964756, 0.9972646, + 0.9979539, 0.9985433, 0.999033, 0.9994227, 0.9997125, 0.9999022, + 0.9999921, 0.9999819, 0.9998717, 0.9996616, 0.9993514, 0.9989414, 0.9984314, - 0.9978216, 0.997112, 0.9963027, 0.9953938, 0.9943853, 0.9932774, 0.9920702, - 0.9907638, 0.9893582, 0.9878538, 0.9862506, 0.9845487, 0.9827484, - 0.9808499, 0.9788532, 0.9767586, 0.9745664, 0.9722767, 0.9698898, - 0.9674059, 0.9648253, 0.9621482, 0.9593748, 0.9565055, 0.9535406, - 0.9504804, 0.9473251, 0.944075, 0.9407306, 0.937292, 0.9337597, - 0.9301341, 0.9264155, 0.9226042, 0.9187007, 0.9147053, 0.9106184, + 0.9978216, 0.997112, 0.9963027, 0.9953938, 0.9943853, 0.9932774, 0.9920702, + 0.9907638, 0.9893582, 0.9878538, 0.9862506, 0.9845487, 0.9827484, + 0.9808499, 0.9788532, 0.9767586, 0.9745664, 0.9722767, 0.9698898, + 0.9674059, 0.9648253, 0.9621482, 0.9593748, 0.9565055, 0.9535406, + 0.9504804, 0.9473251, 0.944075, 0.9407306, 0.937292, 0.9337597, + 0.9301341, 0.9264155, 0.9226042, 0.9187007, 0.9147053, 0.9106184, 0.9064404, 0.9021719, 0.897813, 0.8933644, 0.8888265, 0.8841997, 0.8794845, - 0.8746814, 0.8697907, 0.8648131, 0.859749, 0.8545989, 0.8493634, 0.8440429, - 0.8386381, 0.8331493, 0.8275773, 0.8219225, 0.8161855, 0.8103669, - 0.8044672, 0.7984871, 0.7924272, 0.786288, 0.7800702, 0.7737743, - 0.7674012, 0.7609512, 0.7544252, 0.7478237, 0.7411475, 0.7343971, - 0.7275733, 0.7206767, 0.7137081, 0.7066681, 0.6995574, 0.6923768, - 0.685127, 0.6778086, 0.6704224, 0.6629692, 0.6554497, 0.6478647, + 0.8746814, 0.8697907, 0.8648131, 0.859749, 0.8545989, 0.8493634, 0.8440429, + 0.8386381, 0.8331493, 0.8275773, 0.8219225, 0.8161855, 0.8103669, + 0.8044672, 0.7984871, 0.7924272, 0.786288, 0.7800702, 0.7737743, + 0.7674012, 0.7609512, 0.7544252, 0.7478237, 0.7411475, 0.7343971, + 0.7275733, 0.7206767, 0.7137081, 0.7066681, 0.6995574, 0.6923768, + 0.685127, 0.6778086, 0.6704224, 0.6629692, 0.6554497, 0.6478647, 0.6402149, 0.6325011, 0.624724, 0.6168844, 0.6089832, 0.601021, 0.5929987, - 0.5849172, 0.5767772, 0.5685794, 0.5603248, 0.5520142, 0.5436484, - 0.5352283, 0.5267546, 0.5182282, 0.50965, 0.5010208, 0.4923416, - 0.4836131, 0.4748363, 0.4660119, 0.457141, 0.4482243, 0.4392629, - 0.4302575, 0.421209, 0.4121185, 0.4029867, 0.3938147, 0.3846032, - 0.3753533, 0.3660659, 0.3567419, 0.3473822, 0.3379877, 0.3285595, - 0.3190984, 0.3096054, 0.3000814, 0.2905274, 0.2809443, 0.2713332, - 0.261695, 0.2520306, 0.2423409, 0.232627, 0.2228899, 0.2131305, + 0.5849172, 0.5767772, 0.5685794, 0.5603248, 0.5520142, 0.5436484, + 0.5352283, 0.5267546, 0.5182282, 0.50965, 0.5010208, 0.4923416, + 0.4836131, 0.4748363, 0.4660119, 0.457141, 0.4482243, 0.4392629, + 0.4302575, 0.421209, 0.4121185, 0.4029867, 0.3938147, 0.3846032, + 0.3753533, 0.3660659, 0.3567419, 0.3473822, 0.3379877, 0.3285595, + 0.3190984, 0.3096054, 0.3000814, 0.2905274, 0.2809443, 0.2713332, + 0.261695, 0.2520306, 0.2423409, 0.232627, 0.2228899, 0.2131305, 0.2033498, 0.1935487, - 0.1837283, 0.1738895, 0.1640333, 0.1541607, 0.1442727, 0.1343703, - 0.1244544, 0.1145261, 0.1045863, 0.09463613, 0.08467644, 0.07470829, - 0.06473266, 0.05475057, 0.044763, 0.03477095, 0.02477542, 0.01477742, - 0.004777943, -0.005222016, -0.01522145, -0.02521937, -0.03521476, - -0.04520663, -0.05519398, -0.06517581, -0.07515112, -0.08511892, - -0.09507821, -0.105028, -0.1149673, -0.124895, -0.1348103, -0.1447121, - -0.1545995, -0.1644713, -0.1743268, -0.1841648, -0.1939844, -0.2037845, + 0.1837283, 0.1738895, 0.1640333, 0.1541607, 0.1442727, 0.1343703, + 0.1244544, 0.1145261, 0.1045863, 0.09463613, 0.08467644, 0.07470829, + 0.06473266, 0.05475057, 0.044763, 0.03477095, 0.02477542, 0.01477742, + 0.004777943, -0.005222016, -0.01522145, -0.02521937, -0.03521476, + -0.04520663, -0.05519398, -0.06517581, -0.07515112, -0.08511892, + -0.09507821, -0.105028, -0.1149673, -0.124895, -0.1348103, -0.1447121, + -0.1545995, -0.1644713, -0.1743268, -0.1841648, -0.1939844, -0.2037845, -0.2135644, -0.2233228, -0.2330589, -0.2427717, - -0.2524603, -0.2621236, -0.2717606, -0.2813705, -0.2909523, -0.300505, - -0.3100276, -0.3195192, -0.3289789, -0.3384056, -0.3477986, -0.3571567, - -0.3664791, -0.3757649, -0.3850131, -0.3942228, -0.4033931, -0.4125231, - -0.4216118, -0.4306583, -0.4396617, -0.4486212, -0.4575359, -0.4664048, - -0.475227, -0.4840018, -0.4927281, -0.5014051, -0.5100321, -0.518608, - -0.527132, -0.5356033, -0.5440211, -0.5523845, -0.5606926, -0.5689447, - -0.5771399, -0.5852773, -0.5933563, -0.6013759, -0.6093353, -0.6172339, + -0.2524603, -0.2621236, -0.2717606, -0.2813705, -0.2909523, -0.300505, + -0.3100276, -0.3195192, -0.3289789, -0.3384056, -0.3477986, -0.3571567, + -0.3664791, -0.3757649, -0.3850131, -0.3942228, -0.4033931, -0.4125231, + -0.4216118, -0.4306583, -0.4396617, -0.4486212, -0.4575359, -0.4664048, + -0.475227, -0.4840018, -0.4927281, -0.5014051, -0.5100321, -0.518608, + -0.527132, -0.5356033, -0.5440211, -0.5523845, -0.5606926, -0.5689447, + -0.5771399, -0.5852773, -0.5933563, -0.6013759, -0.6093353, -0.6172339, -0.6250706, -0.6328449, - -0.640556, -0.6482029, -0.6557851, -0.6633016, -0.6707519, -0.678135, - -0.6854504, -0.6926972, -0.6998747, -0.7069823, -0.7140191, -0.7209845, - -0.7278779, -0.7346984, -0.7414455, -0.7481185, -0.7547166, -0.7612393, - -0.7676858, -0.7740556, -0.7803479, -0.7865623, -0.792698, -0.7987544, - -0.8047309, -0.810627, -0.816442, -0.8221753, -0.8278264, -0.8333948, - -0.8388798, -0.844281, -0.8495977, -0.8548294, -0.8599757, -0.865036, - -0.8700097, -0.8748965, -0.8796958, -0.884407, -0.8890299, -0.8935639, + -0.640556, -0.6482029, -0.6557851, -0.6633016, -0.6707519, -0.678135, + -0.6854504, -0.6926972, -0.6998747, -0.7069823, -0.7140191, -0.7209845, + -0.7278779, -0.7346984, -0.7414455, -0.7481185, -0.7547166, -0.7612393, + -0.7676858, -0.7740556, -0.7803479, -0.7865623, -0.792698, -0.7987544, + -0.8047309, -0.810627, -0.816442, -0.8221753, -0.8278264, -0.8333948, + -0.8388798, -0.844281, -0.8495977, -0.8548294, -0.8599757, -0.865036, + -0.8700097, -0.8748965, -0.8796958, -0.884407, -0.8890299, -0.8935639, -0.8980085, -0.9023633, - -0.9066279, -0.9108018, -0.9148846, -0.918876, -0.9227754, -0.9265826, - -0.9302971, -0.9339186, -0.9374467, -0.9408811, -0.9442213, -0.9474672, - -0.9506183, -0.9536743, -0.956635, -0.9595, -0.9622691, -0.9649419, - -0.9675183, -0.9699979, -0.9723805, -0.9746658, -0.9768537, -0.9789439, - -0.9809362, -0.9828305, -0.9846264, -0.9863239, -0.9879227, -0.9894227, - -0.9908239, -0.9921259, -0.9933288, -0.9944322, -0.9954363, -0.9963408, - -0.9971456, -0.9978508, -0.9984561, -0.9989617, -0.9993673, -0.999673, + -0.9066279, -0.9108018, -0.9148846, -0.918876, -0.9227754, -0.9265826, + -0.9302971, -0.9339186, -0.9374467, -0.9408811, -0.9442213, -0.9474672, + -0.9506183, -0.9536743, -0.956635, -0.9595, -0.9622691, -0.9649419, + -0.9675183, -0.9699979, -0.9723805, -0.9746658, -0.9768537, -0.9789439, + -0.9809362, -0.9828305, -0.9846264, -0.9863239, -0.9879227, -0.9894227, + -0.9908239, -0.9921259, -0.9933288, -0.9944322, -0.9954363, -0.9963408, + -0.9971456, -0.9978508, -0.9984561, -0.9989617, -0.9993673, -0.999673, -0.9998787, -0.9999844, - -0.9999902, -0.9998959, -0.9997017, -0.9994075, -0.9990134, -0.9985193, - -0.9979254, -0.9972317, -0.9964383, -0.9955452, -0.9945526, -0.9934605, - -0.9922691, -0.9909785, -0.9895887, -0.9881001, -0.9865125, -0.9848264, - -0.9830417, -0.9811588, -0.9791777, -0.9770988, -0.9749221, -0.9726479, - -0.9702765, -0.967808, -0.9652427, -0.962581, -0.959823, -0.956969, - -0.9540192, -0.9509742, -0.947834, -0.944599, -0.9412695, -0.9378459, - -0.9343286, -0.9307178, -0.9270139, -0.9232174, -0.9193285, -0.9153477, + -0.9999902, -0.9998959, -0.9997017, -0.9994075, -0.9990134, -0.9985193, + -0.9979254, -0.9972317, -0.9964383, -0.9955452, -0.9945526, -0.9934605, + -0.9922691, -0.9909785, -0.9895887, -0.9881001, -0.9865125, -0.9848264, + -0.9830417, -0.9811588, -0.9791777, -0.9770988, -0.9749221, -0.9726479, + -0.9702765, -0.967808, -0.9652427, -0.962581, -0.959823, -0.956969, + -0.9540192, -0.9509742, -0.947834, -0.944599, -0.9412695, -0.9378459, + -0.9343286, -0.9307178, -0.9270139, -0.9232174, -0.9193285, -0.9153477, -0.9112754, -0.9071119, - -0.9028577, -0.8985133, -0.894079, -0.8895552, -0.8849425, -0.8802414, - -0.8754522, -0.8705754, -0.8656116, -0.8605613, -0.8554249, -0.8502029, - -0.844896, -0.8395045, -0.8340291, -0.8284702, -0.8228286, -0.8171046, - -0.811299, -0.8054122, -0.7994449, -0.7933976, -0.787271, -0.7810657, - -0.7747822, -0.7684214, -0.7619836, -0.7554696, -0.7488801, -0.7422158, - -0.7354771, -0.728665, -0.7217799, -0.7148228, -0.7077941, -0.7006946, - -0.6935251, -0.6862862, -0.6789787, -0.6716033, -0.6641607, -0.6566517, + -0.9028577, -0.8985133, -0.894079, -0.8895552, -0.8849425, -0.8802414, + -0.8754522, -0.8705754, -0.8656116, -0.8605613, -0.8554249, -0.8502029, + -0.844896, -0.8395045, -0.8340291, -0.8284702, -0.8228286, -0.8171046, + -0.811299, -0.8054122, -0.7994449, -0.7933976, -0.787271, -0.7810657, + -0.7747822, -0.7684214, -0.7619836, -0.7554696, -0.7488801, -0.7422158, + -0.7354771, -0.728665, -0.7217799, -0.7148228, -0.7077941, -0.7006946, + -0.6935251, -0.6862862, -0.6789787, -0.6716033, -0.6641607, -0.6566517, -0.6490771, -0.6414375, - -0.6337339, -0.6259668, -0.6181371, -0.6102456, -0.6022931, -0.5942804, - -0.5862082, -0.5780774, -0.5698889, -0.5616433, -0.5533416, -0.5449845, - -0.5365729, -0.5281077, -0.5195897, -0.5110196, -0.5023986, -0.4937272, - -0.4850065, -0.4762373, -0.4674205, -0.4585569, -0.4496475, -0.4406931, - -0.4316946, -0.422653, -0.4135691, -0.4044438, -0.3952781, -0.3860729, - -0.3768291, -0.3675475, -0.3582293, -0.3488752, -0.3394862, -0.3300633, - -0.3206073, -0.3111193, -0.3016002, -0.292051, -0.2824725, -0.2728658, + -0.6337339, -0.6259668, -0.6181371, -0.6102456, -0.6022931, -0.5942804, + -0.5862082, -0.5780774, -0.5698889, -0.5616433, -0.5533416, -0.5449845, + -0.5365729, -0.5281077, -0.5195897, -0.5110196, -0.5023986, -0.4937272, + -0.4850065, -0.4762373, -0.4674205, -0.4585569, -0.4496475, -0.4406931, + -0.4316946, -0.422653, -0.4135691, -0.4044438, -0.3952781, -0.3860729, + -0.3768291, -0.3675475, -0.3582293, -0.3488752, -0.3394862, -0.3300633, + -0.3206073, -0.3111193, -0.3016002, -0.292051, -0.2824725, -0.2728658, -0.2632318, -0.2535715, - -0.2438858, -0.2341757, -0.2244422, -0.2146863, -0.2049089, -0.195111, - -0.1852936, -0.1754577, -0.1656042, -0.1557341, -0.1458485, -0.1359483, - -0.1260345, -0.1161081, -0.1061701, -0.09622151, -0.08626327, -0.0762964, - -0.06632189, -0.05634077, -0.046354, -0.0363626, -0.02636756, - -0.01636988, -0.006370571, 0.003629378, 0.01362896, 0.02362719, - 0.03362305, 0.04361555, 0.05360368, 0.06358646, 0.07356288, 0.08353194, - 0.09349265, 0.103444, 0.113385, 0.1233147, 0.133232, 0.1431361, + -0.2438858, -0.2341757, -0.2244422, -0.2146863, -0.2049089, -0.195111, + -0.1852936, -0.1754577, -0.1656042, -0.1557341, -0.1458485, -0.1359483, + -0.1260345, -0.1161081, -0.1061701, -0.09622151, -0.08626327, -0.0762964, + -0.06632189, -0.05634077, -0.046354, -0.0363626, -0.02636756, + -0.01636988, -0.006370571, 0.003629378, 0.01362896, 0.02362719, + 0.03362305, 0.04361555, 0.05360368, 0.06358646, 0.07356288, 0.08353194, + 0.09349265, 0.103444, 0.113385, 0.1233147, 0.133232, 0.1431361, 0.1530258, 0.1629002, 0.1727583, 0.1825991, - 0.1924217, 0.2022251, 0.2120082, 0.2217701, 0.2315098, 0.2412264, - 0.2509189, 0.2605863, 0.2702276, 0.2798419, 0.2894282, 0.2989855, - 0.308513, 0.3180096, 0.3274744, 0.3369065, 0.3463049, 0.3556686, - 0.3649968, 0.3742885, 0.3835427, 0.3927587, 0.4019353, 0.4110717, - 0.420167, 0.4292203, 0.4382307, 0.4471973, 0.4561191, 0.4649954, - 0.4738251, 0.4826075, 0.4913416, 0.5000265, 0.5086614, 0.5172455, - 0.5257779, 0.5342577, 0.5426841, 0.5510561, 0.5593731, 0.5676342, + 0.1924217, 0.2022251, 0.2120082, 0.2217701, 0.2315098, 0.2412264, + 0.2509189, 0.2605863, 0.2702276, 0.2798419, 0.2894282, 0.2989855, + 0.308513, 0.3180096, 0.3274744, 0.3369065, 0.3463049, 0.3556686, + 0.3649968, 0.3742885, 0.3835427, 0.3927587, 0.4019353, 0.4110717, + 0.420167, 0.4292203, 0.4382307, 0.4471973, 0.4561191, 0.4649954, + 0.4738251, 0.4826075, 0.4913416, 0.5000265, 0.5086614, 0.5172455, + 0.5257779, 0.5342577, 0.5426841, 0.5510561, 0.5593731, 0.5676342, 0.5758385, 0.5839852, - 0.5920735, 0.6001026, 0.6080717, 0.61598, 0.6238267, 0.631611, 0.6393321, - 0.6469893, 0.6545818, 0.6621089, 0.6695698, 0.6769636, 0.6842899, - 0.6915476, 0.6987363, 0.705855, 0.7129031, 0.71988, 0.7267848, 0.7336171, - 0.7403759, 0.7470607, 0.7536708, 0.7602055, 0.7666642, 0.7730463, - 0.779351, 0.7855778, 0.7917261, 0.7977951, 0.8037844, 0.8096933, - 0.8155213, 0.8212677, 0.826932, 0.8325136, 0.8380119, 0.8434264, + 0.5920735, 0.6001026, 0.6080717, 0.61598, 0.6238267, 0.631611, 0.6393321, + 0.6469893, 0.6545818, 0.6621089, 0.6695698, 0.6769636, 0.6842899, + 0.6915476, 0.6987363, 0.705855, 0.7129031, 0.71988, 0.7267848, 0.7336171, + 0.7403759, 0.7470607, 0.7536708, 0.7602055, 0.7666642, 0.7730463, + 0.779351, 0.7855778, 0.7917261, 0.7977951, 0.8037844, 0.8096933, + 0.8155213, 0.8212677, 0.826932, 0.8325136, 0.8380119, 0.8434264, 0.8487566, 0.8540019, 0.8591618, 0.8642358, 0.8692234, 0.8741241, - 0.8789373, 0.8836626, 0.8882996, 0.8928478, 0.8973066, 0.9016758, - 0.9059547, 0.9101431, 0.9142405, 0.9182464, 0.9221606, 0.9259824, - 0.9297118, 0.9333481, 0.9368911, 0.9403404, 0.9436957, 0.9469566, - 0.9501228, 0.953194, 0.9561699, 0.9590501, 0.9618345, 0.9645227, - 0.9671144, 0.9696094, 0.9720075, 0.9743084, 0.9765118, 0.9786175, - 0.9806255, 0.9825354, 0.9843469, 0.9860601, 0.9876747, 0.9891905, - 0.9906074, 0.9919252, 0.9931438, 0.9942631, 0.995283, 0.9962034, + 0.8789373, 0.8836626, 0.8882996, 0.8928478, 0.8973066, 0.9016758, + 0.9059547, 0.9101431, 0.9142405, 0.9182464, 0.9221606, 0.9259824, + 0.9297118, 0.9333481, 0.9368911, 0.9403404, 0.9436957, 0.9469566, + 0.9501228, 0.953194, 0.9561699, 0.9590501, 0.9618345, 0.9645227, + 0.9671144, 0.9696094, 0.9720075, 0.9743084, 0.9765118, 0.9786175, + 0.9806255, 0.9825354, 0.9843469, 0.9860601, 0.9876747, 0.9891905, + 0.9906074, 0.9919252, 0.9931438, 0.9942631, 0.995283, 0.9962034, 0.9970241, 0.9977452, - 0.9983664, 0.9988878, 0.9993094, 0.999631, 0.9998527, 0.9999743, 0.999996, - 0.9999177, 0.9997393, 0.9994611, 0.9990828, 0.9986047, 0.9980267, - 0.9973488, 0.9965713, 0.9956941, 0.9947174, 0.9936411, 0.9924655, - 0.9911907, 0.9898167, 0.9883437, 0.9867719, 0.9851015, 0.9833325, - 0.9814652, 0.9794998, 0.9774364, 0.9752753, 0.9730166, 0.9706606, - 0.9682076, 0.9656578, 0.9630114, 0.9602687, 0.9574299, 0.9544954, + 0.9983664, 0.9988878, 0.9993094, 0.999631, 0.9998527, 0.9999743, 0.999996, + 0.9999177, 0.9997393, 0.9994611, 0.9990828, 0.9986047, 0.9980267, + 0.9973488, 0.9965713, 0.9956941, 0.9947174, 0.9936411, 0.9924655, + 0.9911907, 0.9898167, 0.9883437, 0.9867719, 0.9851015, 0.9833325, + 0.9814652, 0.9794998, 0.9774364, 0.9752753, 0.9730166, 0.9706606, + 0.9682076, 0.9656578, 0.9630114, 0.9602687, 0.9574299, 0.9544954, 0.9514655, 0.9483404, 0.9451205, 0.9418061, 0.9383975, 0.934895, 0.9312991, - 0.9276101, 0.9238282, 0.9199541, 0.9159878, 0.9119301, 0.9077811, - 0.9035413, 0.8992112, 0.8947912, 0.8902817, 0.8856831, 0.880996, - 0.8762208, 0.871358, 0.866408, 0.8613714, 0.8562487, 0.8510403, - 0.8457468, 0.8403688, 0.8349067, 0.8293611, 0.8237326, 0.8180218, - 0.8122291, 0.8063552, 0.8004007, 0.7943661, 0.7882521, 0.7820593, - 0.7757882, 0.7694396, 0.763014, 0.7565122, 0.7499346, 0.7432821, - 0.7365553, 0.7297548, 0.7228814, 0.7159356, 0.7089183, 0.70183, + 0.9276101, 0.9238282, 0.9199541, 0.9159878, 0.9119301, 0.9077811, + 0.9035413, 0.8992112, 0.8947912, 0.8902817, 0.8856831, 0.880996, + 0.8762208, 0.871358, 0.866408, 0.8613714, 0.8562487, 0.8510403, + 0.8457468, 0.8403688, 0.8349067, 0.8293611, 0.8237326, 0.8180218, + 0.8122291, 0.8063552, 0.8004007, 0.7943661, 0.7882521, 0.7820593, + 0.7757882, 0.7694396, 0.763014, 0.7565122, 0.7499346, 0.7432821, + 0.7365553, 0.7297548, 0.7228814, 0.7159356, 0.7089183, 0.70183, 0.6946716, 0.6874437, - 0.6801471, 0.6727825, 0.6653506, 0.6578521, 0.6502879, 0.6426586, - 0.6349651, 0.627208, 0.6193883, 0.6115066, 0.6035637, 0.5955606, - 0.5874978, 0.5793763, 0.5711969, 0.5629603, 0.5546675, 0.5463191, - 0.5379162, 0.5294595, 0.5209498, 0.512388, 0.503775, 0.4951116, - 0.4863987, 0.4776371, 0.4688278, 0.4599716, 0.4510695, 0.4421222, - 0.4331307, 0.4240958, 0.4150186, 0.4058999, 0.3967406, 0.3875416, - 0.3783038, 0.3690283, 0.3597158, 0.3503673, 0.3409838, 0.3315663, + 0.6801471, 0.6727825, 0.6653506, 0.6578521, 0.6502879, 0.6426586, + 0.6349651, 0.627208, 0.6193883, 0.6115066, 0.6035637, 0.5955606, + 0.5874978, 0.5793763, 0.5711969, 0.5629603, 0.5546675, 0.5463191, + 0.5379162, 0.5294595, 0.5209498, 0.512388, 0.503775, 0.4951116, + 0.4863987, 0.4776371, 0.4688278, 0.4599716, 0.4510695, 0.4421222, + 0.4331307, 0.4240958, 0.4150186, 0.4058999, 0.3967406, 0.3875416, + 0.3783038, 0.3690283, 0.3597158, 0.3503673, 0.3409838, 0.3315663, 0.3221155, 0.3126326 }; diff --git a/ncdap_test/test_partvar2.c b/ncdap_test/test_partvar2.c index 3d2251808..196550725 100644 --- a/ncdap_test/test_partvar2.c +++ b/ncdap_test/test_partvar2.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* Test part variable fetch code */ @@ -9,7 +19,7 @@ Test part variable fetch code #include "ncdispatch.h" #include "nctestserver.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: Bands\:PolarGrid = 3 ; @@ -44,7 +54,7 @@ variables: /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -140,7 +150,7 @@ subslice(int rank, size_t* count, int startdim) { int i; size_t offset = 1; - for(i=startdim;irank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -233,1410 +243,1410 @@ odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } /* Capture the complete set of data */ static float target_content[YDim_UTMGrid*XDim_UTMGrid] = { - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, - 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3.28348221156809e-85, 1.32317747557569e+199, 1.18832008840094e+190, + 1.35441148522879e-306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1.20477907738388e-319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; diff --git a/ncdap_test/test_vara.c b/ncdap_test/test_vara.c index b819a29c5..aee2d2865 100644 --- a/ncdap_test/test_vara.c +++ b/ncdap_test/test_vara.c @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ #include "config.h" #include #include @@ -5,7 +15,7 @@ #include "netcdf.h" #include "t_srcdir.h" -/* The DDS in netcdf classic form is as follows: +/* The DDS in netcdf classic form is as follows: netcdf test { dimensions: t = 10 ; @@ -37,7 +47,7 @@ variables: /* Setup an odometer */ typedef struct Odom { int rank; - size_t* index; + size_t* index; size_t* stop; size_t* start; size_t* count; @@ -165,7 +175,7 @@ static void odom_reclaim(Odom* odom) } -static void odom_set(Odom* odom, size_t* start, size_t* count) +static void odom_set(Odom* odom, size_t* start, size_t* count) { int i; /* Init the odometer */ @@ -187,7 +197,7 @@ static int odom_more(Odom* odom) static int odom_incr(Odom* odom) { int i; /* do not make unsigned */ - if(odom->rank == 0) return 0; + if(odom->rank == 0) return 0; for(i=odom->rank-1;i>=0;i--) { odom->index[i]++; if(odom->index[i] < odom->stop[i]) break; @@ -205,366 +215,366 @@ static size_t odom_count(Odom* odom) for(i=0;irank;i++) { offset *= odom->count[i]; offset += odom->index[i]; - } + } return offset; } #ifdef IGNORE static float threeD_data[X][Y][Z] = { - 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, - 0.999200106660978, 0.998750260394966, 0.998200539935204, + 1, 0.999950000416665, 0.999800006666578, 0.999550033748988, + 0.999200106660978, 0.998750260394966, 0.998200539935204, 0.99755100025328, 0.996801706302619, 0.995952733011994, - 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, - 0.990215996212637, 0.988771077936042, 0.987227283375627, + 0.995004165278026, 0.993956097956697, 0.992808635853866, 0.991561893714788, + 0.990215996212637, 0.988771077936042, 0.987227283375627, 0.985584766909561, 0.983843692788121, 0.98200423511727, - 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, - 0.97133797485203, 0.968912421710645, 0.966389978134513, + 0.980066577841242, 0.978030914724148, 0.975897449330606, 0.973666395005375, + 0.97133797485203, 0.968912421710645, 0.966389978134513, 0.963770896365891, 0.961055438310771, 0.958243875512697, - 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, - 0.942754665528346, 0.939372712847379, 0.935896823677935, + 0.955336489125606, 0.952333569885713, 0.949235418082441, 0.946042343528387, + 0.942754665528346, 0.939372712847379, 0.935896823677935, 0.932327345606034, 0.92866463557651, 0.924909059857313, - 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, - 0.904751663219963, 0.900447102352677, 0.896052497525525, + 0.921060994002885, 0.917120822816605, 0.913088940312308, 0.908965749674885, + 0.904751663219963, 0.900447102352677, 0.896052497525525, 0.891568288195329, 0.886994922779284, 0.882332858610121, - 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, - 0.857708681363824, 0.852524522059506, 0.847255111013416, + 0.877582561890373, 0.872744507645751, 0.86781917967765, 0.862807070514761, + 0.857708681363824, 0.852524522059506, 0.847255111013416, 0.841900975162269, 0.836462649915187, 0.830940679100164, - 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, - 0.802095757884293, 0.796083798549056, 0.789992231497365, + 0.825335614909678, 0.819648017845479, 0.813878456662534, 0.808027508312152, + 0.802095757884293, 0.796083798549056, 0.789992231497365, 0.783821665880849, 0.777572718750928, 0.771246014997107, - 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, - 0.738468558729588, 0.731688868873821, 0.724836010740905, + 0.764842187284488, 0.758361875990508, 0.751805729140895, 0.74517440234487, + 0.738468558729588, 0.731688868873821, 0.724836010740905, 0.717910669610943, 0.710913538012277, 0.703845315652236, - 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, - 0.667462825841308, 0.659983145884982, 0.652437468164052, + 0.696706709347165, 0.689498432951747, 0.682221207287614, 0.674875760071267, + 0.667462825841308, 0.659983145884982, 0.652437468164052, 0.644826547240001, 0.63715114419858, 0.629412026573697, - 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, - 0.589788025031098, 0.581683089463883, 0.573519986072457, + 0.621609968270664, 0.613745749488812, 0.605820156643463, 0.597833982287298, + 0.589788025031098, 0.581683089463883, 0.573519986072457, 0.565299531160354, 0.557022546766217, 0.548689860581588, - 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, - 0.506220257232778, 0.497571047891727, 0.488872081860527, + 0.54030230586814, 0.531860721374355, 0.52336595125165, 0.514818844969955, + 0.506220257232778, 0.497571047891727, 0.488872081860527, 0.480124229028534, 0.47132836417374, 0.462485366875301, - 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, - 0.417594503958358, 0.408487440884157, 0.399339529406273, + 0.453596121425577, 0.444661516741707, 0.435682446276712, 0.426659807930157, + 0.417594503958358, 0.408487440884157, 0.399339529406273, 0.39015168430823, 0.380924824366882, 0.371659872260533, - 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, - 0.324796284438776, 0.315322362395269, 0.305816908378289, + 0.362357754476674, 0.35301940121933, 0.343645746316047, 0.334237727124503, + 0.324796284438776, 0.315322362395269, 0.305816908378289, 0.296280872925319, 0.286715209631956, 0.277120875056558, - 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, - 0.228752807808459, 0.219006687093041, 0.209238665891419, + 0.267498828624587, 0.25785003253267, 0.248175451652373, 0.238476053433723, + 0.228752807808459, 0.219006687093041, 0.209238665891419, 0.199449720997573, 0.189640831297834, 0.179812977673, - 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, - 0.130423708738146, 0.120502769367367, 0.11056977982007, + 0.169967142900241, 0.160104311554831, 0.150225469911686, 0.140331605846737, + 0.130423708738146, 0.120502769367367, 0.11056977982007, 0.100625733386932, 0.0906716244643097, 0.0807084484548006, - 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, - 0.040785011241591, 0.0307914590824661, 0.0207948278030924, - 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, + 0.0707372016677029, 0.0607588812193859, 0.0507744849335792, + 0.040785011241591, 0.0307914590824661, 0.0207948278030924, + 0.0107961170582674, 0.000796326710733263, -0.00920354326880834, -0.0192024929016926, - -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, - -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, - -0.089085416936459, -0.099041036598728, -0.108986752239871, + -0.0291995223012888, -0.0391936317729877, -0.0491838219141706, + -0.0591690937141481, -0.0691484486540619, -0.0791208888067339, + -0.089085416936459, -0.099041036598728, -0.108986752239871, -0.118921569296612, - -0.128844494295525, -0.138754534952378, -0.148650700271364, - -0.158532000644198, -0.168397447949077, -0.178246055649492, - -0.18807683889288, -0.197888814609109, -0.207681001608784, + -0.128844494295525, -0.138754534952378, -0.148650700271364, + -0.158532000644198, -0.168397447949077, -0.178246055649492, + -0.18807683889288, -0.197888814609109, -0.207681001608784, -0.217452420681365, - -0.227202094693087, -0.236929048684675, -0.246632309968834, - -0.256310908227523, -0.26596387560898, -0.275590246824513, - -0.285189059245021, -0.294759352997261, -0.304300171059833, + -0.227202094693087, -0.236929048684675, -0.246632309968834, + -0.256310908227523, -0.26596387560898, -0.275590246824513, + -0.285189059245021, -0.294759352997261, -0.304300171059833, -0.313810559358882, - -0.323289566863503, -0.332736245680845, -0.342149651150898, - -0.35152884194096, -0.360872880139767, -0.370180831351287, - -0.379451764788155, -0.388684753364752, -0.397878873789916, + -0.323289566863503, -0.332736245680845, -0.342149651150898, + -0.35152884194096, -0.360872880139767, -0.370180831351287, + -0.379451764788155, -0.388684753364752, -0.397878873789916, -0.407033206659266, - -0.416146836547142, -0.425218852098152, -0.4342483461183, - -0.443234415665709, -0.452176162140912, -0.461072691376713, - -0.469923113727602, -0.47872654415872, -0.487482102334359, + -0.416146836547142, -0.425218852098152, -0.4342483461183, + -0.443234415665709, -0.452176162140912, -0.461072691376713, + -0.469923113727602, -0.47872654415872, -0.487482102334359, -0.496188912705999, - -0.504846104599858, -0.513452812303959, -0.522008175154707, - -0.530511337622945, -0.538961449399512, -0.547357665480271, - -0.555699146250613, -0.56398505756941, -0.572214570852437, + -0.504846104599858, -0.513452812303959, -0.522008175154707, + -0.530511337622945, -0.538961449399512, -0.547357665480271, + -0.555699146250613, -0.56398505756941, -0.572214570852437, -0.580386863155222, - -0.588501117255346, -0.59655652173416, -0.60455227105793, - -0.612487565658385, -0.62036161201268, -0.628173622722739, - -0.635922816594002, -0.643608418713541, -0.651229660527546, + -0.588501117255346, -0.59655652173416, -0.60455227105793, + -0.612487565658385, -0.62036161201268, -0.628173622722739, + -0.635922816594002, -0.643608418713541, -0.651229660527546, -0.658785779918188, - -0.666276021279824, -0.673699635594561, -0.681055880507152, - -0.688344020399238, -0.695563326462902, -0.702713076773554, - -0.70979255636212, -0.716801057286543, -0.723737878702569, + -0.666276021279824, -0.673699635594561, -0.681055880507152, + -0.688344020399238, -0.695563326462902, -0.702713076773554, + -0.70979255636212, -0.716801057286543, -0.723737878702569, -0.730602326933837, - -0.737393715541245, -0.744111365391593, -0.750754604725491, - -0.757322769224544, -0.763815202077774, -0.770231254047307, - -0.776570283533293, -0.782831656638065, -0.789014747229531, + -0.737393715541245, -0.744111365391593, -0.750754604725491, + -0.757322769224544, -0.763815202077774, -0.770231254047307, + -0.776570283533293, -0.782831656638065, -0.789014747229531, -0.795118937003784, - -0.801143615546934, -0.807088180396146, -0.81295203709989, - -0.818734599277382, -0.824435288677222, -0.830053535235222, - -0.835588777131408, -0.841040460846201, -0.846408041215776, + -0.801143615546934, -0.807088180396146, -0.81295203709989, + -0.818734599277382, -0.824435288677222, -0.830053535235222, + -0.835588777131408, -0.841040460846201, -0.846408041215776, -0.851690981486566, - -0.856888753368947, -0.862000837090063, -0.867026721445802, - -0.871965903851917, -0.876817890394281, -0.881582195878286, - -0.886258343877352, -0.890845866780576, -0.895344305839492, + -0.856888753368947, -0.862000837090063, -0.867026721445802, + -0.871965903851917, -0.876817890394281, -0.881582195878286, + -0.886258343877352, -0.890845866780576, -0.895344305839492, -0.899753211213941, - -0.904072142017061, -0.90830066635937, -0.912438361391958, - -0.916484813348769, -0.920439617587981, -0.924302378632464, - -0.928072710209333, -0.931750235288572, -0.935334586120739, + -0.904072142017061, -0.90830066635937, -0.912438361391958, + -0.916484813348769, -0.920439617587981, -0.924302378632464, + -0.928072710209333, -0.931750235288572, -0.935334586120739, -0.938825404273736, - -0.942222340668658, -0.945525055614696, -0.948733218843107, - -0.951846509540242, -0.954864616379626, -0.95778723755309, - -0.960614080800952, -0.963344863441243, -0.965979312397975, + -0.942222340668658, -0.945525055614696, -0.948733218843107, + -0.951846509540242, -0.954864616379626, -0.95778723755309, + -0.960614080800952, -0.963344863441243, -0.965979312397975, -0.968517164228447, - -0.970958165149591, -0.973302071063349, -0.975548647581083, - -0.977697670047013, -0.979748923560684, -0.981702202998454, - -0.983557313034006, -0.985314068157884, -0.986972292696038, + -0.970958165149591, -0.973302071063349, -0.975548647581083, + -0.977697670047013, -0.979748923560684, -0.981702202998454, + -0.983557313034006, -0.985314068157884, -0.986972292696038, -0.988531820827396, - -0.989992496600445, -0.991354173948826, -0.992616716705937, - -0.993779998618556, -0.994843903359459, -0.995808324539061, - -0.996673165716047, -0.997438340407019, -0.998103772095146, + -0.989992496600445, -0.991354173948826, -0.992616716705937, + -0.993779998618556, -0.994843903359459, -0.995808324539061, + -0.996673165716047, -0.997438340407019, -0.998103772095146, -0.998669394237814, - -0.999135150273279, -0.999500993626328, -0.999766887712928, - -0.999932805943894, -0.99999873172754, -0.999964658471342, - -0.999830589582598, -0.999596538468086, -0.999262528532721, + -0.999135150273279, -0.999500993626328, -0.999766887712928, + -0.999932805943894, -0.99999873172754, -0.999964658471342, + -0.999830589582598, -0.999596538468086, -0.999262528532721, -0.998828593177219, - -0.998294775794753, -0.997661129766618, -0.996927718456887, - -0.996094615206081, -0.99516190332383, -0.994129676080546, - -0.992998036698093, -0.991767098339465, -0.990436984097473, + -0.998294775794753, -0.997661129766618, -0.996927718456887, + -0.996094615206081, -0.99516190332383, -0.994129676080546, + -0.992998036698093, -0.991767098339465, -0.990436984097473, -0.989007826982433, - -0.987479769908865, -0.985852965681203, -0.984127576978514, - -0.982303776338232, -0.980381746138899, -0.978361678581934, - -0.97624377567241, -0.974028249198852, -0.971715320712062, + -0.987479769908865, -0.985852965681203, -0.984127576978514, + -0.982303776338232, -0.980381746138899, -0.978361678581934, + -0.97624377567241, -0.974028249198852, -0.971715320712062, -0.969305221502961, - -0.966798192579461, -0.964194484642366, -0.961494358060299, - -0.958698082843669, -0.955805938617666, -0.952818214594305, - -0.949735209543496, -0.946557231763177, -0.943284599048476, + -0.966798192579461, -0.964194484642366, -0.961494358060299, + -0.958698082843669, -0.955805938617666, -0.952818214594305, + -0.949735209543496, -0.946557231763177, -0.943284599048476, -0.939917638659938, - -0.936456687290796, -0.932902091033304, -0.929254205344123, - -0.925513395008784, -0.921680034105203, -0.917754505966276, - -0.913737203141545, -0.909628527357945, -0.90542888947963, + -0.936456687290796, -0.932902091033304, -0.929254205344123, + -0.925513395008784, -0.921680034105203, -0.917754505966276, + -0.913737203141545, -0.909628527357945, -0.90542888947963, -0.901138709466889, - -0.896758416334147, -0.892288448107068, -0.88772925177875, - -0.883081283265026, -0.878345007358874, -0.873520897683938, - -0.868609436647165, -0.863611115390566, -0.858526433742102, + -0.896758416334147, -0.892288448107068, -0.88772925177875, + -0.883081283265026, -0.878345007358874, -0.873520897683938, + -0.868609436647165, -0.863611115390566, -0.858526433742102, -0.8533559001657, - -0.848100031710408, -0.842759353958694, -0.83733440097388, - -0.831825715246746, -0.826233847641272, -0.820559357339561, - -0.814802811785913, -0.808964786630086, -0.803045865669731, + -0.848100031710408, -0.842759353958694, -0.83733440097388, + -0.831825715246746, -0.826233847641272, -0.820559357339561, + -0.814802811785913, -0.808964786630086, -0.803045865669731, -0.797046640792012, - -0.790967711914417, -0.784809686924768, -0.778573181620433, - -0.772258819646744, -0.765867232434637, -0.759399059137508, - -0.752854946567295, -0.746235549129803, -0.739541528759258, + -0.790967711914417, -0.784809686924768, -0.778573181620433, + -0.772258819646744, -0.765867232434637, -0.759399059137508, + -0.752854946567295, -0.746235549129803, -0.739541528759258, -0.73277355485212, - -0.72593230420014, -0.719018460922681, -0.71203271639831, - -0.704975769195658, -0.697848325003564, -0.690651096560507, - -0.683384803583336, -0.676050172695292, -0.668647937353351, + -0.72593230420014, -0.719018460922681, -0.71203271639831, + -0.704975769195658, -0.697848325003564, -0.690651096560507, + -0.683384803583336, -0.676050172695292, -0.668647937353351, -0.66117883777488, - -0.653643620863612, -0.646043040134959, -0.63837785564066, - -0.630648833892775, -0.622856747787041, -0.615002376525574, - -0.607086505538955, -0.599109926407685, -0.591073436783031, + -0.653643620863612, -0.646043040134959, -0.63837785564066, + -0.630648833892775, -0.622856747787041, -0.615002376525574, + -0.607086505538955, -0.599109926407685, -0.591073436783031, -0.582977840307259, - -0.574823946533269, -0.566612570843644, -0.55834453436911, - -0.550020663906425, -0.541641791835699, -0.533208756037154, - -0.524722399807346, -0.516183571774825, -0.507593125815277, + -0.574823946533269, -0.566612570843644, -0.55834453436911, + -0.550020663906425, -0.541641791835699, -0.533208756037154, + -0.524722399807346, -0.516183571774825, -0.507593125815277, -0.49895192096614, - -0.490260821340699, -0.481520696041674, -0.47273241907431, - -0.46389686925898, -0.455014930143305, -0.446087489913793, - -0.437115441307028, -0.428099681520394, -0.419041112122356, + -0.490260821340699, -0.481520696041674, -0.47273241907431, + -0.46389686925898, -0.455014930143305, -0.446087489913793, + -0.437115441307028, -0.428099681520394, -0.419041112122356, -0.409940638962306, - -0.400799172079975, -0.391617625614436, -0.38239691771268, - -0.373137970437818, -0.363841709676858, -0.354509065048132, - -0.345140969808323, -0.335738360759151, -0.326302178153684, + -0.400799172079975, -0.391617625614436, -0.38239691771268, + -0.373137970437818, -0.363841709676858, -0.354509065048132, + -0.345140969808323, -0.335738360759151, -0.326302178153684, -0.316833365602319, - -0.307332869978419, -0.297801641323633, -0.288240632752882, - -0.278650800359055, -0.269033103117399, -0.259388502789626, - -0.249717963827731, -0.24002245327755, -0.230302940682059, + -0.307332869978419, -0.297801641323633, -0.288240632752882, + -0.278650800359055, -0.269033103117399, -0.259388502789626, + -0.249717963827731, -0.24002245327755, -0.230302940682059, -0.220560397984419, - -0.21079579943078, -0.20101012147286, -0.191204342670302, - -0.181379443592811, -0.171536406722112, -0.161676216353687, - -0.151799858498356, -0.141908320783673, -0.13200259235517, + -0.21079579943078, -0.20101012147286, -0.191204342670302, + -0.181379443592811, -0.171536406722112, -0.161676216353687, + -0.151799858498356, -0.141908320783673, -0.13200259235517, -0.122083663777433, - -0.112152526935055, -0.102210174933442, -0.0922576019995117, - -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, - -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, + -0.112152526935055, -0.102210174933442, -0.0922576019995117, + -0.0822958033822624, -0.0723257752532545, -0.0623485146069917, + -0.0523650191612259, -0.0423762872571815, -0.0323833177597247, -0.0223871099574771, - -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, - 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, - 0.0475930341377878, 0.057579156123846, 0.0675595202422752, + -0.0123886634628906, -0.00238897811228154, 0.0076109461341479, + 0.0176101092923073, 0.0276075114542115, 0.0376021528879766, + 0.0475930341377878, 0.057579156123846, 0.0675595202422752, 0.0775331284649787, - 0.0874989834394464, 0.0974560885884857, 0.10740344820988, - 0.117340067575955, 0.127264953033056, 0.137177112100907, + 0.0874989834394464, 0.0974560885884857, 0.10740344820988, + 0.117340067575955, 0.127264953033056, 0.137177112100907, 0.147075553571863, 0.156959287610023, 0.166827325850222, 0.176678681496857, - 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, - 0.225650805269396, 0.235381442954451, 0.245088542691362, + 0.186512369422576, 0.196327406266778, 0.206122810533958, 0.215897602691854, + 0.225650805269396, 0.235381442954451, 0.245088542691362, 0.254771133778243, 0.264428247964056, 0.274058919545427, - 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, - 0.321782029249722, 0.331233920236754, 0.340652688107789, + 0.283662185463226, 0.293237085398863, 0.302782661870324, 0.312297960327916, + 0.321782029249722, 0.331233920236754, 0.340652688107789, 0.350037390993891, 0.35938709043259, 0.368700851461733, - 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, - 0.414698113560782, 0.423776817679428, 0.432813144469452, + 0.37797774271298, 0.387216836504937, 0.396417208935922, 0.405577939976361, + 0.414698113560782, 0.423776817679428, 0.432813144469452, 0.441806190305705, 0.450755055891099, 0.459658846346532, - 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, - 0.503470671402114, 0.512085477241841, 0.520649074960579, + 0.468516671300377, 0.477327644977522, 0.48609088628794, 0.494805518914805, + 0.503470671402114, 0.512085477241841, 0.520649074960579, 0.529160608205695, 0.537619225830956, 0.546024081981648, - 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, - 0.587212716720073, 0.595277547988606, 0.603282851998404, + 0.554374336179161, 0.562669153405032, 0.570907704184454, 0.57908916466921, + 0.587212716720073, 0.595277547988606, 0.603282851998404, 0.611227828225735, 0.619111682179599, 0.626933625481169, - 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, - 0.665087526679283, 0.672521802248466, 0.679888826197857, + 0.634692875942635, 0.642388657645414, 0.650020201017752, 0.657586742911669, + 0.665087526679283, 0.672521802248466, 0.679888826197857, 0.687187861831201, 0.694418179251016, 0.701579055431586, - 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, - 0.736317001920619, 0.74304644096641, 0.749701575987307, + 0.70866977429126, 0.715689626764061, 0.722637910870592, 0.729513931788232, + 0.736317001920619, 0.74304644096641, 0.749701575987307, 0.756281741475356, 0.762786279419489, 0.769214539371333, - 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, - 0.800189441072806, 0.806146805264716, 0.812023555447886, + 0.77556587851025, 0.781839661707619, 0.788035261590348, 0.794152058603611, + 0.800189441072806, 0.806146805264716, 0.812023555447886, 0.817819103952194, 0.823532871227622, 0.829164285902202, - 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, - 0.856066651837255, 0.861192417161521, 0.866232063961728, + 0.83471278483916, 0.840177813193225, 0.845558824466117, 0.850855280561193, + 0.856066651837255, 0.861192417161521, 0.866232063961728, 0.871185088277397, 0.876050994810224, 0.880829296973609, - 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, - 0.903390327594559, 0.907633279098413, 0.911785468030717, + 0.885519516941319, 0.890121185695265, 0.894633843072407, 0.899057037810768, + 0.903390327594559, 0.907633279098413, 0.911785468030717, 0.915846479176035, 0.919815906436639, 0.92369335287311, - 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, - 0.941687625819678, 0.945005369334228, 0.948228613099346, + 0.927478430744036, 0.931170761544783, 0.934769976045349, 0.938275714327283, + 0.941687625819678, 0.945005369334228, 0.948228613099346, 0.951357034793342, 0.954390321576654, 0.957328170123131, - 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, - 0.970575892568149, 0.972935278296897, 0.975197371308593, + 0.960170286650366, 0.962916386949075, 0.965566196411518, 0.968119450058955, + 0.970575892568149, 0.972935278296897, 0.975197371308593, 0.977361945395819, 0.979428784102971, 0.981397680747901, - 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, - 0.989766485827815, 0.991143939568469, 0.992422279741117, + 0.983268438442584, 0.985040870112812, 0.986714798516892, 0.98829005626338, + 0.989766485827815, 0.991143939568469, 0.992422279741117, 0.993601378512806, 0.994681117974643, 0.99566139015358, - 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, - 0.99906765953439, 0.999449418224499, 0.999731232805658, + 0.996542097023217, 0.997323150513601, 0.998004472520033, 0.998585994910881, + 0.99906765953439, 0.999449418224499, 0.999731232805658, 0.999913075096642, 0.999994926913375, 0.999976780070743, - 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, - 0.998386479434759, 0.997768728667684, 0.997051201859214, + 0.999858636383415, 0.999640507665662, 0.999322415730172, 0.998904392385876, + 0.998386479434759, 0.997768728667684, 0.997051201859214, 0.996233970761431, 0.995317117096764, 0.994300732549815, - 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, - 0.987729751655308, 0.986118663792513, 0.984408964885101, + 0.993184918758193, 0.991969787302346, 0.990655459694407, 0.989242067366043, + 0.987729751655308, 0.986118663792513, 0.984408964885101, 0.982600825901538, 0.980694427654217, 0.978689960781373, - 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, - 0.967203954697364, 0.964615627196218, 0.961930838936196, + 0.976587625728023, 0.974387632725921, 0.972090201772533, 0.96969556260904, + 0.967203954697364, 0.964615627196218, 0.961930838936196, 0.959149858393887, 0.956272963665028, 0.953300442436693, - 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, - 0.937014175539204, 0.933474470112512, 0.929841418016701, + 0.95023259195853, 0.947069719013028, 0.943812139884847, 0.940460180329185, + 0.937014175539204, 0.933474470112512, 0.929841418016701, 0.926115382553955, 0.922296736324713, 0.918385861190416, - 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, - 0.897462060474762, 0.893006344689077, 0.888461329013091, + 0.914383148235319, 0.910288997727383, 0.906103819078245, 0.901828030802283, + 0.897462060474762, 0.893006344689077, 0.888461329013091, 0.883827467944587, 0.879105224865808, 0.874295071997128, - 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, - 0.848942801163572, 0.84361559505816, 0.838204028096251, + 0.869397490349825, 0.864412969677983, 0.859342008429514, 0.854185113696319, + 0.848942801163572, 0.84361559505816, 0.838204028096251, 0.832708641430035, 0.827129984593597, 0.821468615447972, - 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, - 0.791941186006336, 0.785795717263661, 0.779571669604088, + 0.815725100125357, 0.809900012972498, 0.803993936493257, 0.798007461290359, + 0.791941186006336, 0.785795717263661, 0.779571669604088, 0.773269665427194, 0.766890334928147, 0.760434316034681, - 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, - 0.727026756299476, 0.720124428411794, 0.713150088681373, + 0.753902254343305, 0.747294803054744, 0.740612622908621, 0.733856382117381, + 0.727026756299476, 0.720124428411794, 0.713150088681373, 0.706104434536373, 0.698988170536338, 0.691802008301737, - 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, - 0.654848115566766, 0.647257894312724, 0.639602947808631, + 0.684546666442807, 0.677222870487685, 0.669831352809865, 0.662372852554955, + 0.654848115566766, 0.647257894312724, 0.639602947808631, 0.631884041542758, 0.624101947399299, 0.616257443581182, - 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, - 0.576126448927319, 0.567924173288695, 0.55966510570601, + 0.608351314532255, 0.600384350858831, 0.592357349250641, 0.584271112401154, + 0.576126448927319, 0.567924173288695, 0.55966510570601, 0.551350072079141, 0.542979903904521, 0.534555438191992, - 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, - 0.491648317252275, 0.482915941655938, 0.474135274867862, + 0.526077517381105, 0.517546989256877, 0.50896470686501, 0.500331528426593, + 0.491648317252275, 0.482915941655938, 0.474135274867862, 0.465307194947413, 0.456432584695223, 0.447512331564922, - 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, - 0.402257798108573, 0.393082573564941, 0.38386804109152, + 0.43854732757439, 0.429538469216557, 0.420486657369749, 0.411392797207609, + 0.402257798108573, 0.393082573564941, 0.38386804109152, 0.374615122133879, 0.365324741976202, 0.355997829648764, - 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, - 0.30884805201492, 0.299321654334707, 0.289765324738495, + 0.346635317835026, 0.337238142778366, 0.327807244188458, 0.318343565147303, + 0.30884805201492, 0.299321654334707, 0.289765324738495, 0.280180018851278, 0.27056669519566, 0.260926315095994, - 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, - 0.212352398277126, 0.202570012076944, 0.192767369044364, + 0.251259842582256, 0.241568244293641, 0.231852489381904, 0.222113549414439, + 0.212352398277126, 0.202570012076944, 0.192767369044364, 0.182945449435517, 0.173105235434182, 0.163247711053556, - 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, - 0.113734989570117, 0.103794357219253, 0.0938433455191623, + 0.153373862037864, 0.14348467576378, 0.13358114114169, 0.123664248516802, + 0.113734989570117, 0.103794357219253, 0.0938433455191623, 0.0838829495627223, 0.0739141653812273, 0.06393798984479, - 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, - 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, - -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, + 0.0539554205626498, 0.0439674557834159, 0.0339750942952423, + 0.0239793353259525, 0.0139811784431128, 0.00398162345407974, + -0.0060183296939816, -0.0160176810140879, -0.0260154305794408, -0.0360105786234153, - -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, - -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, - -0.105819871746218, -0.115758268216946, -0.125685088957318, + -0.0460021256395369, -0.0559890724814288, -0.0659704204627299, + -0.0759451714569599, -0.0859123279973325, -0.0958708933764978, + -0.105819871746218, -0.115758268216946, -0.125685088957318, -0.135599341293531, - -0.145500033808614, -0.155386176441565, -0.16525678058636, - -0.17511085919081, -0.184947426855267, -0.194765499931161, - -0.204564096619365, -0.214342237068377, -0.2240989434723, + -0.145500033808614, -0.155386176441565, -0.16525678058636, + -0.17511085919081, -0.184947426855267, -0.194765499931161, + -0.204564096619365, -0.214342237068377, -0.2240989434723, -0.233833240168624, - -0.243544153735791, -0.253230713090538, -0.262891949585, - -0.272526897103582, -0.282134592159557, -0.291714073991427, - -0.301264384658992, -0.310784569139144, -0.320273675421368, + -0.243544153735791, -0.253230713090538, -0.262891949585, + -0.272526897103582, -0.282134592159557, -0.291714073991427, + -0.301264384658992, -0.310784569139144, -0.320273675421368, -0.329730754602944, - -0.339154860983835, -0.348545052161256, -0.357900389123914, - -0.367219936345908, -0.376502761880283, -0.385747937452222, - -0.394954538551871, -0.404121644526792, -0.413248338674028, + -0.339154860983835, -0.348545052161256, -0.357900389123914, + -0.367219936345908, -0.376502761880283, -0.385747937452222, + -0.394954538551871, -0.404121644526792, -0.413248338674028, -0.422333708331768, - -0.431376844970621, -0.440376844284454, -0.449332806280839, - -0.458243835371038, -0.467109040459569, -0.47592753503331, - -0.484698437250152, -0.493420870027184, -0.502093961128397, + -0.431376844970621, -0.440376844284454, -0.449332806280839, + -0.458243835371038, -0.467109040459569, -0.47592753503331, + -0.484698437250152, -0.493420870027184, -0.502093961128397, -0.510716843251906, - -0.519288654116686, -0.527808536548793, -0.536275638567084, - -0.544689113468413, -0.553048119912302, -0.561351822005071, - -0.569599389383433, -0.57778999729752, -0.585922826693367, + -0.519288654116686, -0.527808536548793, -0.536275638567084, + -0.544689113468413, -0.553048119912302, -0.561351822005071, + -0.569599389383433, -0.57778999729752, -0.585922826693367, -0.593997064294812, - -0.602011902684824, -0.609966540386242, -0.617860181941925, - -0.625692037994295, -0.633461325364275, -0.641167267129602, - -0.648809092702519, -0.656386037906838, -0.663897345054353, + -0.602011902684824, -0.609966540386242, -0.617860181941925, + -0.625692037994295, -0.633461325364275, -0.641167267129602, + -0.648809092702519, -0.656386037906838, -0.663897345054353, -0.671342263020609, - -0.678720047320012, -0.686029960180282, -0.693271270616224, - -0.700443254502829, -0.707545194647683, -0.714576380862692, - -0.721536110035093, -0.728423686197768, -0.735238420598841, + -0.678720047320012, -0.686029960180282, -0.693271270616224, + -0.700443254502829, -0.707545194647683, -0.714576380862692, + -0.721536110035093, -0.728423686197768, -0.735238420598841, -0.741979631770551, - -0.748646645597399, -0.755238795383558, -0.76175542191954, - -0.768195873548125, -0.774559506229517, -0.780845683605749, - -0.787053777064324, -0.793183165801068, -0.799233236882215, + -0.748646645597399, -0.755238795383558, -0.76175542191954, + -0.768195873548125, -0.774559506229517, -0.780845683605749, + -0.787053777064324, -0.793183165801068, -0.799233236882215, -0.8052033853057, - -0.811093014061656, -0.816901534192113, -0.8226283648499, - -0.828272933356724, -0.833834675260437, -0.839313034391484, - -0.844707462918517, -0.850017421403178, -0.855242378854046, + -0.811093014061656, -0.816901534192113, -0.8226283648499, + -0.828272933356724, -0.833834675260437, -0.839313034391484, + -0.844707462918517, -0.850017421403178, -0.855242378854046, -0.860381812779727, - -0.865435209241112, -0.870402062902767, -0.875281877083464, - -0.880074163805853, -0.884778443845253, -0.889394246777581, - -0.893921111026392, -0.898358583909032, -0.90270622168191, + -0.865435209241112, -0.870402062902767, -0.875281877083464, + -0.880074163805853, -0.884778443845253, -0.889394246777581, + -0.893921111026392, -0.898358583909032, -0.90270622168191, -0.906963589584872, - -0.911130261884677, -0.915205821917566, -0.919189862130932, - -0.923081984124074, -0.926881798688036, -0.930588925844528, - -0.934202994883924, -0.937723644402332, -0.941150522337732, + -0.911130261884677, -0.915205821917566, -0.919189862130932, + -0.923081984124074, -0.926881798688036, -0.930588925844528, + -0.934202994883924, -0.937723644402332, -0.941150522337732, -0.944483286005189, - -0.947721602131112, -0.950865146886587, -0.953913605919758, - -0.956866674387264, -0.959724056984716, -0.962485467976237, - -0.965150631223029, -0.967719280210989, -0.970191158077357, + -0.947721602131112, -0.950865146886587, -0.953913605919758, + -0.956866674387264, -0.959724056984716, -0.962485467976237, + -0.965150631223029, -0.967719280210989, -0.970191158077357, -0.972566017636408, - -0.974843621404164, -0.977023741622146, -0.97910616028015, - -0.981090669138045, -0.982977069746599, -0.984765173467324, - -0.986454801491336, -0.988045784857242, -0.989537964468031, + -0.974843621404164, -0.977023741622146, -0.97910616028015, + -0.981090669138045, -0.982977069746599, -0.984765173467324, + -0.986454801491336, -0.988045784857242, -0.989537964468031, -0.990931191106986, - -0.992225325452603, -0.993420238092527, -0.994515809536489, - -0.995511930228257, -0.996408500556594, -0.997205430865212, - -0.997902641461745, -0.998500062625715, -0.998997634615504, + -0.992225325452603, -0.993420238092527, -0.994515809536489, + -0.995511930228257, -0.996408500556594, -0.997205430865212, + -0.997902641461745, -0.998500062625715, -0.998997634615504, -0.999395307674325, - -0.999693042035206, -0.999890807924959, -0.999988585567158, - -0.999986365184122, -0.999884146997886, -0.999681941230185, - -0.999379768101426, -0.998977657828671, -0.998475650622611, + -0.999693042035206, -0.999890807924959, -0.999988585567158, + -0.999986365184122, -0.999884146997886, -0.999681941230185, + -0.999379768101426, -0.998977657828671, -0.998475650622611, -0.99787379668355, - -0.997172156196378, -0.996370799324562, -0.995469806203119, - -0.994469266930611, -0.993369281560131, -0.992169960089301, - -0.990871422449267, -0.989473798492712, -0.987977227980866, + -0.997172156196378, -0.996370799324562, -0.995469806203119, + -0.994469266930611, -0.993369281560131, -0.992169960089301, + -0.990871422449267, -0.989473798492712, -0.987977227980866, -0.986381860569534, - -0.984687855794127, -0.982895383053711, -0.981004621594066, - -0.979015760489763, -0.976928998625255, -0.974744544674989, - -0.97246261708254, -0.970083444038766, -0.967607263458988, + -0.984687855794127, -0.982895383053711, -0.981004621594066, + -0.979015760489763, -0.976928998625255, -0.974744544674989, + -0.97246261708254, -0.970083444038766, -0.967607263458988, -0.965034322959201, - -0.96236487983131, -0.959599201017404, -0.95673756308306, - -0.953780252189686, -0.950727564065908, -0.947579803977993, - -0.944337286699328, -0.941000336478938, -0.937569287009064, + -0.96236487983131, -0.959599201017404, -0.95673756308306, + -0.953780252189686, -0.950727564065908, -0.947579803977993, + -0.944337286699328, -0.941000336478938, -0.937569287009064, -0.934044481391795, - -0.930426272104753, -0.926715020965855, -0.922911099097119, - -0.919014886887564, -0.915026773955164, -0.910947159107888, - -0.906776450303821, -0.902515064610368, -0.898163428162546, + -0.930426272104753, -0.926715020965855, -0.922911099097119, + -0.919014886887564, -0.915026773955164, -0.910947159107888, + -0.906776450303821, -0.902515064610368, -0.898163428162546, -0.893721976120377, - -0.889191152625361, -0.884571410756073, -0.879863212482849, - -0.875067028621594, -0.870183338786697, -0.865212631343072, - -0.86015540335732, -0.855012160548026, -0.849783417235186, - -0.844469696288772 + -0.889191152625361, -0.884571410756073, -0.879863212482849, + -0.875067028621594, -0.870183338786697, -0.865212631343072, + -0.86015540335732, -0.855012160548026, -0.849783417235186, + -0.844469696288772 }; #endif diff --git a/ncdap_test/testdata3/CMakeLists.txt b/ncdap_test/testdata3/CMakeLists.txt index ce0734596..5df1d4251 100644 --- a/ncdap_test/testdata3/CMakeLists.txt +++ b/ncdap_test/testdata3/CMakeLists.txt @@ -1,6 +1,12 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*) SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am) -ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") \ No newline at end of file +ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") diff --git a/ncdump/CMakeLists.txt b/ncdump/CMakeLists.txt index 4201ef44a..0dc02b2d5 100644 --- a/ncdump/CMakeLists.txt +++ b/ncdump/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. IF(BUILD_SHARED_LIBS AND WIN32) remove_definitions(-DDLL_EXPORT) remove_definitions(-DDLL_NETCDF) diff --git a/ncdump/Makefile.am b/ncdump/Makefile.am index 3ea5a92ad..bb398c3b5 100644 --- a/ncdump/Makefile.am +++ b/ncdump/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the ncdump program. # Ed Hartnett, Dennis Heimbigner, Ward Fisher diff --git a/ncdump/bom.c b/ncdump/bom.c index eb2469001..70192faf2 100644 --- a/ncdump/bom.c +++ b/ncdump/bom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/cdl.h b/ncdump/cdl.h index afa12defa..5272c1cbd 100644 --- a/ncdump/cdl.h +++ b/ncdump/cdl.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/cdl.h,v 1.3 2008/12/22 16:42:36 russ Exp $ *********************************************************************/ diff --git a/ncdump/cdl/CMakeLists.txt b/ncdump/cdl/CMakeLists.txt index 8c089e215..07ec662c1 100644 --- a/ncdump/cdl/CMakeLists.txt +++ b/ncdump/cdl/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdump/cdl/Makefile.am b/ncdump/cdl/Makefile.am index 45a399800..45b76c771 100644 --- a/ncdump/cdl/Makefile.am +++ b/ncdump/cdl/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the libnc-dap test comparison files @@ -26,5 +26,3 @@ ref_niltest.cdl ref_tst_h_scalar.cdl ref_tst_econst.cdl \ ref_tst_nul3.cdl ref_tst_nul4.cdl ref_tst_names.cdl \ ref_tst_long_charconst.cdl tst_chararray.cdl ref_keyword.cdl \ CMakeLists.txt - - diff --git a/ncdump/chunkspec.c b/ncdump/chunkspec.c index 3117b2fc4..e48df5f7a 100644 --- a/ncdump/chunkspec.c +++ b/ncdump/chunkspec.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ @@ -62,7 +62,7 @@ chunkspec_parse(int igrp, const char *spec) /* * Parse chunkspec string and convert into dimchunkspec structure. * ncid: location ID of open netCDF file or group in an open file - * spec: string of form + * spec: string of form * dim1/n1,dim2/n2,...,dimk/nk * specifying chunk size (ni) to be used for dimension named * dimi. Dimension names may be absolute, @@ -72,7 +72,7 @@ chunkspec_parse(int igrp, const char *spec) * not mentioned in the string. However, for unlimited dimensions, * the default is a default size: 4 megabytes or the * existing unlimited size if smaller. - * If the chunkspec string is "/", specifying no dimensions or + * If the chunkspec string is "/", specifying no dimensions or * chunk sizes, it indicates chunking to be turned off on output. * * Returns NC_NOERR if no error, NC_EINVAL if spec has consecutive @@ -126,7 +126,7 @@ dimchunkspec_parse(int igrp, const char *spec) char *dp; int dimid; size_t chunksize; - + for(; pp > np && *pp != '/'; pp--) { /* look backwards for "/" */ continue; } @@ -187,7 +187,7 @@ dimchunkspec_size(int indimid) { for(idim = 0; idim < dimchunkspecs.ndims; idim++) { if(indimid == dimchunkspecs.idimids[idim]) { return dimchunkspecs.chunksizes[idim]; - } + } } return 0; } @@ -211,7 +211,7 @@ dimchunkspec_omit(void) { /* * Parse per-variable chunkspec string and convert into varchunkspec structure. * ncid: location ID of open netCDF file or group in an open file - * spec: string of form + * spec: string of form * var:n1,n2,...nk * * specifying chunk size (ni) to be used for ith dimension of @@ -251,7 +251,7 @@ varchunkspec_parse(int igrp, const char *spec0) /* Lookup the variable by name */ ret = nc_inq_varid2(igrp, spec, &chunkspec->ivarid, &chunkspec->igrpid); if(ret != NC_NOERR) goto done; - + if(*p == '\0') {/* we have -c var: => do not chunk var */ chunkspec->omit = 1; /* add the chunkspec to our list */ @@ -264,16 +264,16 @@ varchunkspec_parse(int igrp, const char *spec0) while(*p) { unsigned long dimsize; q = strchr(p,','); - if(q == NULL) + if(q == NULL) q = p + strlen(p); /* Fake the endpoint */ else *q++ = '\0'; - + /* Scan as unsigned long */ if(sscanf(p,"%lu",&dimsize) != 1) {ret = NC_EINVAL; goto done;} /* Apparently not a valid dimension size */ if(chunkspec->rank >= NC_MAX_VAR_DIMS) {ret = NC_EINVAL; goto done;} /* to many chunks */ - chunkspec->chunksizes[chunkspec->rank] = (size_t)dimsize; + chunkspec->chunksizes[chunkspec->rank] = (size_t)dimsize; chunkspec->rank++; p = q; } @@ -281,7 +281,7 @@ varchunkspec_parse(int igrp, const char *spec0) /* Get some info about the var (from input) */ ret = nc_inq_var(chunkspec->igrpid,chunkspec->ivarid,NULL,NULL,&rank,dimids,NULL); if(ret != NC_NOERR) goto done; - + /* 1. check # chunksizes == rank of variable */ if(rank != chunkspec->rank) {ret = NC_EINVAL; goto done;} @@ -292,7 +292,7 @@ varchunkspec_parse(int igrp, const char *spec0) if(ret != NC_NOERR) goto done; if(chunkspec->chunksizes[i] > len) {ret = NC_EBADCHUNK; goto done;} } - + /* add the chunkspec to our list */ listpush(varchunkspecs,chunkspec); chunkspec = NULL; @@ -354,5 +354,3 @@ varchunkspec_rank(int igrpid, int ivarid) } return 0; } - - diff --git a/ncdump/chunkspec.h b/ncdump/chunkspec.h index 5c7d68d18..9b965ae40 100644 --- a/ncdump/chunkspec.h +++ b/ncdump/chunkspec.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dimmap.c b/ncdump/dimmap.c index ef7ae3d6c..fffff30f3 100644 --- a/ncdump/dimmap.c +++ b/ncdump/dimmap.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dimmap.h b/ncdump/dimmap.h index a821b37ab..7850aadb6 100644 --- a/ncdump/dimmap.h +++ b/ncdump/dimmap.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id $ *********************************************************************/ diff --git a/ncdump/dumplib.c b/ncdump/dumplib.c index c801f5986..598bdbabe 100644 --- a/ncdump/dumplib.c +++ b/ncdump/dumplib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.c,v 1.85 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/dumplib.h b/ncdump/dumplib.h index 2ce26ea06..438977e22 100644 --- a/ncdump/dumplib.h +++ b/ncdump/dumplib.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/dumplib.h,v 1.28 2009/08/13 21:06:13 russ Exp $ *********************************************************************/ diff --git a/ncdump/expected/CMakeLists.txt b/ncdump/expected/CMakeLists.txt index f5e836ea6..0aa7ca4dd 100644 --- a/ncdump/expected/CMakeLists.txt +++ b/ncdump/expected/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) diff --git a/ncdump/expected/Makefile.am b/ncdump/expected/Makefile.am index 291f46937..775d63552 100644 --- a/ncdump/expected/Makefile.am +++ b/ncdump/expected/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2007, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This is to include the test comparison files @@ -25,4 +25,3 @@ CMakeLists.txt # These do not exist because they are not run as usual tests # bigf1.dmp bigf2.dmp bigf3.dmp bigr1.dmp bigr2.dmp bigr3.dmp gfs1.dmp - diff --git a/ncdump/indent.c b/ncdump/indent.c index 79c95a545..3678db7b2 100644 --- a/ncdump/indent.c +++ b/ncdump/indent.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2007, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/indent.c,v 1.6 2009/09/28 18:27:04 russ Exp $ *********************************************************************/ diff --git a/ncdump/indent.h b/ncdump/indent.h index 15b8981f0..9bf502c87 100644 --- a/ncdump/indent.h +++ b/ncdump/indent.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2007, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/isnan.h b/ncdump/isnan.h index c62f801fe..9c51c94f6 100644 --- a/ncdump/isnan.h +++ b/ncdump/isnan.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/list.c b/ncdump/list.c index 30570a43c..d5f442d76 100644 --- a/ncdump/list.c +++ b/ncdump/list.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include #include diff --git a/ncdump/list.h b/ncdump/list.h index 2206af37d..86f85cc26 100644 --- a/ncdump/list.h +++ b/ncdump/list.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef LIST_H #define LIST_H 1 diff --git a/ncdump/nc4print.c b/ncdump/nc4print.c index 9fda8d792..0dab9cd9b 100644 --- a/ncdump/nc4print.c +++ b/ncdump/nc4print.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2016, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/nccomps.h b/ncdump/nccomps.h index 926cf9cd6..64614df63 100644 --- a/ncdump/nccomps.h +++ b/ncdump/nccomps.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric + * Copyright 2018, University Corporation for Atmospheric * Research/Unidata. See \ref copyright file for copying and * redistribution conditionsmore information. *********************************************************************/ diff --git a/ncdump/nccopy.c b/ncdump/nccopy.c index 6c5243d50..87babfc08 100644 --- a/ncdump/nccopy.c +++ b/ncdump/nccopy.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2010, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * Thanks to Philippe Poilbarbe and Antonio S. Cofiño for * compression additions. diff --git a/ncdump/ncdump.c b/ncdump/ncdump.c index abbde44e1..ba8d43cdc 100644 --- a/ncdump/ncdump.c +++ b/ncdump/ncdump.c @@ -1,6 +1,6 @@ -/* +/*! \file -Copyright 2011 University Corporation for Atmospheric +Copyright 2018 University Corporation for Atmospheric Research/Unidata. See \ref copyright file for more info. */ #include "config.h" diff --git a/ncdump/ncdump.h b/ncdump/ncdump.h index 4773441a7..d5a95ef1b 100644 --- a/ncdump/ncdump.h +++ b/ncdump/ncdump.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/ncdump.h,v 1.34 2009/12/02 20:03:43 russ Exp $ *********************************************************************/ diff --git a/ncdump/nciter.c b/ncdump/nciter.c index aa9a7f059..829e3048f 100644 --- a/ncdump/nciter.c +++ b/ncdump/nciter.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id: nciter.c 400 2010-08-27 21:02:52Z russ $" *********************************************************************/ diff --git a/ncdump/nciter.h b/ncdump/nciter.h index 1da51832f..37def81e9 100644 --- a/ncdump/nciter.h +++ b/ncdump/nciter.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id: nciter.h 400 2010-08-27 21:02:52Z russ $" *********************************************************************/ diff --git a/ncdump/nctime0.c b/ncdump/nctime0.c index 8af924d97..540c265e1 100644 --- a/ncdump/nctime0.c +++ b/ncdump/nctime0.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: nctime.c,v 1.9 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/nctime0.h b/ncdump/nctime0.h index c3558e284..2ffa2ab59 100644 --- a/ncdump/nctime0.h +++ b/ncdump/nctime0.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2008, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncdump/nctrunc.c b/ncdump/nctrunc.c index b64c163ab..c9d07fba6 100644 --- a/ncdump/nctrunc.c +++ b/ncdump/nctrunc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncdump/ocprint.c b/ncdump/ocprint.c index d64bf4373..4ea454a30 100644 --- a/ncdump/ocprint.c +++ b/ncdump/ocprint.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #define VALIDATE diff --git a/ncdump/rewrite-scalar.c b/ncdump/rewrite-scalar.c index a8db86817..2d147b63b 100644 --- a/ncdump/rewrite-scalar.c +++ b/ncdump/rewrite-scalar.c @@ -1,6 +1,6 @@ /********************************************************************* * This is part of the Unidata netCDF package. - * Copyright 2006, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * * This program is part of the testing of file lengths done by the diff --git a/ncdump/tst_chunking.c b/ncdump/tst_chunking.c index 589f1c683..95cd92010 100644 --- a/ncdump/tst_chunking.c +++ b/ncdump/tst_chunking.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_comp.c b/ncdump/tst_comp.c index 6768f490b..e23019812 100644 --- a/ncdump/tst_comp.c +++ b/ncdump/tst_comp.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_comp2.c b/ncdump/tst_comp2.c index 7ed2e9b1e..b2566f4a6 100644 --- a/ncdump/tst_comp2.c +++ b/ncdump/tst_comp2.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_compress.c b/ncdump/tst_compress.c index 7c6b730a3..e226e84a3 100644 --- a/ncdump/tst_compress.c +++ b/ncdump/tst_compress.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2010 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_create_files.c b/ncdump/tst_create_files.c index 1937d85fa..be9d55662 100644 --- a/ncdump/tst_create_files.c +++ b/ncdump/tst_create_files.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005-2007, University +/* This is part of the netCDF package. Copyright 2018-2007, University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/ncdump/tst_dimsizes.c b/ncdump/tst_dimsizes.c index 28ba66bdf..bc2ca0d72 100644 --- a/ncdump/tst_dimsizes.c +++ b/ncdump/tst_dimsizes.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "config.h" #include #include "err_macros.h" diff --git a/ncdump/tst_enum_data.c b/ncdump/tst_enum_data.c index b5db7f5aa..181be1282 100644 --- a/ncdump/tst_enum_data.c +++ b/ncdump/tst_enum_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_fileinfo.c b/ncdump/tst_fileinfo.c index 1748b8c1b..471f97c5d 100644 --- a/ncdump/tst_fileinfo.c +++ b/ncdump/tst_fileinfo.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. */ diff --git a/ncdump/tst_fillbug.c b/ncdump/tst_fillbug.c index 1ae7f5954..4f9aafd15 100644 --- a/ncdump/tst_fillbug.c +++ b/ncdump/tst_fillbug.c @@ -1,5 +1,5 @@ /* -This is part of the netCDF package. Copyright 2017 University +This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. */ diff --git a/ncdump/tst_group_data.c b/ncdump/tst_group_data.c index 00d5cb7d7..d8f4e29a4 100644 --- a/ncdump/tst_group_data.c +++ b/ncdump/tst_group_data.c @@ -1,6 +1,6 @@ /* This is part of the netCDF package. - Copyright 2005-2007, University Corporation for Atmospheric + Copyright 2005-2018, University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. This program creates a test file with groups for ncdump to read. diff --git a/ncdump/tst_h_rdc0.c b/ncdump/tst_h_rdc0.c index 5a3c0606a..04bc1d0e9 100644 --- a/ncdump/tst_h_rdc0.c +++ b/ncdump/tst_h_rdc0.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2005 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Use HDF5 to read c0.nc, a file created by ncdump. This check was diff --git a/ncdump/tst_h_scalar.c b/ncdump/tst_h_scalar.c index 6fd640cdc..ea3cb0a9f 100644 --- a/ncdump/tst_h_scalar.c +++ b/ncdump/tst_h_scalar.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2013 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. diff --git a/ncdump/tst_nans.c b/ncdump/tst_nans.c index 36c210014..0e3efdd48 100644 --- a/ncdump/tst_nans.c +++ b/ncdump/tst_nans.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2008 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_opaque_data.c b/ncdump/tst_opaque_data.c index 564c1000e..8df43ce66 100644 --- a/ncdump/tst_opaque_data.c +++ b/ncdump/tst_opaque_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_special_atts.c b/ncdump/tst_special_atts.c index f4ac1d8ee..7343bb667 100644 --- a/ncdump/tst_special_atts.c +++ b/ncdump/tst_special_atts.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2008 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_string_data.c b/ncdump/tst_string_data.c index 47b1e00a8..befe1f4b0 100644 --- a/ncdump/tst_string_data.c +++ b/ncdump/tst_string_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_unicode.c b/ncdump/tst_unicode.c index 83dd839ad..5711e554e 100644 --- a/ncdump/tst_unicode.c +++ b/ncdump/tst_unicode.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_utf8.c b/ncdump/tst_utf8.c index 51db4e237..02844febc 100644 --- a/ncdump/tst_utf8.c +++ b/ncdump/tst_utf8.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2006 University Corporation for Atmospheric Research/Unidata. + Copyright 2018 University Corporation for Atmospheric Research/Unidata. See COPYRIGHT file for conditions of use. This is a very simple example which writes a netCDF file with diff --git a/ncdump/tst_vlen_data.c b/ncdump/tst_vlen_data.c index 3ae539f61..322f8db08 100644 --- a/ncdump/tst_vlen_data.c +++ b/ncdump/tst_vlen_data.c @@ -1,4 +1,4 @@ -/* This is part of the netCDF package. Copyright 2005 University +/* This is part of the netCDF package. Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. See www.unidata.ucar.edu for more info. diff --git a/ncdump/tst_vlen_demo.c b/ncdump/tst_vlen_demo.c index 1fe598fac..691d3f574 100644 --- a/ncdump/tst_vlen_demo.c +++ b/ncdump/tst_vlen_demo.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include #include "netcdf.h" diff --git a/ncdump/utils.c b/ncdump/utils.c index 0af3c9ebd..b6d98c626 100644 --- a/ncdump/utils.c +++ b/ncdump/utils.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * $Id$ *********************************************************************/ diff --git a/ncdump/utils.h b/ncdump/utils.h index c88981f38..ef872d0d2 100644 --- a/ncdump/utils.h +++ b/ncdump/utils.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2011, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * * Stuff that's common to both ncdump and nccopy diff --git a/ncdump/vardata.c b/ncdump/vardata.c index 5089829d3..b7b59d359 100644 --- a/ncdump/vardata.c +++ b/ncdump/vardata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncdump/vardata.c,v 1.48 2010/05/05 22:15:39 dmh Exp $ *********************************************************************/ diff --git a/ncdump/vardata.h b/ncdump/vardata.h index a70520720..aa2e0d9aa 100644 --- a/ncdump/vardata.h +++ b/ncdump/vardata.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * Russ Rew *********************************************************************/ diff --git a/ncgen/CMakeLists.txt b/ncgen/CMakeLists.txt index 7314acef5..f17691ca4 100644 --- a/ncgen/CMakeLists.txt +++ b/ncgen/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. IF(BUILD_SHARED_LIBS AND WIN32) remove_definitions(-DDLL_EXPORT) remove_definitions(-DDLL_NETCDF) diff --git a/ncgen/Makefile.am b/ncgen/Makefile.am index 9faf13c65..b9a2774e7 100644 --- a/ncgen/Makefile.am +++ b/ncgen/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2008, see the COPYRIGHT file for more information. # This file builds and runs the ncgen program. # Put together AM_CPPFLAGS and AM_LDFLAGS. diff --git a/ncgen/bindata.c b/ncgen/bindata.c index 840dfdbb5..e9accc7b5 100644 --- a/ncgen/bindata.c +++ b/ncgen/bindata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/bytebuffer.c b/ncgen/bytebuffer.c index 533d35269..4acf2d524 100644 --- a/ncgen/bytebuffer.c +++ b/ncgen/bytebuffer.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/ncgen/bytebuffer.h b/ncgen/bytebuffer.h index 28c25bac7..6ecbc5b5e 100644 --- a/ncgen/bytebuffer.h +++ b/ncgen/bytebuffer.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef BYTEBUFFER_H diff --git a/ncgen/cdata.c b/ncgen/cdata.c index 38f8f27c2..f1a644493 100644 --- a/ncgen/cdata.c +++ b/ncgen/cdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/cdfdata.c b/ncgen/cdfdata.c index 40e82fbe8..34c76ac31 100644 --- a/ncgen/cdfdata.c +++ b/ncgen/cdfdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: cdfdata.c,v 1.4 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/cmldata.c b/ncgen/cmldata.c index 5f6882547..b9f43a81f 100644 --- a/ncgen/cmldata.c +++ b/ncgen/cmldata.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "includes.h" #ifdef ENABLE_CML @@ -206,7 +217,7 @@ gencml_primdata(Symbol* tsym, Datasrc* src, Datalist* fillsrc, prim = srcnext(src); if(prim == NULL || prim->nctype == NC_FILLVALUE) { - gencml_fillvalue(tsym,fillsrc,src,databuf); + gencml_fillvalue(tsym,fillsrc,src,databuf); return; } @@ -327,9 +338,9 @@ xconst(Constant* ci) p = ci->value.opaquev.stringv; while(*p) { strcat(bstring,"&#"); - strncat(bstring,p,2); + strncat(bstring,p,2); strcat(bstring,";"); - p += 2; + p += 2; } return bstring; } break; @@ -471,14 +482,14 @@ gencml_stringarray(Symbol* sym, Datasrc* src, Bytebuffer* databuf) Datalist* fill = getfiller(sym); Datasrc* fillsrc = datalist2src(fill); gencml_stringarray(sym,fillsrc,databuf); - } break; + } break; default: semerror(srcline(src), "Encountered non-string constant in attribute: %s", sym->name); return; } - } + } } #endif /*ENABLE_CML*/ diff --git a/ncgen/cvt.c b/ncgen/cvt.c index d2222331e..ba8a51fc6 100644 --- a/ncgen/cvt.c +++ b/ncgen/cvt.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: cvt.c,v 1.2 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/data.c b/ncgen/data.c index d8cf22679..414c92883 100644 --- a/ncgen/data.c +++ b/ncgen/data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: data.c,v 1.7 2010/05/24 19:59:56 dmh Exp $ */ diff --git a/ncgen/data.h b/ncgen/data.h index c670974d2..8bc2ab28d 100644 --- a/ncgen/data.h +++ b/ncgen/data.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/debug.c b/ncgen/debug.c index 0f7a22799..81f531f3f 100644 --- a/ncgen/debug.c +++ b/ncgen/debug.c @@ -1,6 +1,6 @@ /* -Copyright (c) 1998-2017 University Corporation for Atmospheric Research/Unidata -See LICENSE.txt for license information. +Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata +See COPYRIGHT for license information. */ #include "includes.h" diff --git a/ncgen/debug.h b/ncgen/debug.h index 0a2940236..794e1c15d 100644 --- a/ncgen/debug.h +++ b/ncgen/debug.h @@ -1,8 +1,19 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef NCGEN_DEBUG_H #define NCGEN_DEBUG_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/debug.h,v 1.2 2010/03/31 18:18:34 dmh Exp $ *********************************************************************/ diff --git a/ncgen/dump.c b/ncgen/dump.c index 03b553ede..9be716864 100644 --- a/ncgen/dump.c +++ b/ncgen/dump.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: dump.c,v 1.3 2010/05/24 19:59:57 dmh Exp $ */ diff --git a/ncgen/dump.h b/ncgen/dump.h index 95e7716f4..b727d5713 100644 --- a/ncgen/dump.h +++ b/ncgen/dump.h @@ -1,10 +1,21 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #ifndef NCGEN_DUMP_H #define NCGEN_DUMP_H /*#define F*/ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/dump.h,v 1.2 2010/04/04 19:39:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/escapes.c b/ncgen/escapes.c index 90c29aaa6..94efd0f2f 100644 --- a/ncgen/escapes.c +++ b/ncgen/escapes.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/escapes.c,v 1.5 2010/04/04 19:39:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/f77data.c b/ncgen/f77data.c index 1f753a000..965c7ada9 100644 --- a/ncgen/f77data.c +++ b/ncgen/f77data.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/genbin.c b/ncgen/genbin.c index 82cc6833f..9ee37c2f8 100644 --- a/ncgen/genbin.c +++ b/ncgen/genbin.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genbin.c,v 1.4 2010/05/27 21:34:17 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genc.c b/ncgen/genc.c index 5e6ebd5ef..91293439a 100644 --- a/ncgen/genc.c +++ b/ncgen/genc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genc.c,v 1.6 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genchar.c b/ncgen/genchar.c index bc5422f84..f7ed3f7f4 100644 --- a/ncgen/genchar.c +++ b/ncgen/genchar.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/gencml.c b/ncgen/gencml.c index 8462df066..48ebaf94e 100644 --- a/ncgen/gencml.c +++ b/ncgen/gencml.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/gencml.c,v 1.5 2010/04/04 19:39:46 dmh Exp $ *********************************************************************/ diff --git a/ncgen/generate.c b/ncgen/generate.c index 2fd819085..e25d53261 100644 --- a/ncgen/generate.c +++ b/ncgen/generate.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/generr.c b/ncgen/generr.c index 16c4b00f9..8da3049cc 100644 --- a/ncgen/generr.c +++ b/ncgen/generr.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/generr.c,v 1.1 2009/09/25 18:22:22 dmh Exp $ *********************************************************************/ diff --git a/ncgen/generr.h b/ncgen/generr.h index 86152fb36..0b2e9453c 100644 --- a/ncgen/generr.h +++ b/ncgen/generr.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: generr.h,v 1.2 2010/05/24 19:59:57 dmh Exp $ */ diff --git a/ncgen/genf77.c b/ncgen/genf77.c index 1706d1d56..b2a7fe790 100644 --- a/ncgen/genf77.c +++ b/ncgen/genf77.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genf77.c,v 1.4 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genj.c b/ncgen/genj.c index 92e4e0fe6..08dbc1c66 100644 --- a/ncgen/genj.c +++ b/ncgen/genj.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genj.c,v 1.2 2010/05/17 23:26:44 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genjjni.c b/ncgen/genjjni.c index 670ec8f92..018f13fd9 100644 --- a/ncgen/genjjni.c +++ b/ncgen/genjjni.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genjjni.c,v 1.6 2010/04/04 19:39:46 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genjstd.c b/ncgen/genjstd.c index 30638c77b..2e8f49a3a 100644 --- a/ncgen/genjstd.c +++ b/ncgen/genjstd.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genjstd.c,v 1.4 2010/05/17 23:26:45 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genlib.c b/ncgen/genlib.c index f68a17578..9a2d652ff 100644 --- a/ncgen/genlib.c +++ b/ncgen/genlib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genlib.c,v 1.57 2010/04/04 19:39:47 dmh Exp $ *********************************************************************/ diff --git a/ncgen/genlib.h b/ncgen/genlib.h index f7821de70..166f53f81 100644 --- a/ncgen/genlib.h +++ b/ncgen/genlib.h @@ -1,7 +1,7 @@ #ifndef NC_GENLIB_H #define NC_GENLIB_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/genlib.h,v 1.20 2010/05/17 23:26:45 dmh Exp $ *********************************************************************/ diff --git a/ncgen/getfill.c b/ncgen/getfill.c index 24f1f6f8e..bd1dc3a56 100644 --- a/ncgen/getfill.c +++ b/ncgen/getfill.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/getfill.c,v 1.8 2010/04/14 22:04:56 dmh Exp $ *********************************************************************/ diff --git a/ncgen/jdata.c b/ncgen/jdata.c index f9ad0bffc..c87ea9d04 100644 --- a/ncgen/jdata.c +++ b/ncgen/jdata.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/jdatajni.c b/ncgen/jdatajni.c index c5d198729..f5edb8d7e 100644 --- a/ncgen/jdatajni.c +++ b/ncgen/jdatajni.c @@ -1,3 +1,14 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ + #include "includes.h" #include "ncoffsets.h" @@ -447,7 +458,7 @@ jopaquestring(Symbol* tsym, Constant* prim, Constant* target) ASSERT((oplen%2) == 0); opstring = (char*)ecalloc(oplen*(2+4)); - opstring[0]='\0'; + opstring[0]='\0'; p=(unsigned char*)op; for(i=0;i #include diff --git a/ncgen/list.h b/ncgen/list.h index 2206af37d..86f85cc26 100644 --- a/ncgen/list.h +++ b/ncgen/list.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef LIST_H #define LIST_H 1 diff --git a/ncgen/main.c b/ncgen/main.c index 1b28d335e..4936381da 100644 --- a/ncgen/main.c +++ b/ncgen/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: main.c,v 1.33 2010/05/26 21:43:36 dmh Exp $ */ diff --git a/ncgen/nc_iter.c b/ncgen/nc_iter.c index c8978fa4e..433bb7be9 100644 --- a/ncgen/nc_iter.c +++ b/ncgen/nc_iter.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id $" *********************************************************************/ diff --git a/ncgen/nc_iter.h b/ncgen/nc_iter.h index 8c9f70ae4..95d53b61d 100644 --- a/ncgen/nc_iter.h +++ b/ncgen/nc_iter.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/README file for copying and redistribution conditions. * "$Id $" *********************************************************************/ diff --git a/ncgen/ncgen.h b/ncgen/ncgen.h index 739cd60db..f54ed9473 100644 --- a/ncgen/ncgen.h +++ b/ncgen/ncgen.h @@ -1,7 +1,7 @@ #ifndef NC_NCGEN_H #define NC_NCGEN_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/ncgen.h,v 1.18 2010/06/01 15:34:53 ed Exp $ *********************************************************************/ diff --git a/ncgen/ncgen.y b/ncgen/ncgen.y index a72ce8a4c..c119ce2dc 100644 --- a/ncgen/ncgen.y +++ b/ncgen/ncgen.y @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.y,v 1.42 2010/05/18 21:32:46 dmh Exp $ *********************************************************************/ @@ -957,7 +957,7 @@ makeprimitivetype(nc_type nctype) sym->typ.typecode = nctype; sym->typ.size = ncsize(nctype); sym->typ.nelems = 1; - sym->typ.alignment = ncaux_class_alignment(nctype); + sym->typ.alignment = ncaux_class_alignment(nctype); /* Make the basetype circular so we can always ask for it */ sym->typ.basetype = sym; sym->prefix = listnew(); @@ -1260,7 +1260,7 @@ makespecial(int tag, Symbol* vsym, Symbol* tsym, void* data, int isconst) else if(tag == _NCPROPS_FLAG) { globalspecials._NCProperties = sdata; sdata = NULL; - } + } } else { Specialdata* special; /* Set up special info */ @@ -1337,7 +1337,7 @@ makespecial(int tag, Symbol* vsym, Symbol* tsym, void* data, int isconst) break; case _CHUNKSIZES_FLAG: { int i; - list = (isconst ? const2list(con) : list); + list = (isconst ? const2list(con) : list); special->nchunks = list->length; special->_ChunkSizes = (size_t*)ecalloc(sizeof(size_t)*special->nchunks); for(i=0;inchunks;i++) { diff --git a/ncgen/ncgenl.c b/ncgen/ncgenl.c index 27fbefe8d..6655d9736 100644 --- a/ncgen/ncgenl.c +++ b/ncgen/ncgenl.c @@ -1382,7 +1382,7 @@ char *yytext; #line 1 "ncgen.l" #line 2 "ncgen.l" /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/09/25 18:22:35 dmh Exp $ *********************************************************************/ diff --git a/ncgen/odom.c b/ncgen/odom.c index 1e5a95fbe..1f96828d6 100644 --- a/ncgen/odom.c +++ b/ncgen/odom.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: odom.c,v 1.5 2010/05/27 21:34:18 dmh Exp $ */ diff --git a/ncgen/odom.h b/ncgen/odom.h index 8f959ddb7..9cd9a8d4f 100644 --- a/ncgen/odom.h +++ b/ncgen/odom.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ diff --git a/ncgen/semantics.c b/ncgen/semantics.c index b47886940..7044df5e6 100644 --- a/ncgen/semantics.c +++ b/ncgen/semantics.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 2009, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. *********************************************************************/ /* $Id: semantics.c,v 1.4 2010/05/24 19:59:58 dmh Exp $ */ diff --git a/ncgen/util.c b/ncgen/util.c index e0ec19064..8c3d7028d 100644 --- a/ncgen/util.c +++ b/ncgen/util.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/util.c,v 1.4 2010/04/14 22:04:59 dmh Exp $ *********************************************************************/ diff --git a/ncgen/util.h b/ncgen/util.h index 7960b6513..f38c4510f 100644 --- a/ncgen/util.h +++ b/ncgen/util.h @@ -1,7 +1,7 @@ #ifndef NCGEN_UTIL_H #define NCGEN_UTIL_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen/util.h,v 1.3 2010/04/04 19:39:57 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/CMakeLists.txt b/ncgen3/CMakeLists.txt index 62ff36050..73d5c198d 100644 --- a/ncgen3/CMakeLists.txt +++ b/ncgen3/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(ncgen3_FILES main.c load.c escapes.c getfill.c init.c genlib.c ncgentab.c) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl) @@ -27,9 +33,9 @@ TARGET_LINK_LIBRARIES(ncgen3 netcdf ${ALL_TLL_LIBS}) # test scripts to work. #### IF(MSVC) - SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY + SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG + SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}) SET_TARGET_PROPERTIES(ncgen3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}) @@ -42,12 +48,12 @@ IF(ENABLE_TESTS) IF(USE_NETCDF4) SET(NCGEN3_TESTS ${NCGEN3_TESTS} run_nc4_tests) ENDIF() - + FOREACH(F ${NCGEN3_TESTS}) add_sh_test(ncgen3 ${F}) ENDFOREACH() ENDIF() -INSTALL(TARGETS ncgen3 DESTINATION bin COMPONENT utilities) +INSTALL(TARGETS ncgen3 DESTINATION bin COMPONENT utilities) SET(MAN_FILES ncgen3.1) IF(NOT MSVC) @@ -60,6 +66,5 @@ SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt XGetopt.c Makefile.am ncgen. ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") -SET(CLEANFILES c0.nc c0_64.nc c0_4.nc c0_4c.nc) +SET(CLEANFILES c0.nc c0_64.nc c0_4.nc c0_4c.nc) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEANFILES}") - diff --git a/ncgen3/Makefile.am b/ncgen3/Makefile.am index 39c58576c..3b4de1b84 100644 --- a/ncgen3/Makefile.am +++ b/ncgen3/Makefile.am @@ -1,5 +1,5 @@ # This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the ncgen program. #LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver-verbose @@ -8,7 +8,7 @@ include $(top_srcdir)/lib_flags.am # Link to the netCDF library. -ncgen3_LDADD = ${top_builddir}/liblib/libnetcdf.la +ncgen3_LDADD = ${top_builddir}/liblib/libnetcdf.la # Build ncgen from the listed sources. bin_PROGRAMS = ncgen3 @@ -24,7 +24,7 @@ run_nc4_tests.sh XGetopt.c $(man_MANS) # There is a netcdf classic and netcdf-4 test script, but don't run # them for DLL builds. #if !BUILD_DLL -TESTS = run_tests.sh +TESTS = run_tests.sh if USE_HDF5 TESTS += run_nc4_tests.sh endif # USE_HDF5 diff --git a/ncgen3/escapes.c b/ncgen3/escapes.c index 0e746bac9..a6a838f85 100644 --- a/ncgen3/escapes.c +++ b/ncgen3/escapes.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/escapes.c,v 1.2 1997/03/19 23:15:09 davis Exp $ *********************************************************************/ diff --git a/ncgen3/generic.h b/ncgen3/generic.h index dad48d7d5..996942520 100644 --- a/ncgen3/generic.h +++ b/ncgen3/generic.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/generic.h,v 1.3 1997/04/07 17:23:12 russ Exp $ *********************************************************************/ diff --git a/ncgen3/genlib.c b/ncgen3/genlib.c index a54c06646..1e728502e 100644 --- a/ncgen3/genlib.c +++ b/ncgen3/genlib.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/genlib.c,v 1.54 2009/11/14 22:33:31 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/genlib.h b/ncgen3/genlib.h index 45f139a68..b5e54cc59 100644 --- a/ncgen3/genlib.h +++ b/ncgen3/genlib.h @@ -1,7 +1,7 @@ #ifndef NC_GENLIB_H #define NC_GENLIB_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/genlib.h,v 1.15 2009/12/29 18:42:35 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/getfill.c b/ncgen3/getfill.c index 1fc1197d5..91c6ae6f1 100644 --- a/ncgen3/getfill.c +++ b/ncgen3/getfill.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/getfill.c,v 1.5 2009/11/24 22:09:09 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/init.c b/ncgen3/init.c index f2fe21c2f..068fd0eb7 100644 --- a/ncgen3/init.c +++ b/ncgen3/init.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/init.c,v 1.6 1997/05/23 11:41:14 russ Exp $ *********************************************************************/ diff --git a/ncgen3/load.c b/ncgen3/load.c index 401dd3d2b..98fa9fbeb 100644 --- a/ncgen3/load.c +++ b/ncgen3/load.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: load.c,v 1.35 2009/11/17 18:15:08 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/main.c b/ncgen3/main.c index c27f5ed6a..0d861ad7a 100644 --- a/ncgen3/main.c +++ b/ncgen3/main.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/main.c,v 1.20 2010/03/31 18:18:40 dmh Exp $ *********************************************************************/ diff --git a/ncgen3/ncgen.h b/ncgen3/ncgen.h index 5d5a5c895..7c4e307bc 100644 --- a/ncgen3/ncgen.h +++ b/ncgen3/ncgen.h @@ -1,7 +1,7 @@ #ifndef NC_NCGEN_H #define NC_NCGEN_H /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/ncgen3/ncgen.h,v 1.8 1997/07/07 18:27:04 russ Exp $ *********************************************************************/ diff --git a/ncgen3/ncgen.l b/ncgen3/ncgen.l index 6db3afae2..4240d2edd 100644 --- a/ncgen3/ncgen.l +++ b/ncgen3/ncgen.l @@ -1,6 +1,6 @@ %{ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/12/29 18:42:36 dmh Exp $ *********************************************************************/ @@ -42,7 +42,7 @@ char errstr[100]; /* for short error messages */ #include "ncgentab.h" #define YY_BREAK /* defining as nothing eliminates unreachable - statement warnings from flex output, + statement warnings from flex output, but make sure every action ends with "return" or "break"! */ @@ -105,7 +105,7 @@ escaped \\. nonquotes ([^"\\]|{escaped})* exp ([eE][+-]?[0-9]+) %% -\/\/.* { /* comment */ +\/\/.* { /* comment */ break; } @@ -275,8 +275,8 @@ FloatInf|-?Inff { /* missing value (pre-2.4 backward compatibility) */ return (BYTE_CONST); } -[ \r\t\f]+ { /* whitespace */ - break; +[ \r\t\f]+ { /* whitespace */ + break; } . {/* Note: this next rule will not work for UTF8 characters */ return (yytext[0]) ; @@ -291,4 +291,3 @@ ignore() yyunput(0,NULL); } - diff --git a/ncgen3/ncgen.y b/ncgen3/ncgen.y index 5a0a431dc..d3197ab7c 100644 --- a/ncgen3/ncgen.y +++ b/ncgen3/ncgen.y @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.y,v 1.34 2010/03/31 18:18:41 dmh Exp $ *********************************************************************/ @@ -164,7 +164,7 @@ dimdecl: dimd '=' INT_CONST } ; dimd: dim - { + { if ($1->is_dim == 1) { derror( "duplicate dimension declaration for %s", $1->name); @@ -551,7 +551,7 @@ const: CHAR_CONST if(valnum + len > var_len) { if (vars[varnum].dims[0] != rec_dim) { - derror("too many values for this variable, %d>%d", + derror("too many values for this variable, %d>%d", valnum+len, var_len); exit (5); } else {/* a record variable so grow it */ @@ -645,7 +645,7 @@ const: CHAR_CONST case NC_DOUBLE: *double_valp++ = short_val; break; - default: break; + default: break; } valnum++; } @@ -850,7 +850,7 @@ YYSTYPE lookup(char *sname) { YYSTYPE sp; deescapify(sname); /* delete escape chars from names, - * e.g. 'ab\:cd\ ef' becomes + * e.g. 'ab\:cd\ ef' becomes * 'ab:cd ef' */ for (sp = symlist; sp != (YYSTYPE) 0; sp = sp -> next) if (STREQ(sp -> name, sname)) { diff --git a/ncgen3/ncgenyy.c b/ncgen3/ncgenyy.c index c65ea5b13..85ecc9198 100644 --- a/ncgen3/ncgenyy.c +++ b/ncgen3/ncgenyy.c @@ -824,7 +824,7 @@ char *ncgtext; #line 1 "ncgen.l" #line 2 "ncgen.l" /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: ncgen.l,v 1.24 2009/12/29 18:42:36 dmh Exp $ *********************************************************************/ diff --git a/nctest/CMakeLists.txt b/nctest/CMakeLists.txt index 230092bb0..d7de84a6c 100644 --- a/nctest/CMakeLists.txt +++ b/nctest/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(nctest_SRC add.c atttests.c cdftests.c dimtests.c driver.c emalloc.c error.c misctest.c rec.c slabs.c val.c vardef.c varget.c vargetg.c varput.c varputg.c vartests.c vputget.c vputgetg.c) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh) diff --git a/nctest/Makefile.am b/nctest/Makefile.am index 0ac922b30..506c5eece 100644 --- a/nctest/Makefile.am +++ b/nctest/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This file builds and runs the nctest program, which tests the netCDF # version 2 interface. @@ -7,7 +7,7 @@ # Put together AM_CPPFLAGS and AM_LDFLAGS. include $(top_srcdir)/lib_flags.am -AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la +AM_LDFLAGS += ${top_builddir}/liblib/libnetcdf.la # Running nctest results in a file testfile.nc, which is then checked # to make sure it matches testfile_nc.sav, which was generated under @@ -31,7 +31,7 @@ TESTS = $(TESTPROGRAMS) compare_test_files.sh TEST_EXTENSIONS = .sh # compare_test_files depends on nctest executing first. -compare_test_files.log: nctest.log +compare_test_files.log: nctest.log # These are the source files for the nctest program. nctest_SOURCES = add.c add.h atttests.c cdftests.c dimtests.c driver.c \ diff --git a/nctest/add.c b/nctest/add.c index 96545dbe7..5a6ee58d2 100644 --- a/nctest/add.c +++ b/nctest/add.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/add.c,v 1.18 2008/06/10 19:38:03 russ Exp $ *********************************************************************/ diff --git a/nctest/add.h b/nctest/add.h index b588e86f3..214559c30 100644 --- a/nctest/add.h +++ b/nctest/add.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/add.h,v 1.6 1996/04/30 17:56:54 davis Exp $ *********************************************************************/ diff --git a/nctest/atttests.c b/nctest/atttests.c index de6cf6577..f9d263ffe 100644 --- a/nctest/atttests.c +++ b/nctest/atttests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctst/atttests.c,v 1.18 2006/10/31 16:21:45 ed Exp $ *********************************************************************/ diff --git a/nctest/cdftests.c b/nctest/cdftests.c index 550860d64..c4c516516 100644 --- a/nctest/cdftests.c +++ b/nctest/cdftests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/cdftests.c,v 1.23 2009/02/14 14:11:28 ed Exp $ *********************************************************************/ diff --git a/nctest/dimtests.c b/nctest/dimtests.c index 59e56b3d0..26bce98d2 100644 --- a/nctest/dimtests.c +++ b/nctest/dimtests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/dimtests.c,v 1.14 2006/10/31 16:21:54 ed Exp $ *********************************************************************/ diff --git a/nctest/driver.c b/nctest/driver.c index e2b827768..455986124 100644 --- a/nctest/driver.c +++ b/nctest/driver.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993-2006, UCAR/Unidata + * Copyright 1993-2018, UCAR/Unidata * See COPYRIGHT file for copying and redistribution conditions. * * Test driver for netCDF implementation. This program performs tests @@ -75,10 +75,10 @@ main(int argc, char **argv) /* Skip netCDF-4 - only netCDF-4 classic will work. */ if (format[i] == NC_FORMAT_NETCDF4) continue; - + /* Come up with a test file name. */ sprintf(testfile, "nctest_%s.nc", format_name[i]); - printf("Testing %s with file %s.\n", format_name[i], testfile); + printf("Testing %s with file %s.\n", format_name[i], testfile); /* Set the default format. */ nc_set_default_format(format[i], NULL); @@ -137,7 +137,7 @@ main(int argc, char **argv) } } - + fprintf(stderr, "\nTotal number of failures: %d\n", nerrs); if (nerrs) diff --git a/nctest/emalloc.c b/nctest/emalloc.c index 4f75d1e4f..05dc1c51c 100644 --- a/nctest/emalloc.c +++ b/nctest/emalloc.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/emalloc.c,v 1.11 2006/10/31 16:21:56 ed Exp $ *********************************************************************/ diff --git a/nctest/emalloc.h b/nctest/emalloc.h index d1130f12f..accae61fc 100644 --- a/nctest/emalloc.h +++ b/nctest/emalloc.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nctest/error.c b/nctest/error.c index 1598d70f7..50498b2ca 100644 --- a/nctest/error.c +++ b/nctest/error.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/error.c,v 1.8 2004/11/16 21:33:07 russ Exp $ *********************************************************************/ diff --git a/nctest/error.h b/nctest/error.h index 0a045a1f4..e69fe90fe 100644 --- a/nctest/error.h +++ b/nctest/error.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header $ *********************************************************************/ diff --git a/nctest/misctest.c b/nctest/misctest.c index fcb199e6e..bdc91a994 100644 --- a/nctest/misctest.c +++ b/nctest/misctest.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/misctest.c,v 1.11 2006/10/31 16:21:57 ed Exp $ *********************************************************************/ diff --git a/nctest/rec.c b/nctest/rec.c index 2367aece7..a56c6aafd 100644 --- a/nctest/rec.c +++ b/nctest/rec.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, University Corporation for Atmospheric Research + * Copyright 2018, University Corporation for Atmospheric Research * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/rec.c,v 1.11 2006/10/31 16:21:58 ed Exp $ *********************************************************************/ diff --git a/nctest/slabs.c b/nctest/slabs.c index cac13d672..48b4d1de7 100644 --- a/nctest/slabs.c +++ b/nctest/slabs.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/slabs.c,v 1.13 2009/02/11 16:17:39 ed Exp $ *********************************************************************/ diff --git a/nctest/testcdf.h b/nctest/testcdf.h index 9d569e90b..84c1c27db 100644 --- a/nctest/testcdf.h +++ b/nctest/testcdf.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/testcdf.h,v 1.9 2006/10/31 16:23:43 ed Exp $ *********************************************************************/ diff --git a/nctest/tests.h b/nctest/tests.h index 7f6dedfb3..f2212f955 100644 --- a/nctest/tests.h +++ b/nctest/tests.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993 - 2005, UCAR/Unidata + * Copyright 1993 - 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/tests.h,v 1.8 2006/10/31 16:23:47 ed Exp $ *********************************************************************/ diff --git a/nctest/tst_rename.c b/nctest/tst_rename.c index 0807c8994..21967894f 100644 --- a/nctest/tst_rename.c +++ b/nctest/tst_rename.c @@ -1,5 +1,5 @@ /* This is part of the netCDF package. - Copyright 2010 University Corporation for Atmospheric Research/Unidata + Copyright 2018 University Corporation for Atmospheric Research/Unidata See COPYRIGHT file for conditions of use. Test dim rename that is causing problems with v2 API. diff --git a/nctest/val.c b/nctest/val.c index b7f0f7f62..b7d27820d 100644 --- a/nctest/val.c +++ b/nctest/val.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/val.c,v 1.13 2006/10/31 16:22:01 ed Exp $ *********************************************************************/ diff --git a/nctest/val.h b/nctest/val.h index e78ba5acd..b1a01de3f 100644 --- a/nctest/val.h +++ b/nctest/val.h @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/val.h,v 1.7 2006/10/31 16:23:51 ed Exp $ *********************************************************************/ diff --git a/nctest/vardef.c b/nctest/vardef.c index bf1087408..b02df5dfd 100644 --- a/nctest/vardef.c +++ b/nctest/vardef.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vardef.c,v 1.18 2009/10/28 18:30:50 dmh Exp $ *********************************************************************/ diff --git a/nctest/varget.c b/nctest/varget.c index 4082e1eb3..1f1ab41ad 100644 --- a/nctest/varget.c +++ b/nctest/varget.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/varget.c,v 1.14 2006/10/31 16:22:03 ed Exp $ *********************************************************************/ diff --git a/nctest/vargetg.c b/nctest/vargetg.c index 38df98d30..b02f33b93 100644 --- a/nctest/vargetg.c +++ b/nctest/vargetg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: vargetg.c,v 1.10 2006/10/31 16:22:04 ed Exp $ *********************************************************************/ diff --git a/nctest/varput.c b/nctest/varput.c index c3a51d3c6..2dbdf2d61 100644 --- a/nctest/varput.c +++ b/nctest/varput.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/varput.c,v 1.14 2006/10/31 16:22:05 ed Exp $ *********************************************************************/ diff --git a/nctest/varputg.c b/nctest/varputg.c index c95d4a31e..2ff6edd38 100644 --- a/nctest/varputg.c +++ b/nctest/varputg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: varputg.c,v 1.10 2006/10/31 16:22:06 ed Exp $ *********************************************************************/ diff --git a/nctest/vartests.c b/nctest/vartests.c index fca25947c..8fe35983c 100644 --- a/nctest/vartests.c +++ b/nctest/vartests.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vartests.c,v 1.19 2006/10/31 16:20:49 ed Exp $ *********************************************************************/ diff --git a/nctest/vputget.c b/nctest/vputget.c index 34244fa13..8c2ff2ee9 100644 --- a/nctest/vputget.c +++ b/nctest/vputget.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Header: /upc/share/CVS/netcdf-3/nctest/vputget.c,v 1.13 2006/10/31 16:19:49 ed Exp $ *********************************************************************/ diff --git a/nctest/vputgetg.c b/nctest/vputgetg.c index 5bf931d4b..c4b87b537 100644 --- a/nctest/vputgetg.c +++ b/nctest/vputgetg.c @@ -1,5 +1,5 @@ /********************************************************************* - * Copyright 1993, UCAR/Unidata + * Copyright 2018, UCAR/Unidata * See netcdf/COPYRIGHT file for copying and redistribution conditions. * $Id: vputgetg.c,v 1.13 2006/10/31 16:19:40 ed Exp $ *********************************************************************/ diff --git a/oc2/CMakeLists.txt b/oc2/CMakeLists.txt index 92523aa54..1b4b51f8a 100644 --- a/oc2/CMakeLists.txt +++ b/oc2/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(oc_SOURCES oc.c daplex.c dapparse.c dapy.c occompile.c occurlfunctions.c ocdata.c ocdebug.c ocdump.c ocinternal.c ocnode.c ochttp.c ocread.c ocutil.c xxdr.c) diff --git a/oc2/Makefile.am b/oc2/Makefile.am index b22889b6b..96184efbe 100644 --- a/oc2/Makefile.am +++ b/oc2/Makefile.am @@ -1,5 +1,5 @@ ## This is a automake file, part of Unidata's netCDF package. -# Copyright 2005, see the COPYRIGHT file for more information. +# Copyright 2018, see the COPYRIGHT file for more information. # This automake file generates the Makefile to build netCDF-4. The # generated makefile is not run unless the user selected to build @@ -31,7 +31,7 @@ xxdr.h EXTRA_DIST = dap.y CMakeLists.txt auth.html.in oc.css noinst_LTLIBRARIES = liboc.la -liboc_la_SOURCES = $(SRC) $(HDRS) +liboc_la_SOURCES = $(SRC) $(HDRS) liboc_la_CPPFLAGS = $(AM_CPPFLAGS) # These rule are used if someone wants to rebuild the grammar files. diff --git a/oc2/dap.y b/oc2/dap.y index 9154c61a8..b08b2a067 100644 --- a/oc2/dap.y +++ b/oc2/dap.y @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /*The lines down to DO NOT DELETE ... comment are specific to the C Parser. @@ -17,7 +17,7 @@ int dapdebug = 0; /*DO NOT DELETE THIS LINE*/ -%token SCAN_ALIAS +%token SCAN_ALIAS %token SCAN_ARRAY %token SCAN_ATTR %token SCAN_BYTE @@ -31,14 +31,14 @@ int dapdebug = 0; %token SCAN_GRID %token SCAN_INT16 %token SCAN_INT32 -%token SCAN_MAPS +%token SCAN_MAPS %token SCAN_MESSAGE %token SCAN_SEQUENCE %token SCAN_STRING %token SCAN_STRUCTURE %token SCAN_UINT16 %token SCAN_UINT32 -%token SCAN_URL +%token SCAN_URL /* For errorbody */ %token SCAN_PTYPE %token SCAN_PROG @@ -94,10 +94,10 @@ declaration: | SCAN_GRID '{' SCAN_ARRAY ':' declaration SCAN_MAPS ':' declarations '}' var_name ';' {if(($$=dap_makegrid(parsestate,$10,$5,$8))==null) {YYABORT;}} - | error + | error {dapsemanticerror(parsestate,OC_EBADTYPE,"Unrecognized type"); YYABORT;} ; - + base_type: SCAN_BYTE {$$=(Object)SCAN_BYTE;} @@ -144,7 +144,7 @@ attr_list: ; attribute: - alias ';' {$$=null;} /* ignored */ + alias ';' {$$=null;} /* ignored */ | SCAN_BYTE name bytes ';' {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_BYTE);} | SCAN_INT16 name int16 ';' @@ -164,7 +164,7 @@ attribute: | SCAN_URL name urls ';' {$$=dap_attribute(parsestate,$2,$3,(Object)SCAN_URL);} | name '{' attr_list '}' {$$=dap_attrset(parsestate,$1,$3);} - | error + | error {dapsemanticerror(parsestate,OC_EDAS,"Illegal attribute"); YYABORT;} ; @@ -222,7 +222,7 @@ str_or_id: /* Not used float_or_int: WORD_INT {$$=$1;} - | WORD_DOUBLE {$$=$1;} + | WORD_DOUBLE {$$=$1;} ; */ diff --git a/oc2/daplex.c b/oc2/daplex.c index 4c543e524..bdb4a931a 100644 --- a/oc2/daplex.c +++ b/oc2/daplex.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/dapparse.c b/oc2/dapparse.c index d67ad06ea..f6c8801dd 100644 --- a/oc2/dapparse.c +++ b/oc2/dapparse.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/oc2/dapparselex.h b/oc2/dapparselex.h index 0e763f1dc..4b6197a8e 100644 --- a/oc2/dapparselex.h +++ b/oc2/dapparselex.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef DAPPARSELEX_H diff --git a/oc2/oc.c b/oc2/oc.c index 821093849..4104aa1f0 100644 --- a/oc2/oc.c +++ b/oc2/oc.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/oc.h b/oc2/oc.h index 9f6ebc53d..b5f318cb3 100644 --- a/oc2/oc.h +++ b/oc2/oc.h @@ -1,4 +1,4 @@ -/* Copyright 2014, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT dap for more information. */ /* diff --git a/oc2/occompile.c b/oc2/occompile.c index 0c74c49ae..c22c78bb3 100644 --- a/oc2/occompile.c +++ b/oc2/occompile.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occompile.h b/oc2/occompile.h index 0fb5ffa46..75b110ade 100644 --- a/oc2/occompile.h +++ b/oc2/occompile.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCCOMPILE_H diff --git a/oc2/occonstraints.h b/oc2/occonstraints.h index 4ea31effd..a5de5fc9f 100644 --- a/oc2/occonstraints.h +++ b/oc2/occonstraints.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCCONSTRAINTS_H diff --git a/oc2/occurlflags.c b/oc2/occurlflags.c index d530fc4d5..3f491727a 100644 --- a/oc2/occurlflags.c +++ b/oc2/occurlflags.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occurlfunctions.c b/oc2/occurlfunctions.c index 0832f782d..3334ab1d5 100644 --- a/oc2/occurlfunctions.c +++ b/oc2/occurlfunctions.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/occurlfunctions.h b/oc2/occurlfunctions.h index 6d2b0a033..74f1126e5 100644 --- a/oc2/occurlfunctions.h +++ b/oc2/occurlfunctions.h @@ -1,3 +1,13 @@ +/*! \file + +Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +2015, 2016, 2017, 2018 +University Corporation for Atmospheric Research/Unidata. + +See \ref copyright file for more info. + +*/ /* * occurlfunction.h * diff --git a/oc2/ocdata.c b/oc2/ocdata.c index 6adc60707..26179d273 100644 --- a/oc2/ocdata.c +++ b/oc2/ocdata.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocdata.h b/oc2/ocdata.h index 0711ac363..36c80a414 100644 --- a/oc2/ocdata.h +++ b/oc2/ocdata.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDATA_H diff --git a/oc2/ocdatatypes.h b/oc2/ocdatatypes.h index d34c508e4..93310d42d 100644 --- a/oc2/ocdatatypes.h +++ b/oc2/ocdatatypes.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDATATYPES_H diff --git a/oc2/ocdebug.c b/oc2/ocdebug.c index 986c88838..0be96d8d1 100644 --- a/oc2/ocdebug.c +++ b/oc2/ocdebug.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocdebug.h b/oc2/ocdebug.h index ae64f085d..c0ac64315 100644 --- a/oc2/ocdebug.h +++ b/oc2/ocdebug.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCOCDBG_H diff --git a/oc2/ocdump.c b/oc2/ocdump.c index 839eb9362..c395a0a64 100644 --- a/oc2/ocdump.c +++ b/oc2/ocdump.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/oc2/ocdump.h b/oc2/ocdump.h index c9463155d..1a6eba536 100644 --- a/oc2/ocdump.h +++ b/oc2/ocdump.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCDUMP_H diff --git a/oc2/ochttp.c b/oc2/ochttp.c index cbb1b76cb..e6ae849c5 100644 --- a/oc2/ochttp.c +++ b/oc2/ochttp.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ochttp.h b/oc2/ochttp.h index ab720ed39..284fe87cf 100644 --- a/oc2/ochttp.h +++ b/oc2/ochttp.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef HTTP_H diff --git a/oc2/ocinternal.c b/oc2/ocinternal.c index 947d17c3c..9450ce9ea 100644 --- a/oc2/ocinternal.c +++ b/oc2/ocinternal.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocinternal.h b/oc2/ocinternal.h index f0e464223..58d51fc0d 100644 --- a/oc2/ocinternal.h +++ b/oc2/ocinternal.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCINTERNAL_H diff --git a/oc2/ocnode.c b/oc2/ocnode.c index 46604837a..b394e52ea 100644 --- a/oc2/ocnode.c +++ b/oc2/ocnode.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocnode.h b/oc2/ocnode.h index 23f9967f1..9c59624a1 100644 --- a/oc2/ocnode.h +++ b/oc2/ocnode.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCNODE_H diff --git a/oc2/ocread.c b/oc2/ocread.c index 81485316d..67cf55aac 100644 --- a/oc2/ocread.c +++ b/oc2/ocread.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocread.h b/oc2/ocread.h index 0d380ac1a..f3b0e5490 100644 --- a/oc2/ocread.h +++ b/oc2/ocread.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef READ_H diff --git a/oc2/ocutil.c b/oc2/ocutil.c index 158608f03..61ba2938c 100644 --- a/oc2/ocutil.c +++ b/oc2/ocutil.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #include "config.h" diff --git a/oc2/ocutil.h b/oc2/ocutil.h index 453efa583..56e960b6b 100644 --- a/oc2/ocutil.h +++ b/oc2/ocutil.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ #ifndef OCUTIL_H diff --git a/oc2/ocx.h b/oc2/ocx.h index d00c16478..baa5d09b8 100644 --- a/oc2/ocx.h +++ b/oc2/ocx.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT dap for more information. */ /* diff --git a/oc2/xxdr.c b/oc2/xxdr.c index 9ccb65d20..1ac74b0f8 100644 --- a/oc2/xxdr.c +++ b/oc2/xxdr.c @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ /* diff --git a/oc2/xxdr.h b/oc2/xxdr.h index 8139892b2..6929bef74 100644 --- a/oc2/xxdr.h +++ b/oc2/xxdr.h @@ -1,4 +1,4 @@ -/* Copyright 2009, UCAR/Unidata and OPeNDAP, Inc. +/* Copyright 2018, UCAR/Unidata and OPeNDAP, Inc. See the COPYRIGHT file for more information. */ diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index e5ba4e21d..9b5d30ce4 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -1,3 +1,9 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. SET(CMAKE_BUILD_TYPE "") SET(libbzip2_SOURCES blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c H5Zbzip2.c) diff --git a/test_common.in b/test_common.in index b8af51855..67f7cc1c0 100644 --- a/test_common.in +++ b/test_common.in @@ -1,3 +1,10 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, +# 2015, 2016, 2017, 2018 +# University Corporation for Atmospheric Research/Unidata. + +# See netcdf-c/COPYRIGHT file for more info. + TOPSRCDIR='@abs_top_srcdir@' TOPBUILDDIR='@abs_top_builddir@' diff --git a/test_prog.c b/test_prog.c index d0c6706a0..ba9a6fd46 100644 --- a/test_prog.c +++ b/test_prog.c @@ -1,10 +1,10 @@ -/* This is part of Unidata's netCDF package. Copyright 2009. +/* This is part of Unidata's netCDF package. Copyright 2018. This is a test program for the nc-config utility. */ #include #include int -main() +main() { printf("NetCDF version: %s\n", nc_inq_libvers()); printf("*** SUCCESS!\n");