diff --git a/doc/doxygen/modules.txt b/doc/doxygen/modules.txt index 317d5de6cca889091028f1372d5d90965ea7f07f..bce8b3d1aa57dcd8e571da4db7e3a7f9ed24ed70 100644 --- a/doc/doxygen/modules.txt +++ b/doc/doxygen/modules.txt @@ -54,6 +54,12 @@ * # Saturation * \copydetails Dumux::FVSaturation2P */ + /*! + * \ingroup Porousmediaflow + * \defgroup TwoPOneCModel 2p1c (two-phase, one-component Darcy flow) + * + * \copydetails Dumux::TwoPOneCModel + */ /*! * \ingroup Porousmediaflow * \defgroup TwoPTwoCModels 2p2c (two-phase, two-component Darcy flow) diff --git a/doc/handbook/dumux-handbook.bib b/doc/handbook/dumux-handbook.bib index 96c774ad67a619366d702408a34f3f11d73adec4..7edb5dd91ea1f319d114d7e2bbb27c25043a2184 100644 --- a/doc/handbook/dumux-handbook.bib +++ b/doc/handbook/dumux-handbook.bib @@ -608,6 +608,18 @@ edition = {1} } +@article{gudbjerg2004, +title = {{On spurious water flow during numerical simulation of steam injection into water-saturated soil}}, +author = {{J. Gudbjerg and O. Trötschler and A. Färber and T.O. Sonnenborg and K.H. Jensen}}, +journal = {{Journal of Contaminant Hydrology}}, +volume = {75}, +number = {3–4}, +pages = {297 - 318}, +year = {2004}, +doi = {http://dx.doi.org/10.1016/j.jconhyd.2004.07.003}, +url = {http://www.sciencedirect.com/science/article/pii/S0169772204001160} +} + @INPROCEEDINGS{A3:freiboth:2004, author = {S. H\"olzemann and H. Class and R. Helmig}, title = {{A New Concept for the Numerical Simulation and Parameter Identification diff --git a/dumux/material/fluidsystems/2pliquidvapor.hh b/dumux/material/fluidsystems/2pliquidvapor.hh new file mode 100644 index 0000000000000000000000000000000000000000..9d4db7ce3d541d4e45760075a3c43fc07ab7a0e8 --- /dev/null +++ b/dumux/material/fluidsystems/2pliquidvapor.hh @@ -0,0 +1,578 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief @copybrief Dumux::FluidSystems::TwoPLiquidVaporFluidsystem + */ +#ifndef DUMUX_2P_LIQUID_VAPOR_FLUID_SYSTEM_HH +#define DUMUX_2P_LIQUID_VAPOR_FLUID_SYSTEM_HHH + +#include +#include + +#include +#include +#include + +#include + +#include "base.hh" + +namespace Dumux +{ +namespace FluidSystems +{ + +/*! + * \ingroup Fluidsystems + * + * \brief A two-phase fluid system with only one component. + * + * + * This FluidSystem can be used without the PropertySystem that is applied in Dumux, + * as all Parameters are defined via template parameters. Hence it is in an + * additional namespace Dumux::FluidSystem::. + * An adapter class using Dumux::FluidSystem is also provided + * at the end of this file. + */ +template +class TwoPLiquidVaporFluidsystem + : public BaseFluidSystem > +{ + // do not try to instantiate this class, it has only static members! + TwoPLiquidVaporFluidsystem() + {} + + typedef TwoPLiquidVaporFluidsystem ThisType; + typedef BaseFluidSystem Base; + typedef ComponentType Component; + +public: + /**************************************** + * Fluid phase related static parameters + ****************************************/ + + //! Number of phases in the fluid system + static constexpr int numPhases = 2; + + static constexpr int wPhaseIdx = 0; // index of the wetting phase + static constexpr int nPhaseIdx = 1; // index of the non-wetting phase + + + /*! + * \brief Return the human readable name of a fluid phase + * + * \param phaseIdx The index of the fluid phase to consider + */ + static const char *phaseName(int phaseIdx) + { + static const char *name[] = { + "liquid", + "vapor", + }; + + assert(0 <= phaseIdx && phaseIdx < numPhases); + return name[phaseIdx]; + } + + /*! + * \brief Return whether a phase is liquid + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isLiquid(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + return phaseIdx != nPhaseIdx; + } + + /*! + * \brief Returns true if and only if a fluid phase is assumed to + * be an ideal mixture. + * + * We define an ideal mixture as a fluid phase where the fugacity + * coefficients of all components times the pressure of the phase + * are indepent on the fluid composition. This assumtion is true + * if Henry's law and Rault's law apply. If you are unsure what + * this function should return, it is safe to return false. The + * only damage done will be (slightly) increased computation times + * in some cases. + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isIdealMixture(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // we assume Henry's and Rault's laws for the water phase and + // and no interaction between gas molecules of different + // components, so all phases are ideal mixtures! + return true; + } + + /*! + * \brief Returns true if and only if a fluid phase is assumed to + * be compressible. + * + * Compressible means that the partial derivative of the density + * to the fluid pressure is always larger than zero. + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isCompressible(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // gases are always compressible + if (phaseIdx == nPhaseIdx) + return true; + // the component decides for the liquid phase... + return Component::liquidIsCompressible(); + } + + /*! + * \brief Returns true if and only if a fluid phase is assumed to + * be an ideal gas. + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isIdealGas(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + if (phaseIdx == nPhaseIdx) + // let the components decide + return Component::gasIsIdeal(); + return false; // not a gas + } + + /**************************************** + * Component related static parameters + ****************************************/ + + //! Number of components in the fluid system + static constexpr int numComponents = 1; + + static constexpr int ComponentIdx = 0; + + + + /*! + * \brief Return the human readable name of a component + * + * \param compIdx The index of the component to consider + */ + static const char *componentName(int compIdx) + { + static const char *name[] = { + Component::name() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return name[compIdx]; + } + + /*! + * \brief Return the molar mass of a component in [kg/mol]. + * + * \param compIdx The index of the component to consider + */ + static Scalar molarMass(int compIdx) + { + static const Scalar M[] = { + Component::molarMass() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return M[compIdx]; + } + + /*! + * \brief Critical temperature of a component [K]. + * + * \param compIdx The index of the component to consider + */ + static Scalar criticalTemperature(int compIdx) + { + static const Scalar Tcrit[] = { + Component::criticalTemperature() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return Tcrit[compIdx]; + } + + /*! + * \brief Critical pressure of a component [Pa]. + * + * \param compIdx The index of the component to consider + */ + static Scalar criticalPressure(int compIdx) + { + static const Scalar pcrit[] = { + Component::criticalPressure() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return pcrit[compIdx]; + } + + /*! + * \brief Molar volume of a component at the critical point [m^3/mol]. + * + * \param compIdx The index of the component to consider + */ + static Scalar criticalMolarVolume(int compIdx) + { + DUNE_THROW(Dune::NotImplemented, + "TwoPLiquidVaporFluidsystem::criticalMolarVolume()"); + return 0; + } + + /*! + * \brief The acentric factor of a component []. + * + * \param compIdx The index of the component to consider + */ + static Scalar acentricFactor(int compIdx) + { + static const Scalar accFac[] = { + Component::acentricFactor(), // H2O (from Reid, et al.) + }; + + assert(0 <= compIdx && compIdx < numComponents); + return accFac[compIdx]; + } + + /**************************************** + * thermodynamic relations + ****************************************/ + + /*! + * \brief Initialize the fluid system's static parameters generically + * + * If a tabulated H2O component is used, we do our best to create + * tables that always work. + */ + static void init() + { + init(/*tempMin=*/273.15, + /*tempMax=*/623.15, + /*numTemp=*/100, + /*pMin=*/0.0, + /*pMax=*/20e6, + /*numP=*/200); + } + + /*! + * \brief Initialize the fluid system's static parameters using + * problem specific temperature and pressure ranges + * + * \param tempMin The minimum temperature used for tabulation of water [K] + * \param tempMax The maximum temperature used for tabulation of water [K] + * \param nTemp The number of ticks on the temperature axis of the table of water + * \param pressMin The minimum pressure used for tabulation of water [Pa] + * \param pressMax The maximum pressure used for tabulation of water [Pa] + * \param nPress The number of ticks on the pressure axis of the table of water + */ + static void init(Scalar tempMin, Scalar tempMax, unsigned nTemp, + Scalar pressMin, Scalar pressMax, unsigned nPress) + { + if (Component::isTabulated) { + std::cout << "Initializing tables for the fluid properties (" + << nTemp*nPress + << " entries).\n"; + + Component::init(tempMin, tempMax, nTemp, + pressMin, pressMax, nPress); + } + } + + /*! + * \brief Calculate the density [kg/m^3] of a fluid phase + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::density; + template + static Scalar density(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + Scalar T = fluidState.temperature(phaseIdx); + Scalar p = fluidState.pressure(phaseIdx); + + // liquid phase + if (phaseIdx == wPhaseIdx) { + return Component::liquidDensity(T, p); + } + else if (phaseIdx == nPhaseIdx)// gas phase + { + return Component::gasDensity(T, p); + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief Calculate the dynamic viscosity of a fluid phase [Pa*s] + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::viscosity; + template + static Scalar viscosity(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + Scalar T = fluidState.temperature(phaseIdx); + Scalar p = fluidState.pressure(phaseIdx); + + // liquid phase + if (phaseIdx == wPhaseIdx) { + return Component::liquidViscosity(T, p); + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return Component::gasViscosity(T, p) ; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief calculate the temperature of vapor at a given pressure on the vapor pressure curve. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + template + static Scalar vaporTemperature(const FluidState &fluidState, + const unsigned int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + Scalar pressure = fluidState.pressure(nPhaseIdx) ; + + return Component::vaporTemperature( pressure ) ; + } + + /*! + * \brief Calculate the fugacity coefficient [Pa] of an individual + * component in a fluid phase + * + * The fugacity coefficient \f$\phi^\kappa_\alpha\f$ of + * component \f$\kappa\f$ in phase \f$\alpha\f$ is connected to + * the fugacity \f$f^\kappa_\alpha\f$ and the component's mole + * fraction \f$x^\kappa_\alpha\f$ by means of the relation + * + * \f[ + f^\kappa_\alpha = \phi^\kappa_\alpha\;x^\kappa_\alpha\;p_\alpha + \f] + * where \f$p_\alpha\f$ is the pressure of the fluid phase. + * + * The quantity "fugacity" itself is just an other way to express + * the chemical potential \f$\zeta^\kappa_\alpha\f$ of the + * component. It is defined via + * + * \f[ + f^\kappa_\alpha := \exp\left\{\frac{\zeta^\kappa_\alpha}{k_B T_\alpha} \right\} + \f] + * where \f$k_B = 1.380\cdot10^{-23}\;J/K\f$ is the Boltzmann constant. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + * \param compIdx The index of the component to consider + */ + using Base::fugacityCoefficient; + template + static Scalar fugacityCoefficient(const FluidState &fluidState, + int phaseIdx, + int compIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + assert(0 <= compIdx && compIdx < numComponents); + + Scalar T = fluidState.temperature(phaseIdx); + Scalar p = fluidState.pressure(phaseIdx); + + // liquid phase + if (phaseIdx == wPhaseIdx) + { + return Component::vaporPressure(T)/p; + } + + // for the gas phase, assume an ideal gas when it comes to + // fugacity (-> fugacity == partial pressure) + else + { + return 1.0; + + } + } + + + /*! + * \brief Calculate the molecular diffusion coefficient for a + * component in a fluid phase [mol^2 * s / (kg*m^3)] + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + * \param compIdx The index of the component to consider + */ + using Base::diffusionCoefficient; + template + static Scalar diffusionCoefficient(const FluidState &fluidState, + int phaseIdx, + int compIdx) + { + // TODO! + DUNE_THROW(Dune::NotImplemented, "Diffusion coefficients"); + } + + /*! + * \brief Given a phase's composition, temperature and pressure, + * return the binary diffusion coefficient for components + * \f$i\f$ and \f$j\f$ in this phase. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + * \param compIIdx The index of the first component to consider + * \param compJIdx The index of the second component to consider + */ + using Base::binaryDiffusionCoefficient; + template + static Scalar binaryDiffusionCoefficient(const FluidState &fluidState, + int phaseIdx, + int compIIdx, + int compJIdx) + + { + DUNE_THROW(Dune::NotImplemented, "Binary Diffusion coefficients"); + } + + /*! + * \brief Calculate specific enthalpy [J/kg]. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::enthalpy; + template + static Scalar enthalpy(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + // liquid phase + if (phaseIdx == wPhaseIdx) { + return Component::liquidEnthalpy(fluidState.temperature(phaseIdx), + fluidState.pressure(phaseIdx)); + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return Component::gasEnthalpy(fluidState.temperature(phaseIdx), + fluidState.pressure(phaseIdx)); + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief Thermal conductivity of a fluid phase [W/(m K)]. + * + * Use the conductivity of vapor and liquid water at 100°C + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::thermalConductivity; + template + static Scalar thermalConductivity(const FluidState &fluidState, + const int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // liquid phase + if (phaseIdx == wPhaseIdx) { + return Component::liquidThermalConductivity(fluidState.temperature(phaseIdx), + fluidState.pressure(phaseIdx)); //0.68 ; + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return Component::gasThermalConductivity(fluidState.temperature(phaseIdx), + fluidState.pressure(phaseIdx)); //0.0248; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief Specific isobaric heat capacity of a fluid phase. + * \f$\mathrm{[J/kg / K]}\f$. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::heatCapacity; + template + static Scalar heatCapacity(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // liquid phase + if (phaseIdx == wPhaseIdx) { + return Component::liquidHeatCapacity(fluidState.temperature(phaseIdx), + fluidState.pressure(phaseIdx));//4.217e3 ; + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return Component::gasHeatCapacity(fluidState.temperature(phaseIdx), + fluidState.pressure(phaseIdx));//2.029e3; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } +}; + +} // end namespace FluidSystems + +#ifdef DUMUX_PROPERTIES_HH +// forward defintions of the property tags +namespace Properties { +NEW_PROP_TAG(Scalar); +NEW_PROP_TAG(Components); +} +/*! + * \brief A two-phase fluid system with only one component. + * + * This is an adapter to use Dumux::TwoPLiquidVaporFluidsystem, as is + * done with most other classes in Dumux. + */ +template +class TwoPLiquidVaporFluidsystem +: public FluidSystems::TwoPLiquidVaporFluidsystem +{}; +#endif + +} // end namespace + +#endif diff --git a/dumux/porousmediumflow/2p1c/CMakeLists.txt b/dumux/porousmediumflow/2p1c/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba8341c614f1a2c797c95f5402f602025f1087b1 --- /dev/null +++ b/dumux/porousmediumflow/2p1c/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory("implicit") diff --git a/dumux/porousmediumflow/2p1c/implicit/CMakeLists.txt b/dumux/porousmediumflow/2p1c/implicit/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..d5c0899adf06164a0f194e86e8a06f13d6b90c91 --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/CMakeLists.txt @@ -0,0 +1,11 @@ + +#install headers +install(FILES +indices.hh +localresidual.hh +model.hh +newtoncontroller.hh +properties.hh +propertydefaults.hh +volumevariables.hh +DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/porousmediumflow/2p1c/implicit) diff --git a/dumux/porousmediumflow/2p1c/implicit/indices.hh b/dumux/porousmediumflow/2p1c/implicit/indices.hh new file mode 100644 index 0000000000000000000000000000000000000000..49a07a06e8fea6035c1e9e8d98799e83212b734b --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/indices.hh @@ -0,0 +1,67 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * \brief Defines the indices required for the 2p1cni model. + * + *Important note: The 2p1c model requires the use of the non-isothermal extension found in dumux/implicit/nonisothermal + */ +#ifndef DUMUX_2P1C_INDICES_HH +#define DUMUX_2P1C_INDICES_HH + +#include "properties.hh" + +namespace Dumux +{ + +/*! + * \ingroup TwoPOneCModel + * \ingroup ImplicitIndices + * \brief The indices for the isothermal 2p1cni model. + * + * \tparam formulation The formulation, only pgSwSn + * \tparam PVOffset The first index in a primary variable vector. + */ +template +class TwoPOneCIndices +{ + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + +public: + // Phase indices + static const int wPhaseIdx = FluidSystem::wPhaseIdx; //!< index of the wetting liquid phase + static const int gPhaseIdx = FluidSystem::nPhaseIdx; //!< index of the gas phase + + // present phases (-> 'pseudo' primary variable) + static const int twoPhases = 1; //!< All three phases are present + static const int wPhaseOnly = 2; //!< Only the water phase is present + static const int gPhaseOnly = 3; //!< Only gas phase is present + + // Primary variable indices + static const int pressureIdx = PVOffset + 0; //!< Index for phase pressure in a solution vector + static const int switch1Idx = PVOffset + 1; //!< Index of saturation or temperature + + // equation indices + static const int conti0EqIdx = PVOffset + 0; //wCompIdx; //!< Index of the mass conservation equation for the water component + static const int energyEqIdx = PVOffset + 1;//! The index for energy in equation vectors. +}; + +} + +#endif diff --git a/dumux/porousmediumflow/2p1c/implicit/localresidual.hh b/dumux/porousmediumflow/2p1c/implicit/localresidual.hh new file mode 100644 index 0000000000000000000000000000000000000000..bb1fb8cb1c48a57f835f0a6cbcbde4ab6e6f9654 --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/localresidual.hh @@ -0,0 +1,272 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Element-wise calculation of the Jacobian matrix for problems + * using the two-phase one-component fully implicit model. + * + * Important note: The 2p1c model requires the use of the non-isothermal extension found in dumux/porousmediumflow/nonisothermal/implicit/ + */ +#ifndef DUMUX_2P1C_LOCAL_RESIDUAL_HH +#define DUMUX_2P1C_LOCAL_RESIDUAL_HH + +#include "properties.hh" + +namespace Dumux +{ +/*! + * \ingroup TwoPOneCModel + * \ingroup ImplicitLocalResidual + * \brief Element-wise calculation of the Jacobian matrix for problems + * using the two-phase one-component fully implicit model. + * + * This class depends on the non-isothermal model. + * + */ +template +class TwoPOneCLocalResidual: public GET_PROP_TYPE(TypeTag, BaseLocalResidual) +{ +protected: + typedef typename GET_PROP_TYPE(TypeTag, LocalResidual) Implementation; + + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes; + + + enum { + numPhases = GET_PROP_VALUE(TypeTag, NumPhases), + numComponents = GET_PROP_VALUE(TypeTag, NumComponents), + + conti0EqIdx = Indices::conti0EqIdx, //!< Index of the mass conservation equation for the water component + energyEqIdx = Indices::energyEqIdx, //!< Index of the energy conservation equation + wPhaseIdx = Indices::wPhaseIdx, + gPhaseIdx = Indices::gPhaseIdx, + }; + + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables; + + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GridView::template Codim<0>::Entity Element; + + static const bool useBlockingOfSpuriousFlow = GET_PROP_VALUE(TypeTag, UseBlockingOfSpuriousFlow); + +public: + + /*! + * \brief Evaluate the amount all conservation quantities + * (e.g. phase mass) within a sub-control volume. + * + * The result should be averaged over the volume (e.g. phase mass + * inside a sub control volume divided by the volume) + * + * \param storage The mass of the component within the sub-control volume + * \param scvIdx The SCV (sub-control-volume) index + * \param usePrevSol Evaluate function with solution of current or previous time step + */ + void computeStorage(PrimaryVariables &storage, const int scvIdx, bool usePrevSol) const + { + // if flag usePrevSol is set, the solution from the previous + // time step is used, otherwise the current solution is + // used. The secondary variables are used accordingly. This + // is required to compute the derivative of the storage term + // using the implicit euler method. + const ElementVolumeVariables &elemVolVars = usePrevSol ? this->prevVolVars_() : this->curVolVars_(); + const VolumeVariables &volVars = elemVolVars[scvIdx]; + + // compute storage term of all components within all phases + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) + { + storage[conti0EqIdx] += + volVars.porosity() + * volVars.saturation(phaseIdx) * volVars.density(phaseIdx); + } + } + + /*! + * \brief Evaluates the total flux of all conservation quantities + * over a face of a sub-control volume. + * + * \param flux The flux over the SCV (sub-control-volume) face for each component + * \param faceIdx The index of the SCV face + * \param onBoundary A boolean variable to specify whether the flux variables + * are calculated for interior SCV faces or boundary faces, default=false + */ + void computeFlux(PrimaryVariables &flux, const int faceIdx, const bool onBoundary=false) const + { + FluxVariables fluxVars; + fluxVars.update(this->problem_(), + this->element_(), + this->fvGeometry_(), + faceIdx, + this->curVolVars_(), + onBoundary); + + flux = 0; + computeAdvectiveFlux(flux, fluxVars); + asImp_()->computeDiffusiveFlux(flux, fluxVars); + } + + /*! + * \brief Evaluates the advective mass flux of all components over + * a face of a subcontrol volume. + * + * \param flux The advective flux over the sub-control-volume face for each component + * \param fluxVars The flux variables at the current SCV + */ + + void computeAdvectiveFlux(PrimaryVariables &flux, const FluxVariables &fluxVars) const + { + Scalar massUpwindWeight = GET_PARAM_FROM_GROUP(TypeTag, Scalar, Implicit, MassUpwindWeight); + + // loop over all phases + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) + { + // data attached to upstream and the downstream vertices + // of the current phase + const VolumeVariables &up = this->curVolVars_(fluxVars.upstreamIdx(phaseIdx)); + const VolumeVariables &dn = this->curVolVars_(fluxVars.downstreamIdx(phaseIdx)); + + Scalar factor = 1.0; + + // factor for the blocking of spurious cold water fluxes into the steam zone (Gudbjerg, 2004) + if(useBlockingOfSpuriousFlow) + { factor = factor_(up, dn, phaseIdx); } + + + // advective mass flux + flux[conti0EqIdx] += fluxVars.volumeFlux(phaseIdx) + * (massUpwindWeight + * up.fluidState().density(phaseIdx) + + (1.0 - massUpwindWeight) + * dn.fluidState().density(phaseIdx)) + * factor ; + + // advective heat flux + flux[energyEqIdx] += fluxVars.volumeFlux(phaseIdx) + * (massUpwindWeight + * up.density(phaseIdx) + * up.enthalpy(phaseIdx) + + (1.0 - massUpwindWeight) + * dn.density(phaseIdx) + * dn.enthalpy(phaseIdx)) + * factor ; + } + } + + /*! + * \brief Adds the diffusive mass flux of all components over + * a face of a subcontrol volume. + * + * \param flux The diffusive flux over the sub-control-volume face for each component + * \param fluxVars The flux variables at the current SCV + */ + void computeDiffusiveFlux(PrimaryVariables &flux, const FluxVariables &fluxVars) const + {} + + /*! + * \brief Returns true if a spurious flow has been detected + * + */ + const bool spuriousFlowDetected() const + { + return spuriousFlowDetected_; + } + + /*! + * \brief Used to reset the respective flag + * + */ + void resetSpuriousFlowDetected() + { + spuriousFlowDetected_ = false; + } + +protected: + + /*! + * \brief Calculate the blocking factor which prevents spurious cold water fluxes into the steam zone (Gudbjerg et al., 2005) \cite gudbjerg2004
+ * + * \param up The upstream volume variables + * \param dn The downstream volume variables + * \param phaseIdx The index of the fluid phase + */ + Scalar factor_(const VolumeVariables &up, const VolumeVariables &dn,const int phaseIdx) const { + + Scalar factor = 1.0; + + Scalar tDn = dn.temperature(); //temperature of the downstream SCV (where the cold water is potentially intruding into a steam zone) + Scalar tUp = up.temperature(); //temperature of the upstream SCV + + Scalar sgDn = dn.saturation(gPhaseIdx); //gas phase saturation of the downstream SCV + Scalar sgUp = up.saturation(gPhaseIdx); //gas phase saturation of the upstream SCV + + bool upIsNotSteam = false; + bool downIsSteam = false; + bool spuriousFlow = false; + + if(sgUp <= 1e-5) + {upIsNotSteam = true;} + + if(sgDn > 1e-5) + {downIsSteam = true;} + + if(upIsNotSteam && downIsSteam && tDn > tUp && phaseIdx == wPhaseIdx) + { + spuriousFlow = true; + spuriousFlowDetected_ = true; + } + + if(spuriousFlow) + { + Scalar deltaT = tDn - tUp; + + if((deltaT) > 15 ) + {factor = 0.0 ;} + + else + { factor = 1-(deltaT/15); } + + } + return factor; + } + + Implementation *asImp_() + { + return static_cast (this); + } + + const Implementation *asImp_() const + { + return static_cast (this); + } + +private: + mutable bool spuriousFlowDetected_;// true if spurious cold-water flow into a steam zone is happening +}; + +} // end namespace + +#endif diff --git a/dumux/porousmediumflow/2p1c/implicit/model.hh b/dumux/porousmediumflow/2p1c/implicit/model.hh new file mode 100644 index 0000000000000000000000000000000000000000..2502b0c2ecc0dd35df427f3f225153d9bdd46cdb --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/model.hh @@ -0,0 +1,579 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Adaption of the fully implicit scheme to the two-phase one-component flow model. + * + */ +#ifndef DUMUX_2P1C_MODEL_HH +#define DUMUX_2P1C_MODEL_HH + +#include +#include "properties.hh" + +namespace Dumux +{ +/*! + * \ingroup TwoPOneCModel + * \brief Adaption of the fully implicit scheme to the two-phase one-component flow model. + * + * \note The 2p1c model requires the use of the non-isothermal extension found in dumux/implicit/nonisothermal. + * + * This model is designed for simulating two fluid phases with water as the only component. + * It is particularly suitable for the simulation of steam injection in saturated conditions. + * + * The model implements the flow of two phases and one component, i.e. a pure liquid (e.g. water) + * and its vapor (e.g. steam), + * \f$\alpha \in \{ w, n \}\f$ using a standard multiphase Darcy + * approach as the equation for the conservation of momentum, i.e. + \f[ + v_\alpha = - \frac{k_{r\alpha}}{\mu_\alpha} \textbf{K} + \left(\textbf{grad}\, p_\alpha - \varrho_{\alpha} {\textbf g} \right) + \f] + * + * By inserting this into the equation for the conservation of the + * phase mass, one gets + \f[ +\phi \frac{\partial\ \sum_\alpha (\rho_\alpha S_\alpha)}{\partial t} \\-\sum \limits_ \alpha \text{div} \left \{\rho_\alpha \frac{k_{r\alpha}}{\mu_\alpha} +\mathbf{K} (\mathbf{grad}p_\alpha - \rho_\alpha \mathbf{g}) \right \} -q^w =0 + \f] + * + * All equations are discretized using a vertex-centered finite volume (box) + * or cell-centered finite volume scheme as spatial + * and the implicit Euler method as time discretization. + * + * By using constitutive relations for the capillary pressure \f$p_c = + * p_n - p_w\f$ and relative permeability \f$k_{r\alpha}\f$ and taking + * advantage of the fact that \f$S_w + S_n = 1\f$, the number of + * unknowns can be reduced to two. The model features a primary variable switch. + * If only one phase is present, \f$p_g\f$ and \f$T\f$ are the primary variables. + * In the presence of two phases, \f$p_g\f$ and \f$S_w\f$ become the new primary variables. + */ +template +class TwoPOneCModel: public GET_PROP_TYPE(TypeTag, BaseModel) +{ + typedef typename GET_PROP_TYPE(TypeTag, BaseModel) ParentType; + + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector; + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + + enum { + dim = GridView::dimension, + dimWorld = GridView::dimensionworld, + + numPhases = GET_PROP_VALUE(TypeTag, NumPhases), + numComponents = GET_PROP_VALUE(TypeTag, NumComponents), + + pressureIdx = Indices::pressureIdx, + switch1Idx = Indices::switch1Idx, + + wPhaseIdx = Indices::wPhaseIdx, + gPhaseIdx = Indices::gPhaseIdx, + + twoPhases = Indices::twoPhases, + wPhaseOnly = Indices::wPhaseOnly, + gPhaseOnly = Indices::gPhaseOnly, + }; + + typedef typename GridView::template Codim::Entity Vertex; + typedef typename GridView::template Codim<0>::Entity Element; + typedef typename GridView::template Codim<0>::Iterator ElementIterator; + typedef typename GridView::template Codim::Iterator VertexIterator; + typedef Dune::FieldMatrix FieldMatrix; + + typedef Dune::FieldVector GlobalPosition; + + + enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) }; + enum { dofCodim = isBox ? dim : 0 }; + +public: + /*! + * \brief Initialize the static data with the initial solution. + * + * \param problem The problem to be solved + */ + void init(Problem &problem) + { + ParentType::init(problem); + + staticDat_.resize(this->numDofs()); + + setSwitched_(false); + + if (isBox) + { + for(const auto& vertex: vertices(this->gridView_())) + { + int globalIdx = this->dofMapper().index(vertex); + const GlobalPosition &globalPos = vertex.geometry().corner(0); + + // initialize phase presence + staticDat_[globalIdx].phasePresence + = this->problem_().initialPhasePresence(vertex, globalIdx, + globalPos); + staticDat_[globalIdx].wasSwitched = false; + + staticDat_[globalIdx].oldPhasePresence + = staticDat_[globalIdx].phasePresence; + } + } + else + { + for (const auto& element : elements(this->gridView_())) + { + int globalIdx = this->dofMapper().index(element); + const GlobalPosition &globalPos = element.geometry().center(); + + // initialize phase presence + staticDat_[globalIdx].phasePresence + = this->problem_().initialPhasePresence(*this->gridView_().template begin (), + globalIdx, globalPos); + staticDat_[globalIdx].wasSwitched = false; + + staticDat_[globalIdx].oldPhasePresence + = staticDat_[globalIdx].phasePresence; + } + } + } + + /*! + * \brief Called by the update() method if applying the newton + * method was unsuccessful. + */ + void updateFailed() + { + ParentType::updateFailed(); + + setSwitched_(false); + resetPhasePresence_(); + }; + + /*! + * \brief Called by the problem if a time integration was + * successful, post processing of the solution is done and the + * result has been written to disk. + * + * This should prepare the model for the next time integration. + */ + void advanceTimeLevel() + { + ParentType::advanceTimeLevel(); + + // update the phase state + updateOldPhasePresence_(); + setSwitched_(false); + } + + /*! + * \brief Return true if the primary variables were switched for + * at least one vertex after the last timestep. + */ + bool switched() const + { + return switchFlag_; + } + + /*! + * \brief Returns the phase presence of the current or the old solution of a degree of freedom. + * + * \param globalIdx The global index of the degree of freedom + * \param oldSol Evaluate function with solution of current or previous time step + */ + int phasePresence(int globalIdx, bool oldSol) const + { + return + oldSol + ? staticDat_[globalIdx].oldPhasePresence + : staticDat_[globalIdx].phasePresence; + } + + /*! + * \brief Append all quantities of interest which can be derived + * from the solution of the current time step to the VTK + * writer. + * + * \param sol The solution vector + * \param writer The writer for multi-file VTK datasets + */ + template + void addOutputVtkFields(const SolutionVector &sol, + MultiWriter &writer) + { + typedef Dune::BlockVector > ScalarField; + typedef Dune::BlockVector > VectorField; + + // get the number of degrees of freedom + unsigned numDofs = this->numDofs(); + + // create the required scalar fields + ScalarField *saturation[numPhases]; + ScalarField *pressure[numPhases]; + ScalarField *density[numPhases]; + + ScalarField *mobility[numPhases]; + ScalarField *viscosity[numPhases]; + + + for (int phaseIdx = 0; phaseIdx < numPhases; ++ phaseIdx) { + saturation[phaseIdx] = writer.allocateManagedBuffer(numDofs); + pressure[phaseIdx] = writer.allocateManagedBuffer(numDofs); + density[phaseIdx] = writer.allocateManagedBuffer(numDofs); + + mobility[phaseIdx] = writer.allocateManagedBuffer(numDofs); + viscosity[phaseIdx] = writer.allocateManagedBuffer(numDofs); + } + + ScalarField *phasePresence = writer.allocateManagedBuffer (numDofs); + ScalarField *poro = writer.allocateManagedBuffer(numDofs); + ScalarField *permXX = writer.allocateManagedBuffer(numDofs); + ScalarField *permYY = writer.allocateManagedBuffer(numDofs); + ScalarField *permZZ = writer.allocateManagedBuffer(numDofs); + VectorField *velocityW = writer.template allocateManagedBuffer(numDofs); + VectorField *velocityG = writer.template allocateManagedBuffer(numDofs); + ImplicitVelocityOutput velocityOutput(this->problem_()); + + if (velocityOutput.enableOutput()) // check if velocity output is demanded + { + // initialize velocity fields + for (unsigned int i = 0; i < numDofs; ++i) + { + (*velocityW)[i] = Scalar(0); + (*velocityG)[i] = Scalar(0); + } + } + + unsigned numElements = this->gridView_().size(0); + ScalarField *rank = writer.allocateManagedBuffer (numElements); + + for (const auto& element : elements(this->gridView_())) + { + int idx = this->dofMapper().index(element); + (*rank)[idx] = this->gridView_().comm().rank(); + + FVElementGeometry fvGeometry; + fvGeometry.update(this->gridView_(), element); + + + ElementVolumeVariables elemVolVars; + elemVolVars.update(this->problem_(), + element, + fvGeometry, + false /* oldSol? */); + + for (int scvIdx = 0; scvIdx < fvGeometry.numScv; ++scvIdx) + { + int globalIdx = this->dofMapper().subIndex(element, scvIdx, dofCodim); + + for (int phaseIdx = 0; phaseIdx < numPhases; ++ phaseIdx) { + (*saturation[phaseIdx])[globalIdx] = elemVolVars[scvIdx].fluidState().saturation(phaseIdx); + (*pressure[phaseIdx])[globalIdx] = elemVolVars[scvIdx].fluidState().pressure(phaseIdx); + (*density[phaseIdx])[globalIdx] = elemVolVars[scvIdx].fluidState().density(phaseIdx); + + (*mobility[phaseIdx])[globalIdx] = elemVolVars[scvIdx].mobility(phaseIdx); + (*viscosity[phaseIdx])[globalIdx] = elemVolVars[scvIdx].fluidState().viscosity(phaseIdx); + } + + (*poro)[globalIdx] = elemVolVars[scvIdx].porosity(); + (*phasePresence)[globalIdx] = staticDat_[globalIdx].phasePresence; + + FieldMatrix K = this->problem_().spatialParams().intrinsicPermeability(element, + fvGeometry, + scvIdx); + (*permXX)[globalIdx] = K[0][0]; + if(dimWorld > 1) + (*permYY)[globalIdx] = K[1][1]; + if(dimWorld > 2) + (*permZZ)[globalIdx] = K[2][2]; + } + + // velocity output + velocityOutput.calculateVelocity(*velocityW, elemVolVars, fvGeometry, element, wPhaseIdx); + velocityOutput.calculateVelocity(*velocityG, elemVolVars, fvGeometry, element, gPhaseIdx); + } + + writer.attachDofData(*saturation[wPhaseIdx], "sw", isBox); + writer.attachDofData(*saturation[gPhaseIdx], "sg", isBox); + writer.attachDofData(*pressure[wPhaseIdx], "pw", isBox); + writer.attachDofData(*pressure[gPhaseIdx], "pg", isBox); + writer.attachDofData(*density[wPhaseIdx], "rhow", isBox); + writer.attachDofData(*density[gPhaseIdx], "rhog", isBox); + + writer.attachDofData(*mobility[wPhaseIdx], "MobW", isBox); + writer.attachDofData(*mobility[gPhaseIdx], "MobG", isBox); + + writer.attachDofData(*viscosity[wPhaseIdx], "ViscosW", isBox); + writer.attachDofData(*viscosity[gPhaseIdx], "ViscosG", isBox); + + writer.attachDofData(*poro, "porosity", isBox); + writer.attachDofData(*permXX, "permeabilityXX", isBox); + if(dimWorld > 1) + writer.attachDofData(*permYY, "permeabilityYY", isBox); + if(dimWorld > 2) + writer.attachDofData(*permZZ, "permeabilityZZ", isBox); + writer.attachDofData(*phasePresence, "phase presence", isBox); + + if (velocityOutput.enableOutput()) // check if velocity output is demanded + { + writer.attachDofData(*velocityW, "velocityW", isBox, dim); + writer.attachDofData(*velocityG, "velocityG", isBox, dim); + } + + writer.attachCellData(*rank, "process rank"); + } + + /*! + * \brief Update the static data of all vertices in the grid. + * + * \param curGlobalSol The current global solution + * \param oldGlobalSol The previous global solution + */ + void updateStaticData(SolutionVector &curGlobalSol, + const SolutionVector &oldGlobalSol) + { + bool wasSwitched = false; + int succeeded; + try { + for (unsigned i = 0; i < staticDat_.size(); ++i) + staticDat_[i].visited = false; + + FVElementGeometry fvGeometry; + static VolumeVariables volVars; + for (const auto& element : elements(this->gridView_())) + { + fvGeometry.update(this->gridView_(), element); + for (int scvIdx = 0; scvIdx < fvGeometry.numScv; ++scvIdx) + { + int globalIdx = this->dofMapper().subIndex(element, scvIdx, dofCodim); + + if (staticDat_[globalIdx].visited) + continue; + + staticDat_[globalIdx].visited = true; + volVars.update(curGlobalSol[globalIdx], + this->problem_(), + element, + fvGeometry, + scvIdx, + false); + const GlobalPosition &globalPos = fvGeometry.subContVol[scvIdx].global; + + if (primaryVarSwitch_(curGlobalSol, + volVars, + globalIdx, + globalPos)) + { + this->jacobianAssembler().markDofRed(globalIdx); + wasSwitched = true; + } + } + } + succeeded = 1; + } + + catch (Dumux::NumericalProblem &e) + { + std::cout << "\n" + << "Rank " << this->problem_().gridView().comm().rank() + << " caught an exception while updating the static data." << e.what() + << "\n"; + succeeded = 0; + } + + //make sure that all processes succeeded. If not throw a NumericalProblem to decrease the time step size. + if (this->gridView_().comm().size() > 1) + succeeded = this->gridView_().comm().min(succeeded); + + if (!succeeded) { + updateFailed(); + + DUNE_THROW(NumericalProblem, + "A process did not succeed in updating the static data."); + + return; + } + + // make sure that if there was a variable switch in an + // other partition we will also set the switch flag + // for our partition. + if (this->gridView_().comm().size() > 1) + wasSwitched = this->gridView_().comm().max(wasSwitched); + + setSwitched_(wasSwitched); + } + +protected: + /*! + * \brief Data which is attached to each vertex and is not only + * stored locally. + */ + struct StaticVars + { + int phasePresence; + bool wasSwitched; + + int oldPhasePresence; + bool visited; + }; + + /*! + * \brief Reset the current phase presence of all vertices to the old one. + * + * This is done after an update failed. + */ + void resetPhasePresence_() + { + for (unsigned int i = 0; i < this->numDofs(); ++i) + { + staticDat_[i].phasePresence + = staticDat_[i].oldPhasePresence; + staticDat_[i].wasSwitched = false; + } + } + + /*! + * \brief Set the old phase of all verts state to the current one. + */ + void updateOldPhasePresence_() + { + for (unsigned int i = 0; i < this->numDofs(); ++i) + { + staticDat_[i].oldPhasePresence + = staticDat_[i].phasePresence; + staticDat_[i].wasSwitched = false; + } + } + + /*! + * \brief Set whether there was a primary variable switch after in + * the last timestep. + */ + void setSwitched_(bool yesno) + { + switchFlag_ = yesno; + } + + // perform variable switch at a vertex; Returns true if a + // variable switch was performed. + bool primaryVarSwitch_(SolutionVector &globalSol, + const VolumeVariables &volVars, + int globalIdx, + const GlobalPosition &globalPos) + { + // evaluate primary variable switch + bool wouldSwitch = false; + int phasePresence = staticDat_[globalIdx].phasePresence; + int newPhasePresence = phasePresence; + + globalSol[globalIdx][pressureIdx] = volVars.fluidState().pressure(gPhaseIdx); + + // check if a primary var switch is necessary + if (phasePresence == twoPhases) + { + Scalar Smin = 0; + if (staticDat_[globalIdx].wasSwitched) + Smin = -0.01; + + if (volVars.saturation(gPhaseIdx) <= Smin) + { + wouldSwitch = true; + // gas phase disappears + std::cout << "Gas phase disappears at vertex " << globalIdx + << ", coordinates: " << globalPos << ", sg: " + << volVars.saturation(gPhaseIdx) << std::endl; + newPhasePresence = wPhaseOnly; + + globalSol[globalIdx][switch1Idx] = volVars.fluidState().temperature(); + } + else if (volVars.saturation(wPhaseIdx) <= Smin) + { + wouldSwitch = true; + // water phase disappears + std::cout << "Wetting phase disappears at vertex " << globalIdx + << ", coordinates: " << globalPos << ", sw: " + << volVars.saturation(wPhaseIdx) << std::endl; + newPhasePresence = gPhaseOnly; + + globalSol[globalIdx][switch1Idx] = volVars.fluidState().temperature(); + } + + } + else if (phasePresence == wPhaseOnly) + { + Scalar temp = volVars.fluidState().temperature(); + Scalar tempVap = volVars.vaporTemperature(); + + // if the the temperature would be larger than + // the vapor temperature at the given pressure, gas phase appears + if (temp >= tempVap) + { + wouldSwitch = true; + // gas phase appears + std::cout << "gas phase appears at vertex " << globalIdx + << ", coordinates: " << globalPos << std::endl; + + newPhasePresence = twoPhases; + globalSol[globalIdx][switch1Idx] = 0.9999; //wetting phase saturation + } + } + + + else if (phasePresence == gPhaseOnly) + { + + Scalar temp = volVars.fluidState().temperature(); + Scalar tempVap = volVars.vaporTemperature(); + + if (temp < tempVap) + { + wouldSwitch = true; + // wetting phase appears + std::cout << "wetting phase appears at vertex " << globalIdx + << ", coordinates: " << globalPos << std::endl; + + + newPhasePresence = twoPhases; + globalSol[globalIdx][switch1Idx] = 0.0001; //arbitrary small value + } + } + staticDat_[globalIdx].phasePresence = newPhasePresence; + staticDat_[globalIdx].wasSwitched = wouldSwitch; + return phasePresence != newPhasePresence; + } + + // parameters given in constructor + std::vector staticDat_; + bool switchFlag_; +}; + +} + +#include "propertydefaults.hh" + +#endif diff --git a/dumux/porousmediumflow/2p1c/implicit/newtoncontroller.hh b/dumux/porousmediumflow/2p1c/implicit/newtoncontroller.hh new file mode 100644 index 0000000000000000000000000000000000000000..bc5c7e32f493186f9dbdb23cdc9e0125f8132d20 --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/newtoncontroller.hh @@ -0,0 +1,86 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * \brief A 2p1c specific controller for the newton solver. + * + * This controller 'knows' what a 'physically meaningful' solution is + * which allows the newton method to abort quicker if the solution is + * way out of bounds. + */ +#ifndef DUMUX_2P1CNI_NEWTON_CONTROLLER_HH +#define DUMUX_2P1CNI_NEWTON_CONTROLLER_HH + +#include "properties.hh" + +#include +#include + +namespace Dumux { +/*! + * \ingroup TwoPOneCModel + * \brief A 2p1cni specific controller for the newton solver. + * + * This controller 'knows' what a 'physically meaningful' solution is + * which allows the newton method to abort quicker if the solution is + * way out of bounds. + */ +template +class TwoPOneCNINewtonController : public TwoPTwoCNewtonController +{ + typedef TwoPTwoCNewtonController ParentType; + typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem; + typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector; + +public: + TwoPOneCNINewtonController(const Problem &problem) + : ParentType(problem) + {} + + void newtonBeginStep() + { + // call the method of the base class + ParentType::newtonBeginStep(); + + //reset the indicator of spurious cold water fluxes into the steam zone + this->model_().localJacobian().localResidual().resetSpuriousFlowDetected(); + } + + + /*! + * \brief Called after each Newton update + * + * \param uCurrentIter The current global solution vector + * \param uLastIter The previous global solution vector + */ + void newtonEndStep(SolutionVector &uCurrentIter, + const SolutionVector &uLastIter) + { + // call the method of the base class + ParentType::newtonEndStep(uCurrentIter, uLastIter); + + //Output message after each Newton Step if spurious fluxes have been blocked + if (this->model_().localJacobian().localResidual().spuriousFlowDetected()) + std::cout <<"Spurious fluxes blocked!" <. * + *****************************************************************************/ +/*! + * \ingroup TwoPOneCModel + */ +/*! + * \file + * + * \brief Defines the properties required for the 2p1cn fully implicit model. + * + *Important note: The 2p1c model requires the use of the non-isothermal extension found in dumux/implicit/nonisothermal + */ +#ifndef DUMUX_2P1C_PROPERTIES_HH +#define DUMUX_2P1C_PROPERTIES_HH + +#include +#include +#include + +namespace Dumux +{ + +namespace Properties +{ +////////////////////////////////////////////////////////////////// +// Type tags +////////////////////////////////////////////////////////////////// +NEW_TYPE_TAG(TwoPOneCNI, INHERITS_FROM(NonIsothermal)); +NEW_TYPE_TAG(BoxTwoPOneCNI, INHERITS_FROM(BoxModel, TwoPOneCNI)); +NEW_TYPE_TAG(CCTwoPOneCNI, INHERITS_FROM(CCModel, TwoPOneCNI)); + +////////////////////////////////////////////////////////////////// +// Property tags +////////////////////////////////////////////////////////////////// + +NEW_PROP_TAG(NumPhases); //!< Number of fluid phases in the system +NEW_PROP_TAG(NumComponents); //!< Number of fluid components in the system +NEW_PROP_TAG(SpatialParams); //!< The type of the spatial parameters +NEW_PROP_TAG(FluidSystem); //!< Type of the multi-component relations + +NEW_PROP_TAG(MaterialLaw); //!< The material law which ought to be used (extracted from the spatial parameters) +NEW_PROP_TAG(MaterialLawParams); //!< The parameters of the material law (extracted from the spatial parameters) + +NEW_PROP_TAG(ProblemEnableGravity); //!< Returns whether gravity is considered in the problem + +NEW_PROP_TAG(ImplicitMassUpwindWeight); //!< The value of the upwind parameter for the mobility +NEW_PROP_TAG(ImplicitMobilityUpwindWeight); //!< Weight for the upwind mobility in the velocity calculation +NEW_PROP_TAG(UseBlockingOfSpuriousFlow); //!< Determines whether Blocking ofspurious flow is used +NEW_PROP_TAG(BaseFluxVariables); //! The base flux variables +NEW_PROP_TAG(SpatialParamsForchCoeff); //!< Property for the forchheimer coefficient +NEW_PROP_TAG(VtkAddVelocity); //!< Returns whether velocity vectors are written into the vtk output +} +} + +#endif diff --git a/dumux/porousmediumflow/2p1c/implicit/propertydefaults.hh b/dumux/porousmediumflow/2p1c/implicit/propertydefaults.hh new file mode 100644 index 0000000000000000000000000000000000000000..e141683a62863eb5f4370f8ac1882cb399967117 --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/propertydefaults.hh @@ -0,0 +1,178 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \ingroup TwoPOneCModel + */ +/*! + * \file + * + * \brief Defines default values for most properties required by the + * 2p1cni fully implicit model. + * + *Important note: The 2p1c model requires the use of the non-isothermal extension found in dumux/implicit/nonisothermal + */ +#ifndef DUMUX_2P1C_PROPERTY_DEFAULTS_HH +#define DUMUX_2P1C_PROPERTY_DEFAULTS_HH + +#include "model.hh" +#include "indices.hh" +#include "volumevariables.hh" +#include "properties.hh" +#include "newtoncontroller.hh" +#include "localresidual.hh" + +#include +#include +#include +#include +#include +#include + +namespace Dumux +{ + +namespace Properties { +////////////////////////////////////////////////////////////////// +// Property values +////////////////////////////////////////////////////////////////// + +/*! + * \brief Set the property for the number of components. + * + * We just forward the number from the fluid system and use an static + * assert to make sure it is 1. + */ +SET_PROP(TwoPOneCNI, NumComponents) +{ + private: + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + + public: + static const int value = FluidSystem::numComponents; + + static_assert(value == 1, + "Only fluid systems with 1 component are supported by the 2p1cni model!"); +}; + +/*! + * \brief Set the property for the number of fluid phases. + * + * We just forward the number from the fluid system and use an static + * assert to make sure it is 2. + */ +SET_PROP(TwoPOneCNI, NumPhases) +{ + private: + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + + public: + static const int value = FluidSystem::numPhases; + static_assert(value == 2, + "Only fluid systems with 2 phases are supported by the 2p1cni model!"); +}; + +/*! + * \brief Set the property for the material parameters by extracting + * it from the material law. + */ +SET_TYPE_PROP(TwoPOneCNI, MaterialLawParams, typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params); + +//! Use the 2p2c specific newton controller for dealing with phase switches +SET_TYPE_PROP(TwoPOneCNI, NewtonController, TwoPOneCNINewtonController); + +//! the FluxVariables property +// SET_TYPE_PROP(TwoPOneCNI, FluxVariables, ImplicitDarcyFluxVariables); + +//! the upwind factor for the mobility. +SET_SCALAR_PROP(TwoPOneCNI, ImplicitMassUpwindWeight, 1.0); + +//! set default mobility upwind weight to 1.0, i.e. fully upwind +SET_SCALAR_PROP(TwoPOneCNI, ImplicitMobilityUpwindWeight, 1.0); + +//! The fluid system to use by default +SET_PROP(TwoPOneCNI, FluidSystem) +{ private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; +public: + typedef FluidSystems::TwoPLiquidVaporFluidsystem > type; +}; + +//! Determines whether Blocking ofspurious flow is used +SET_BOOL_PROP(TwoPOneCNI, UseBlockingOfSpuriousFlow, false); + +//! The spatial parameters to be employed. +//! Use ImplicitSpatialParams by default. +SET_TYPE_PROP(TwoPOneCNI, SpatialParams, ImplicitSpatialParams); + +// disable velocity output by default +SET_BOOL_PROP(TwoPOneCNI, VtkAddVelocity, false); + +// enable gravity by default +SET_BOOL_PROP(TwoPOneCNI, ProblemEnableGravity, true); + +//! default value for the forchheimer coefficient +// Source: Ward, J.C. 1964 Turbulent flow in porous media. ASCE J. Hydraul. Div 90. +// Actually the Forchheimer coefficient is also a function of the dimensions of the +// porous medium. Taking it as a constant is only a first approximation +// (Nield, Bejan, Convection in porous media, 2006, p. 10) +SET_SCALAR_PROP(BoxModel, SpatialParamsForchCoeff, 0.55); + + +//! Somerton is used as default model to compute the effective thermal heat conductivity +SET_PROP(NonIsothermal, ThermalConductivityModel) +{ +private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; +public: + typedef ThermalConductivitySomerton type; +}; + +////////////////////////////////////////////////////////////////// +// Property values for isothermal model required for the general non-isothermal model +////////////////////////////////////////////////////////////////// + +// set isothermal Model +SET_TYPE_PROP(TwoPOneCNI, IsothermalModel, TwoPOneCModel); + +// set isothermal FluxVariables +SET_TYPE_PROP(TwoPOneCNI, IsothermalFluxVariables, ImplicitDarcyFluxVariables); + +//set isothermal VolumeVariables +SET_TYPE_PROP(TwoPOneCNI, IsothermalVolumeVariables, TwoPOneCVolumeVariables); + +//set isothermal LocalResidual +SET_TYPE_PROP(TwoPOneCNI, IsothermalLocalResidual, TwoPOneCLocalResidual); + +//set isothermal Indices +SET_PROP(TwoPOneCNI, IsothermalIndices) +{ + +public: + typedef TwoPOneCIndices type; +}; + +//set isothermal NumEq +SET_INT_PROP(TwoPOneCNI, IsothermalNumEq, 1); + +} + +} + +#endif diff --git a/dumux/porousmediumflow/2p1c/implicit/volumevariables.hh b/dumux/porousmediumflow/2p1c/implicit/volumevariables.hh new file mode 100644 index 0000000000000000000000000000000000000000..6d6653b553b6e25e4efba11d80ecf01531bb1332 --- /dev/null +++ b/dumux/porousmediumflow/2p1c/implicit/volumevariables.hh @@ -0,0 +1,305 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Contains the quantities which are constant within a + * finite volume in the two-phase, one-component model. + * + * \note The 2p1c model requires the use of the non-isothermal extension found in dumux/implicit/nonisothermal + */ +#ifndef DUMUX_2P1C_VOLUME_VARIABLES_HH +#define DUMUX_2P1C_VOLUME_VARIABLES_HH + +#include +#include +#include "properties.hh" + +namespace Dumux +{ + +/*! + * \ingroup TwoPOneCModel + * \ingroup ImplicitVolumeVariables + * \brief Contains the quantities which are are constant within a + * finite volume in the two-phase, two-component model. + */ +template +class TwoPOneCVolumeVariables : public ImplicitVolumeVariables +{ + typedef ImplicitVolumeVariables ParentType; + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation; + + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem; + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; + typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams; + + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + enum { + dim = GridView::dimension, + + numPhases = GET_PROP_VALUE(TypeTag, NumPhases), + numComponents = GET_PROP_VALUE(TypeTag, NumComponents), + + wPhaseIdx = Indices::wPhaseIdx, + gPhaseIdx = Indices::gPhaseIdx, + + switch1Idx = Indices::switch1Idx, + pressureIdx = Indices::pressureIdx + }; + + // present phases + enum { + twoPhases = Indices::twoPhases, + wPhaseOnly = Indices::wPhaseOnly, + gPhaseOnly = Indices::gPhaseOnly, + }; + + typedef typename GridView::template Codim<0>::Entity Element; + typedef Dune::FieldMatrix FieldMatrix; + + enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) }; + enum { dofCodim = isBox ? dim : 0 }; + +public: + //! The type of the object returned by the fluidState() method + typedef Dumux::CompositionalFluidState FluidState; + + /*! + * \copydoc ImplicitVolumeVariables::update + */ + void update(const PrimaryVariables &priVars, + const Problem &problem, + const Element &element, + const FVElementGeometry &fvGeometry, + const int scvIdx, + bool isOldSol) + { + ParentType::update(priVars, + problem, + element, + fvGeometry, + scvIdx, + isOldSol); + + // capillary pressure parameters + const MaterialLawParams &materialParams = + problem.spatialParams().materialLawParams(element, fvGeometry, scvIdx); + + int globalIdx = problem.model().dofMapper().subIndex(element, scvIdx, dofCodim); + int phasePresence = problem.model().phasePresence(globalIdx, isOldSol); + + // get saturations + Scalar sw(0.0); + Scalar sg(0.0); + if (phasePresence == twoPhases) + { + sw = priVars[switch1Idx]; + sg = 1.0 - sw; + } + else if (phasePresence == wPhaseOnly) + { + sw = 1.0; + sg = 0.0; + } + else if (phasePresence == gPhaseOnly) + { + sw = 0.0; + sg = 1.0; + } + else DUNE_THROW(Dune::InvalidStateException, "phasePresence: " << phasePresence << " is invalid."); + Valgrind::CheckDefined(sg); + + fluidState_.setSaturation(wPhaseIdx, sw); + fluidState_.setSaturation(gPhaseIdx, sg); + + // get gas phase pressure + const Scalar pg = priVars[pressureIdx]; + + // calculate capillary pressure + const Scalar pc = MaterialLaw::pc(materialParams, sw); + + // set wetting phase pressure + const Scalar pw = pg - pc; + + //set pressures + fluidState_.setPressure(wPhaseIdx, pw); + fluidState_.setPressure(gPhaseIdx, pg); + + // get temperature + Scalar temperature; + if (phasePresence == wPhaseOnly || phasePresence == gPhaseOnly) + temperature = priVars[switch1Idx]; + else if (phasePresence == twoPhases) + temperature = FluidSystem::vaporTemperature(fluidState_, wPhaseIdx); + else + DUNE_THROW(Dune::InvalidStateException, "phasePresence: " << phasePresence << " is invalid."); + + Valgrind::CheckDefined(temperature); + + fluidState_.setTemperature(temperature); + + // set the densities + const Scalar rhoW = FluidSystem::density(fluidState_, wPhaseIdx); + const Scalar rhoG = FluidSystem::density(fluidState_, gPhaseIdx); + + fluidState_.setDensity(wPhaseIdx, rhoW); + fluidState_.setDensity(gPhaseIdx, rhoG); + + //get the viscosity and mobility + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) + { + // Mobilities + const Scalar mu = + FluidSystem::viscosity(fluidState_, + phaseIdx); + fluidState_.setViscosity(phaseIdx,mu); + + Scalar kr; + if (phaseIdx == wPhaseIdx) + kr = MaterialLaw::krw(materialParams, saturation(wPhaseIdx)); + else // ATTENTION: krn requires the wetting phase saturation + // as parameter! + kr = MaterialLaw::krn(materialParams, saturation(wPhaseIdx)); + + mobility_[phaseIdx] = kr / mu; + Valgrind::CheckDefined(mobility_[phaseIdx]); + } + + // porosity + porosity_ = problem.spatialParams().porosity(element, + fvGeometry, + scvIdx); + Valgrind::CheckDefined(porosity_); + + // the enthalpies (internal energies are directly calculated in the fluidstate + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) + { + Scalar h = FluidSystem::enthalpy(fluidState_, phaseIdx); + fluidState_.setEnthalpy(phaseIdx, h); + } + + // energy related quantities not contained in the fluid state + asImp_().updateEnergy_(priVars, problem, element, fvGeometry, scvIdx, isOldSol); + } + + /*! + * \brief Returns the phase state for the control-volume. + */ + const FluidState &fluidState() const + { return fluidState_; } + + /*! + * \brief Returns the effective saturation of a given phase within + * the control volume. + * + * \param phaseIdx The phase index + */ + Scalar saturation(const int phaseIdx) const + { return fluidState_.saturation(phaseIdx); } + + /*! + * \brief Returns the mass density of a given phase within the + * control volume. + * + * \param phaseIdx The phase index + */ + Scalar density(const int phaseIdx) const + { return fluidState_.density(phaseIdx); } + + /*! + * \brief Returns the molar density of a given phase within the + * control volume. + * + * \param phaseIdx The phase index + */ + Scalar molarDensity(const int phaseIdx) const + { return fluidState_.density(phaseIdx) / fluidState_.averageMolarMass(phaseIdx); } + + /*! + * \brief Returns the effective pressure of a given phase within + * the control volume. + * + * \param phaseIdx The phase index + */ + Scalar pressure(const int phaseIdx) const + { return fluidState_.pressure(phaseIdx); } + + /*! + * \brief Returns temperature inside the sub-control volume. + * + * Note that we assume thermodynamic equilibrium, i.e. the + * temperatures of the rock matrix and of all fluid phases are + * identical. + */ + Scalar temperature() const + { return fluidState_.temperature(/*phaseIdx=*/0); } + + /*! + * \brief Returns the effective mobility of a given phase within + * the control volume. + * + * \param phaseIdx The phase index + */ + Scalar mobility(const int phaseIdx) const + { + return mobility_[phaseIdx]; + } + + /*! + * \brief Returns the effective capillary pressure within the control volume. + */ + Scalar capillaryPressure() const + { return fluidState_.capillaryPressure(); } + + /*! + * \brief Returns the average porosity within the control volume. + */ + Scalar porosity() const + { return porosity_; } + + /*! + * \brief Returns the vapor temperature (T_{vap}(p_g) of the fluid within the control volume. + */ + Scalar vaporTemperature() const + { return FluidSystem::vaporTemperature(fluidState_, wPhaseIdx);} + +protected: + FluidState fluidState_; + +private: + + Scalar porosity_; + Scalar mobility_[numPhases]; + + Implementation &asImp_() + { return *static_cast(this); } + + const Implementation &asImp_() const + { return *static_cast(this); } +}; + +} // end namespace + +#endif diff --git a/dumux/porousmediumflow/CMakeLists.txt b/dumux/porousmediumflow/CMakeLists.txt index 643a57f0eeca6fe8ce47b7462bdbdeb2aa64f9ee..9f3095a65c2cafbdb57875366fe4583d141f8a7c 100644 --- a/dumux/porousmediumflow/CMakeLists.txt +++ b/dumux/porousmediumflow/CMakeLists.txt @@ -1,6 +1,7 @@ add_subdirectory("1p") add_subdirectory("1p2c") add_subdirectory("2p") +add_subdirectory("2p1c") add_subdirectory("2p2c") add_subdirectory("2pdfm") add_subdirectory("2pminc") diff --git a/test/porousmediumflow/2p1c/CMakeLists.txt b/test/porousmediumflow/2p1c/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba8341c614f1a2c797c95f5402f602025f1087b1 --- /dev/null +++ b/test/porousmediumflow/2p1c/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory("implicit") diff --git a/test/porousmediumflow/2p1c/implicit/CMakeLists.txt b/test/porousmediumflow/2p1c/implicit/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..436aaaac55c891152be6a21e14741cf0a592031a --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/CMakeLists.txt @@ -0,0 +1,16 @@ +#add links to input files +add_input_file_links() + +add_dumux_test(test_boxsteaminjection test_boxsteaminjection test_boxsteaminjection.cc + python ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py + --script fuzzy + --files ${CMAKE_SOURCE_DIR}/test/references/steaminjectionbox-reference.vtu + ${CMAKE_CURRENT_BINARY_DIR}/test_boxsteaminjection-00008.vtu + --command "${CMAKE_CURRENT_BINARY_DIR}/test_boxsteaminjection") + +add_dumux_test(test_ccsteaminjection test_ccsteaminjection test_ccsteaminjection.cc + python ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py + --script fuzzy + --files ${CMAKE_SOURCE_DIR}/test/references/steaminjectioncc-reference.vtu + ${CMAKE_CURRENT_BINARY_DIR}/test_ccsteaminjection-00009.vtu + --command "${CMAKE_CURRENT_BINARY_DIR}/test_ccsteaminjection") diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh new file mode 100644 index 0000000000000000000000000000000000000000..59ad310cfd684e8f5edc5d504620a9c1030f8adf --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh @@ -0,0 +1,285 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later vesion. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Non-isothermal steam injection test problem for the 2p1cni model. + * + */ +#ifndef DUMUX_STEAM_INJECTIONPROBLEM_HH +#define DUMUX_STEAM_INJECTIONPROBLEM_HH + +#include +#include + +#include "steaminjectionspatialparams.hh" +#include +#include + +namespace Dumux +{ +template +class InjectionProblem; + +namespace Properties +{ +NEW_TYPE_TAG(InjectionProblem, INHERITS_FROM(TwoPOneCNI, InjectionProblemSpatialParams)); +NEW_TYPE_TAG(InjectionBoxProblem, INHERITS_FROM(BoxModel, InjectionProblem)); +NEW_TYPE_TAG(InjectionCCProblem, INHERITS_FROM(CCModel, InjectionProblem)); + +SET_TYPE_PROP(InjectionProblem, Grid, Dune::YaspGrid<2>); + +// Set the problem property +SET_PROP(InjectionProblem, Problem) +{ + typedef Dumux::InjectionProblem type; +}; + +// Set the fluid system +SET_PROP(InjectionProblem, FluidSystem) +{ +private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef Dumux::TabulatedComponent > H2OType ; +public: + typedef Dumux::FluidSystems::TwoPLiquidVaporFluidsystem type; +}; + +// Enable gravity +SET_BOOL_PROP(InjectionProblem, ProblemEnableGravity, true); + +//Define whether spurious cold-water flow into the steam is blocked +SET_BOOL_PROP(InjectionProblem, UseBlockingOfSpuriousFlow, true); +} + +//TODO: Names +/*! + * \ingroup ThreePTwoCNIBoxModel + * \ingroup ImplicitTestProblems + * \brief Non-isothermal 2D problem where steam is injected on the lower left side of the domain. + * + * This problem uses the \ref ThreePTwoCNIModel. + * + * */ +template +class InjectionProblem : public ImplicitPorousMediaProblem +{ + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GridView::Grid Grid; + + typedef ImplicitPorousMediaProblem ParentType; + + // copy some indices for convenience + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + enum { + pressureIdx = Indices::pressureIdx, + switch1Idx = Indices::switch1Idx, + + energyEqIdx = Indices::energyEqIdx, + + // phase and component indices + wPhaseIdx = Indices::wPhaseIdx, + gPhaseIdx = Indices::gPhaseIdx, + + // Phase State + wPhaseOnly = Indices::wPhaseOnly, + gPhaseOnly = Indices::gPhaseOnly, + twoPhases = Indices::twoPhases, + + // Grid and world dimension + dim = GridView::dimension, + dimWorld = GridView::dimensionworld + }; + + typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; + typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes; + typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager; + + typedef typename GridView::template Codim<0>::Entity Element; + typedef typename GridView::template Codim::Entity Vertex; + + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + + typedef Dune::FieldVector GlobalPosition; + + enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) }; + +public: + + /*! + * \brief The constructor + * + * \param timeManager The time manager + * \param gridView The grid view + */ + + InjectionProblem(TimeManager &timeManager, const GridView &gridView) + : ParentType(timeManager, gridView), eps_(1e-6) + { + + name_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, + std::string, + Problem, + Name); + + FluidSystem::init(); + } + + /*! + * \name Problem parameters + */ + // \{ + + /*! + * \brief The problem name. + * + * This is used as a prefix for files generated by the simulation. + */ + const std::string name() const + { return name_; } + + + void sourceAtPos(PrimaryVariables &values, + const GlobalPosition &globalPos) const + { + values = 0.0; + } + + /*! + * \name Boundary conditions + */ + // \{ + + /*! + * \brief Specifies which kind of boundary condition should be + * used for which equation on a given boundary segment. + * + * \param values The boundary types for the conservation equations + * \param globalPos The position for which the bc type should be evaluated + */ + void boundaryTypesAtPos(BoundaryTypes &bcTypes, + const GlobalPosition &globalPos) const + { + if(globalPos[1] > this->bBoxMax()[1] - eps_ || globalPos[0] > this->bBoxMax()[0] - eps_) + bcTypes.setAllDirichlet(); + else + bcTypes.setAllNeumann(); + } + + /*! + * \brief Evaluate the boundary conditions for a dirichlet + * boundary segment. + * + * \param values The dirichlet values for the primary variables + * \param globalPos The position for which the bc type should be evaluated + * + * For this method, the \a values parameter stores primary variables. + */ + void dirichletAtPos(PrimaryVariables &values, const GlobalPosition &globalPos) const + { + initial_(values, globalPos); + } + + /*! + * \brief Evaluate the boundary conditions for a neumann + * boundary segment. + * + * \param values The neumann values for the conservation equations + * \param element The finite element + * \param fvGeomtry The finite-volume geometry in the box scheme + * \param is The intersection between element and boundary + * \param scvIdx The local vertex index + * \param boundaryFaceIdx The index of the boundary face + * + * For this method, the \a values parameter stores the mass flux + * in normal direction of each phase. Negative values mean influx. + */ + void neumannAtPos(PrimaryVariables &values, + const GlobalPosition &globalPos) const + { + values = 0.0; + + if (globalPos[0] < eps_) + { + if(globalPos[1] > 2.0 - eps_ && globalPos[1] < 3.0 + eps_) + { + Scalar massRate = 1e-1; + values[Indices::conti0EqIdx] = -massRate; + values[Indices::energyEqIdx] = -massRate * 2690e3; + } + } + } + + // \} + + /*! + * \name Volume terms + */ + // \{ + + /*! + * \brief Evaluate the initial value for a control volume. + * + * \param values The initial values for the primary variables + * \param globalPos The position for which the initial condition should be evaluated + * + * For this method, the \a values parameter stores primary + * variables. + */ + void initialAtPos(PrimaryVariables &values, const GlobalPosition &globalPos) const + { + initial_(values, globalPos); + } + + /*! + * \brief Return the initial phase state inside a control volume. + * + * \param vert The vertex + * \param globalIdx The index of the global vertex + * \param globalPos The global position + */ + int initialPhasePresence(const Vertex &vert, + int &globalIdx, + const GlobalPosition &globalPos) const + { + return wPhaseOnly; + } + + + +private: + // internal method for the initial condition (reused for the + // dirichlet conditions!) + void initial_(PrimaryVariables &values, + const GlobalPosition &globalPos) const + { + Scalar densityW = 1000.0; + values[pressureIdx] = 101300.0 + (this->bBoxMax()[1] - globalPos[1])*densityW*9.81; // hydrostatic pressure + values[switch1Idx] = 283.13; + } + + Scalar eps_; + std::string name_; +}; +} //end namespace + +#endif diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh new file mode 100644 index 0000000000000000000000000000000000000000..02f7028b6c9d5bcfb04cdcd4b6c1c96876846dcd --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh @@ -0,0 +1,206 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Definition of the spatial parameters for the steam injection problem + */ + +#ifndef DUMUX_STEAMINJECTION_SPATIAL_PARAMS_HH +#define DUMUX_STEAMINJECTION_SPATIAL_PARAMS_HH + +#include +#include +#include + +namespace Dumux +{ + +//forward declaration +template +class InjectionProblemSpatialParams; + +namespace Properties +{ +// The spatial parameters TypeTag +NEW_TYPE_TAG(InjectionProblemSpatialParams); + +// Set the spatial parameters +SET_TYPE_PROP(InjectionProblemSpatialParams, SpatialParams, Dumux::InjectionProblemSpatialParams); + +// Set the material Law +SET_PROP(InjectionProblemSpatialParams, MaterialLaw) +{ + private: + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef RegularizedVanGenuchten EffMaterialLaw; + public: + // define the material law parameterized by absolute saturations + typedef EffToAbsLaw type; +}; +} + +/*! + * \ingroup TwoPOneCNIModel + * + * \brief Definition of the spatial parameters for various steam injection problems + */ +template +class InjectionProblemSpatialParams : public ImplicitSpatialParams +{ + typedef ImplicitSpatialParams ParentType; + + typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename Grid::ctype CoordScalar; + enum { + dim=GridView::dimension, + dimWorld=GridView::dimensionworld + }; + + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GridView::template Codim<0>::Entity Element; + + typedef Dune::FieldMatrix FieldMatrix; + + +public: + typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; + typedef typename MaterialLaw::Params MaterialLawParams; + + /*! + * \brief The constructor + * + * \param gridView The grid view + */ + InjectionProblemSpatialParams(const GridView &gridView) + : ParentType(gridView) + { + // set Van Genuchten Parameters + materialParams_.setSwr(0.1); + materialParams_.setSnr(0.0); + materialParams_.setVgAlpha(0.0028); + materialParams_.setVgn(2.0); + } + + /*! + * \brief Apply the intrinsic permeability tensor to a pressure + * potential gradient. + * + * \param element The current finite element + * \param fvElemGeom The current finite volume geometry of the element + * \param scvIdx The index of the sub-control volume + */ + const FieldMatrix intrinsicPermeability(const Element &element, + const FVElementGeometry &fvElemGeom, + int scvIdx) const + { + FieldMatrix permMatrix = 0.0; + + // intrinsic permeability + permMatrix[0][0] = 1e-9; + permMatrix[1][1] = 1e-9; + + return permMatrix; //default value + } + + /*! + * \brief Define the porosity \f$[-]\f$ of the spatial parameters + * + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume where + * the porosity needs to be defined + */ + double porosity(const Element &element, + const FVElementGeometry &fvGeometry, + const int scvIdx) const + { + return 0.4; + } + + + /*! + * \brief return the parameter object for the Brooks-Corey material law which depends on the position + * + * \param element The current finite element + * \param fvGeometry The current finite volume geometry of the element + * \param scvIdx The index of the sub-control volume + */ + const MaterialLawParams& materialLawParams(const Element &element, + const FVElementGeometry &fvGeometry, + const int scvIdx) const + { + return materialParams_; + } + + /*! + * \brief Returns the heat capacity \f$[J / (kg K)]\f$ of the rock matrix. + * + * This is only required for non-isothermal models. + * + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume + */ + Scalar solidHeatCapacity(const Element &element, + const FVElementGeometry &fvGeometry, + const int scvIdx) const + { + return 850.0; // specific heat capacity of granite [J / (kg K)] + } + + /*! + * \brief Returns the mass density \f$[kg / m^3]\f$ of the rock matrix. + * + * This is only required for non-isothermal models. + * + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume + */ + Scalar solidDensity(const Element &element, + const FVElementGeometry &fvGeometry, + const int scvIdx) const + { + return 2650.0; // density of granite [kg/m^3] + } + + /*! + * \brief Returns the thermal conductivity \f$\mathrm{[W/(m K)]}\f$ of the porous material. + * + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume + */ + Scalar solidThermalConductivity(const Element &element, + const FVElementGeometry &fvGeometry, + const int scvIdx) const + { + return 2.8; + } + +private: + MaterialLawParams materialParams_; +}; + +} + +#endif diff --git a/test/porousmediumflow/2p1c/implicit/test_boxsteaminjection.cc b/test/porousmediumflow/2p1c/implicit/test_boxsteaminjection.cc new file mode 100644 index 0000000000000000000000000000000000000000..bd83890846bb39f76a3e9233e83fa289156e7bfe --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/test_boxsteaminjection.cc @@ -0,0 +1,62 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Test for the 2p1cni box model + */ +#include "config.h" +#include "steaminjectionproblem.hh" +#include + +/*! + * \brief Provides an interface for customizing error messages associated with + * reading in parameters. + * + * \param progName The name of the program, that was tried to be started. + * \param errorMsg The error message that was issued by the start function. + * Comprises the thing that went wrong and a general help message. + */ +void usage(const char *progName, const std::string &errorMsg) +{ + if (errorMsg.size() > 0) { + std::string errorMessageOut = "\nUsage: "; + errorMessageOut += progName; + errorMessageOut += " [options]\n"; + errorMessageOut += errorMsg; + errorMessageOut += "\n\nThe list of mandatory options for this program is:\n" + "\t-TimeManager.TEnd End of the simulation [s] \n" + "\t-TimeManager.DtInitial Initial timestep size [s] \n" + "\t-Grid.UpperRight coordinates of the upper right corner of the grid [m] \n" + "\t-Grid.Cells Number of cells in respective coordinate directions\n" + "\t-Problem.Name String for naming of the output files \n" + "\n"; + + std::cout << errorMessageOut << std::endl; + } +} + +//////////////////////// +// the main function +//////////////////////// +int main(int argc, char** argv) +{ + typedef TTAG(InjectionBoxProblem) TypeTag; + return Dumux::start(argc, argv, usage); +} diff --git a/test/porousmediumflow/2p1c/implicit/test_boxsteaminjection.input b/test/porousmediumflow/2p1c/implicit/test_boxsteaminjection.input new file mode 100644 index 0000000000000000000000000000000000000000..4696345154e120977b7f4c2d8377e28ec4cdfc07 --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/test_boxsteaminjection.input @@ -0,0 +1,10 @@ +[TimeManager] +DtInitial = 50 # [s] +TEnd = 300 # [s] + +[Grid] +UpperRight = 4 8 +Cells = 10 20 + +[Problem] +Name = test_boxsteaminjection # name passed to the output routines diff --git a/test/porousmediumflow/2p1c/implicit/test_ccsteaminjection.cc b/test/porousmediumflow/2p1c/implicit/test_ccsteaminjection.cc new file mode 100644 index 0000000000000000000000000000000000000000..1273bd90ede4491753202a2f9cfef6b72e669adc --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/test_ccsteaminjection.cc @@ -0,0 +1,62 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * + * \brief Test for the 2p1cni cell-centered model + */ +#include "config.h" +#include "steaminjectionproblem.hh" +#include + +/*! + * \brief Provides an interface for customizing error messages associated with + * reading in parameters. + * + * \param progName The name of the program, that was tried to be started. + * \param errorMsg The error message that was issued by the start function. + * Comprises the thing that went wrong and a general help message. + */ +void usage(const char *progName, const std::string &errorMsg) +{ + if (errorMsg.size() > 0) { + std::string errorMessageOut = "\nUsage: "; + errorMessageOut += progName; + errorMessageOut += " [options]\n"; + errorMessageOut += errorMsg; + errorMessageOut += "\n\nThe list of mandatory options for this program is:\n" + "\t-TimeManager.TEnd End of the simulation [s] \n" + "\t-TimeManager.DtInitial Initial timestep size [s] \n" + "\t-Grid.UpperRight coordinates of the upper right corner of the grid [m] \n" + "\t-Grid.Cells Number of cells in respective coordinate directions\n" + "\t-Problem.Name String for naming of the output files \n" + "\n"; + + std::cout << errorMessageOut << std::endl; + } +} + +//////////////////////// +// the main function +//////////////////////// +int main(int argc, char** argv) +{ + typedef TTAG(InjectionCCProblem) TypeTag; + return Dumux::start(argc, argv, usage); +} diff --git a/test/porousmediumflow/2p1c/implicit/test_ccsteaminjection.input b/test/porousmediumflow/2p1c/implicit/test_ccsteaminjection.input new file mode 100644 index 0000000000000000000000000000000000000000..c5b8d8556b1fd4b9c149baa9212b1684d3db858d --- /dev/null +++ b/test/porousmediumflow/2p1c/implicit/test_ccsteaminjection.input @@ -0,0 +1,10 @@ +[TimeManager] +DtInitial = 50 # [s] +TEnd = 300 # [s] + +[Grid] +UpperRight = 4 8 +Cells = 20 40 + +[Problem] +Name = test_ccsteaminjection # name passed to the output routines diff --git a/test/porousmediumflow/CMakeLists.txt b/test/porousmediumflow/CMakeLists.txt index 9925ca7fd9353f75e92f5c640c325e11f12567ad..53b792a0788106bfcc0a516db26aedac9df0d4b7 100644 --- a/test/porousmediumflow/CMakeLists.txt +++ b/test/porousmediumflow/CMakeLists.txt @@ -1,6 +1,7 @@ add_subdirectory("1p") add_subdirectory("1p2c") add_subdirectory("2p") +add_subdirectory("2p1c") add_subdirectory("2p2c") add_subdirectory("2pminc") add_subdirectory("2pnc") diff --git a/test/references/steaminjectionbox-reference.vtu b/test/references/steaminjectionbox-reference.vtu new file mode 100644 index 0000000000000000000000000000000000000000..138f79f6d4849ce5604fd82f9179b3315bcf566b --- /dev/null +++ b/test/references/steaminjectionbox-reference.vtu @@ -0,0 +1,531 @@ + + + + + + + 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.822808 1 1 1 1 1 + 1 1 1 1 1 0.74307 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 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 0 0 0.177192 0 0 0 0 0 + 0 0 0 0 0 0.25693 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 + + + 180140 180133 176223 176217 180115 176198 180087 176168 180052 176131 180011 176090 + 179967 176045 179921 175998 179874 175951 179826 175903 179780 175856 172320 172312 + 172290 172257 172216 172171 172124 172076 172028 171980 171932 168434 168423 168394 + 168352 168304 168254 168204 168155 168105 168057 168008 164568 164554 164511 164452 + 164394 164338 164284 164233 164182 164133 164084 160692 160744 160632 160550 160480 + 160419 160362 160309 160258 160209 160160 157303 156850 156733 156637 156560 156495 + 156437 156384 156333 156284 156236 153356 152873 152801 152705 152628 152564 152507 + 152455 152406 152359 152312 148899 148944 148833 148753 148686 148626 148573 148524 + 148477 148432 148388 144946 144901 144849 144790 144734 144683 144635 144590 144547 + 144505 144464 140913 140897 140863 140822 140779 140736 140695 140655 140616 140578 + 140540 136914 136906 136885 136856 136823 136788 136753 136718 136684 136650 136616 + 132933 132928 132914 132893 132868 132840 132811 132781 132751 132722 132692 128964 + 128960 128950 128934 128915 128893 128869 128844 128819 128793 128768 125001 124999 + 124991 124980 124964 124947 124928 124908 124887 124865 124844 121044 121043 121037 + 121028 121017 121003 120988 120972 120955 120937 120920 117091 117090 117086 117079 + 117071 117060 117049 117036 117023 117010 116996 113141 113140 113137 113133 113127 + 113119 113111 113102 113092 113082 113072 109193 109192 109191 109188 109184 109179 + 109173 109167 109161 109155 109148 105246 105246 105245 105244 105242 105239 105237 + 105234 105231 105227 105224 101300 101300 101300 101300 101300 101300 101300 101300 + 101300 101300 101300 + + + 180140 180133 176223 176217 180115 176198 180087 176168 180052 176131 180011 176090 + 179967 176045 179921 175998 179874 175951 179826 175903 179780 175856 172320 172312 + 172290 172257 172216 172171 172124 172076 172028 171980 171932 168434 168423 168394 + 168352 168304 168254 168204 168155 168105 168057 168008 164568 164554 164511 164452 + 164394 164338 164284 164233 164182 164133 164084 160692 160744 160632 160550 160480 + 160419 160362 160309 160258 160209 160160 157568 156850 156733 156637 156560 156495 + 156437 156384 156333 156284 156236 153705 152873 152801 152705 152628 152564 152507 + 152455 152406 152359 152312 148899 148944 148833 148753 148686 148626 148573 148524 + 148477 148432 148388 144946 144901 144849 144790 144734 144683 144635 144590 144547 + 144505 144464 140913 140897 140863 140822 140779 140736 140695 140655 140616 140578 + 140540 136914 136906 136885 136856 136823 136788 136753 136718 136684 136650 136616 + 132933 132928 132914 132893 132868 132840 132811 132781 132751 132722 132692 128964 + 128960 128950 128934 128915 128893 128869 128844 128819 128793 128768 125001 124999 + 124991 124980 124964 124947 124928 124908 124887 124865 124844 121044 121043 121037 + 121028 121017 121003 120988 120972 120955 120937 120920 117091 117090 117086 117079 + 117071 117060 117049 117036 117023 117010 116996 113141 113140 113137 113133 113127 + 113119 113111 113102 113092 113082 113072 109193 109192 109191 109188 109184 109179 + 109173 109167 109161 109155 109148 105246 105246 105245 105244 105242 105239 105237 + 105234 105231 105227 105224 101300 101300 101300 101300 101300 101300 101300 101300 + 101300 101300 101300 + + + 999.729 999.729 999.727 999.727 999.729 999.727 999.729 999.727 999.729 999.727 999.729 999.727 + 999.729 999.727 999.729 999.727 999.729 999.727 999.729 999.727 999.729 999.727 999.725 999.725 + 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.723 999.723 999.723 + 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.657 999.72 999.721 999.721 + 999.721 999.721 999.721 999.721 999.721 999.721 999.721 978.951 999.651 999.719 999.719 999.719 + 999.719 999.719 999.719 999.719 999.719 999.719 948.769 998.836 999.707 999.717 999.717 999.717 + 999.717 999.717 999.717 999.717 999.717 949.345 997.01 999.666 999.714 999.716 999.716 999.716 + 999.716 999.716 999.715 999.715 988.278 999.483 999.708 999.714 999.714 999.714 999.714 999.714 + 999.714 999.714 999.714 999.437 999.704 999.712 999.712 999.712 999.712 999.712 999.712 999.712 + 999.712 999.712 999.704 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 + 999.71 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 + 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.704 + 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.702 999.702 + 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.701 999.701 999.701 + 999.701 999.701 999.701 999.701 999.701 999.701 999.7 999.7 999.699 999.699 999.699 999.699 + 999.699 999.699 999.699 999.699 999.699 999.699 999.699 999.697 999.697 999.697 999.697 999.697 + 999.697 999.697 999.697 999.697 999.697 999.697 999.695 999.695 999.695 999.695 999.695 999.695 + 999.695 999.695 999.695 999.695 999.695 999.693 999.693 999.693 999.693 999.693 999.693 999.693 + 999.693 999.693 999.693 999.693 999.691 999.691 999.691 999.691 999.691 999.691 999.691 999.691 + 999.691 999.691 999.691 + + + 1.38113 1.38108 1.3511 1.35105 1.38094 1.35091 1.38073 1.35068 1.38046 1.3504 1.38014 1.35008 + 1.3798 1.34973 1.37945 1.34938 1.37909 1.34901 1.37873 1.34865 1.37837 1.34829 1.32118 1.32112 + 1.32095 1.32069 1.32038 1.32003 1.31967 1.31931 1.31894 1.31857 1.3182 1.29136 1.2913 1.29108 + 1.29075 1.29039 1.29 1.28962 1.28924 1.28886 1.28849 1.28812 1.25832 1.26155 1.2613 1.26085 + 1.2604 1.25998 1.25957 1.25917 1.25878 1.25841 1.25803 1.03357 1.22892 1.23152 1.23093 1.2304 + 1.22993 1.2295 1.22909 1.2287 1.22832 1.22795 0.90318 1.17527 1.20107 1.20092 1.20034 1.19984 + 1.1994 1.19899 1.1986 1.19823 1.19786 0.882446 1.11391 1.16881 1.17072 1.1702 1.16971 1.16927 + 1.16887 1.16849 1.16813 1.16777 1.00739 1.1334 1.14078 1.14048 1.13997 1.13952 1.13911 1.13873 + 1.13837 1.13803 1.13769 1.10158 1.11054 1.11054 1.1101 1.10968 1.10928 1.10892 1.10857 1.10824 + 1.10792 1.1076 1.08005 1.08024 1.08 1.07968 1.07935 1.07902 1.0787 1.0784 1.0781 1.07781 + 1.07752 1.04971 1.04965 1.04949 1.04927 1.04902 1.04875 1.04848 1.04822 1.04795 1.04769 1.04743 + 1.0192 1.01916 1.01905 1.01889 1.01869 1.01848 1.01826 1.01803 1.0178 1.01757 1.01735 0.988761 + 0.988734 0.988655 0.988536 0.988386 0.988216 0.988034 0.987844 0.987651 0.987457 0.987261 0.958382 0.958362 + 0.958305 0.958214 0.958099 0.957965 0.957818 0.957662 0.957502 0.95734 0.957176 0.928044 0.928029 0.927987 + 0.927919 0.92783 0.927726 0.92761 0.927485 0.927356 0.927224 0.92709 0.897736 0.897725 0.897694 0.897644 + 0.897577 0.897498 0.897409 0.897313 0.897213 0.897109 0.897005 0.86745 0.867443 0.86742 0.867385 0.867337 + 0.867281 0.867216 0.867146 0.867072 0.866996 0.866919 0.837179 0.837175 0.83716 0.837138 0.837107 0.83707 + 0.837028 0.836983 0.836934 0.836884 0.836834 0.806919 0.806916 0.806909 0.806898 0.806883 0.806865 0.806845 + 0.806822 0.806798 0.806773 0.806748 0.776663 0.776663 0.776663 0.776663 0.776663 0.776663 0.776663 0.776663 + 0.776663 0.776663 0.776663 + + + 764.381 764.381 764.379 764.379 764.381 764.379 764.381 764.379 764.381 764.379 764.381 764.379 + 764.381 764.379 764.381 764.379 764.381 764.379 764.381 764.378 764.381 764.378 764.377 764.376 + 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.517 764.379 764.374 + 764.374 764.374 764.374 764.374 764.374 764.374 764.374 764.374 782.422 764.828 764.378 764.372 + 764.372 764.372 764.372 764.372 764.372 764.372 764.372 2408.16 783.213 764.612 764.373 764.37 + 764.37 764.37 764.37 764.37 764.37 764.37 590.728 918.384 767.734 764.417 764.369 764.368 + 764.368 764.368 764.368 764.368 764.368 305.539 1128.42 780.017 764.747 764.372 764.366 764.366 + 764.366 764.366 764.366 764.366 1815.35 812.654 766.195 764.404 764.365 764.364 764.364 764.364 + 764.364 764.364 764.364 821.035 766.832 764.435 764.364 764.362 764.362 764.362 764.362 764.362 + 764.362 764.362 766.371 764.432 764.362 764.36 764.36 764.36 764.36 764.36 764.36 764.36 + 764.36 764.397 764.36 764.359 764.358 764.358 764.358 764.358 764.358 764.358 764.358 764.358 + 764.357 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.355 764.354 + 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.353 764.353 764.352 764.352 + 764.352 764.352 764.352 764.352 764.352 764.352 764.351 764.351 764.351 764.35 764.35 764.35 + 764.35 764.35 764.35 764.349 764.349 764.349 764.349 764.349 764.348 764.348 764.348 764.347 + 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.345 764.345 764.345 764.345 764.345 + 764.345 764.345 764.345 764.345 764.345 764.345 764.343 764.343 764.343 764.343 764.343 764.343 + 764.343 764.343 764.343 764.343 764.343 764.341 764.341 764.341 764.341 764.341 764.341 764.341 + 764.341 764.341 764.341 764.341 764.339 764.339 764.339 764.339 764.339 764.339 764.339 764.339 + 764.339 764.339 764.339 + + + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 16289.6 0 0 0 0 0 + 0 0 0 0 0 25473.2 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 + + + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130802 0.00130825 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00127808 0.00130748 0.00130825 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.000415254 0.00127679 0.00130785 0.00130826 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.000247832 0.00108887 0.00130253 0.00130819 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.000249633 0.000886195 0.00128202 0.00130762 0.00130826 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.000550859 0.00123054 0.00130515 0.00130821 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00121797 0.00130407 0.00130816 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130485 0.00130816 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130822 0.00130828 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 + + + 8.67141e-06 8.67143e-06 8.68382e-06 8.68384e-06 8.67149e-06 8.6839e-06 8.67158e-06 8.68399e-06 8.67169e-06 8.68411e-06 8.67182e-06 8.68424e-06 + 8.67196e-06 8.68438e-06 8.67211e-06 8.68453e-06 8.67226e-06 8.68468e-06 8.67241e-06 8.68483e-06 8.67255e-06 8.68498e-06 8.69618e-06 8.6962e-06 + 8.69627e-06 8.69638e-06 8.69651e-06 8.69665e-06 8.6968e-06 8.69695e-06 8.6971e-06 8.69725e-06 8.69741e-06 8.70871e-06 8.70852e-06 8.70861e-06 + 8.70874e-06 8.70889e-06 8.70905e-06 8.70921e-06 8.70937e-06 8.70952e-06 8.70968e-06 8.70983e-06 8.75024e-06 8.72151e-06 8.72091e-06 8.72109e-06 + 8.72128e-06 8.72145e-06 8.72162e-06 8.72179e-06 8.72195e-06 8.7221e-06 8.72226e-06 1.09277e-05 8.76365e-06 8.73358e-06 8.73345e-06 8.73367e-06 + 8.73386e-06 8.73404e-06 8.73421e-06 8.73437e-06 8.73453e-06 8.73468e-06 1.26779e-05 8.99726e-06 8.75092e-06 8.74592e-06 8.74608e-06 8.74629e-06 + 8.74647e-06 8.74664e-06 8.7468e-06 8.74696e-06 8.74711e-06 1.26519e-05 9.32498e-06 8.78276e-06 8.7589e-06 8.75854e-06 8.75874e-06 8.75892e-06 + 8.75908e-06 8.75924e-06 8.75939e-06 8.75953e-06 1.02456e-05 8.85123e-06 8.77346e-06 8.77087e-06 8.77102e-06 8.7712e-06 8.77137e-06 8.77153e-06 + 8.77168e-06 8.77182e-06 8.77196e-06 8.87719e-06 8.7869e-06 8.78328e-06 8.78336e-06 8.78353e-06 8.78369e-06 8.78384e-06 8.78399e-06 8.78412e-06 + 8.78425e-06 8.78439e-06 8.79879e-06 8.79579e-06 8.79579e-06 8.79592e-06 8.79605e-06 8.79619e-06 8.79632e-06 8.79645e-06 8.79657e-06 8.79669e-06 + 8.79681e-06 8.80836e-06 8.80832e-06 8.80839e-06 8.80848e-06 8.80858e-06 8.80869e-06 8.8088e-06 8.80891e-06 8.80902e-06 8.80913e-06 8.80924e-06 + 8.8209e-06 8.82092e-06 8.82096e-06 8.82103e-06 8.82111e-06 8.8212e-06 8.82129e-06 8.82138e-06 8.82147e-06 8.82157e-06 8.82166e-06 8.83347e-06 + 8.83348e-06 8.83351e-06 8.83356e-06 8.83362e-06 8.83369e-06 8.83377e-06 8.83385e-06 8.83393e-06 8.83401e-06 8.83409e-06 8.84602e-06 8.84602e-06 + 8.84605e-06 8.84609e-06 8.84613e-06 8.84619e-06 8.84625e-06 8.84631e-06 8.84638e-06 8.84645e-06 8.84651e-06 8.85855e-06 8.85855e-06 8.85857e-06 + 8.8586e-06 8.85863e-06 8.85868e-06 8.85873e-06 8.85878e-06 8.85883e-06 8.85888e-06 8.85894e-06 8.87106e-06 8.87107e-06 8.87108e-06 8.8711e-06 + 8.87113e-06 8.87116e-06 8.8712e-06 8.87124e-06 8.87128e-06 8.87132e-06 8.87137e-06 8.88357e-06 8.88357e-06 8.88358e-06 8.8836e-06 8.88362e-06 + 8.88364e-06 8.88367e-06 8.8837e-06 8.88373e-06 8.88376e-06 8.88379e-06 8.89607e-06 8.89608e-06 8.89608e-06 8.89609e-06 8.8961e-06 8.89612e-06 + 8.89614e-06 8.89616e-06 8.89618e-06 8.8962e-06 8.89622e-06 8.90857e-06 8.90857e-06 8.90858e-06 8.90858e-06 8.90859e-06 8.90859e-06 8.9086e-06 + 8.90861e-06 8.90862e-06 8.90863e-06 8.90864e-06 8.92107e-06 8.92107e-06 8.92107e-06 8.92107e-06 8.92107e-06 8.92107e-06 8.92107e-06 8.92107e-06 + 8.92107e-06 8.92107e-06 8.92107e-06 + + + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 + + + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 + + + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 + + + 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 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 2 2 1 2 2 2 2 2 + 2 2 2 2 2 1 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 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 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 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 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 + + + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.136 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.913 283.15 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 341.114 283.951 283.14 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 385.984 289.877 283.274 283.132 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 385.234 298.364 283.796 283.146 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 322.683 285.32 283.209 283.132 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 285.691 283.236 283.133 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.216 283.133 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.132 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 + + + + + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + + + + + 0 0 0 0.4 0 0 0 0.4 0 0.4 0.4 0 + 0.8 0 0 0.8 0.4 0 1.2 0 0 1.2 0.4 0 + 1.6 0 0 1.6 0.4 0 2 0 0 2 0.4 0 + 2.4 0 0 2.4 0.4 0 2.8 0 0 2.8 0.4 0 + 3.2 0 0 3.2 0.4 0 3.6 0 0 3.6 0.4 0 + 4 0 0 4 0.4 0 0 0.8 0 0.4 0.8 0 + 0.8 0.8 0 1.2 0.8 0 1.6 0.8 0 2 0.8 0 + 2.4 0.8 0 2.8 0.8 0 3.2 0.8 0 3.6 0.8 0 + 4 0.8 0 0 1.2 0 0.4 1.2 0 0.8 1.2 0 + 1.2 1.2 0 1.6 1.2 0 2 1.2 0 2.4 1.2 0 + 2.8 1.2 0 3.2 1.2 0 3.6 1.2 0 4 1.2 0 + 0 1.6 0 0.4 1.6 0 0.8 1.6 0 1.2 1.6 0 + 1.6 1.6 0 2 1.6 0 2.4 1.6 0 2.8 1.6 0 + 3.2 1.6 0 3.6 1.6 0 4 1.6 0 0 2 0 + 0.4 2 0 0.8 2 0 1.2 2 0 1.6 2 0 + 2 2 0 2.4 2 0 2.8 2 0 3.2 2 0 + 3.6 2 0 4 2 0 0 2.4 0 0.4 2.4 0 + 0.8 2.4 0 1.2 2.4 0 1.6 2.4 0 2 2.4 0 + 2.4 2.4 0 2.8 2.4 0 3.2 2.4 0 3.6 2.4 0 + 4 2.4 0 0 2.8 0 0.4 2.8 0 0.8 2.8 0 + 1.2 2.8 0 1.6 2.8 0 2 2.8 0 2.4 2.8 0 + 2.8 2.8 0 3.2 2.8 0 3.6 2.8 0 4 2.8 0 + 0 3.2 0 0.4 3.2 0 0.8 3.2 0 1.2 3.2 0 + 1.6 3.2 0 2 3.2 0 2.4 3.2 0 2.8 3.2 0 + 3.2 3.2 0 3.6 3.2 0 4 3.2 0 0 3.6 0 + 0.4 3.6 0 0.8 3.6 0 1.2 3.6 0 1.6 3.6 0 + 2 3.6 0 2.4 3.6 0 2.8 3.6 0 3.2 3.6 0 + 3.6 3.6 0 4 3.6 0 0 4 0 0.4 4 0 + 0.8 4 0 1.2 4 0 1.6 4 0 2 4 0 + 2.4 4 0 2.8 4 0 3.2 4 0 3.6 4 0 + 4 4 0 0 4.4 0 0.4 4.4 0 0.8 4.4 0 + 1.2 4.4 0 1.6 4.4 0 2 4.4 0 2.4 4.4 0 + 2.8 4.4 0 3.2 4.4 0 3.6 4.4 0 4 4.4 0 + 0 4.8 0 0.4 4.8 0 0.8 4.8 0 1.2 4.8 0 + 1.6 4.8 0 2 4.8 0 2.4 4.8 0 2.8 4.8 0 + 3.2 4.8 0 3.6 4.8 0 4 4.8 0 0 5.2 0 + 0.4 5.2 0 0.8 5.2 0 1.2 5.2 0 1.6 5.2 0 + 2 5.2 0 2.4 5.2 0 2.8 5.2 0 3.2 5.2 0 + 3.6 5.2 0 4 5.2 0 0 5.6 0 0.4 5.6 0 + 0.8 5.6 0 1.2 5.6 0 1.6 5.6 0 2 5.6 0 + 2.4 5.6 0 2.8 5.6 0 3.2 5.6 0 3.6 5.6 0 + 4 5.6 0 0 6 0 0.4 6 0 0.8 6 0 + 1.2 6 0 1.6 6 0 2 6 0 2.4 6 0 + 2.8 6 0 3.2 6 0 3.6 6 0 4 6 0 + 0 6.4 0 0.4 6.4 0 0.8 6.4 0 1.2 6.4 0 + 1.6 6.4 0 2 6.4 0 2.4 6.4 0 2.8 6.4 0 + 3.2 6.4 0 3.6 6.4 0 4 6.4 0 0 6.8 0 + 0.4 6.8 0 0.8 6.8 0 1.2 6.8 0 1.6 6.8 0 + 2 6.8 0 2.4 6.8 0 2.8 6.8 0 3.2 6.8 0 + 3.6 6.8 0 4 6.8 0 0 7.2 0 0.4 7.2 0 + 0.8 7.2 0 1.2 7.2 0 1.6 7.2 0 2 7.2 0 + 2.4 7.2 0 2.8 7.2 0 3.2 7.2 0 3.6 7.2 0 + 4 7.2 0 0 7.6 0 0.4 7.6 0 0.8 7.6 0 + 1.2 7.6 0 1.6 7.6 0 2 7.6 0 2.4 7.6 0 + 2.8 7.6 0 3.2 7.6 0 3.6 7.6 0 4 7.6 0 + 0 8 0 0.4 8 0 0.8 8 0 1.2 8 0 + 1.6 8 0 2 8 0 2.4 8 0 2.8 8 0 + 3.2 8 0 3.6 8 0 4 8 0 + + + + + 0 1 3 2 1 4 5 3 4 6 7 5 + 6 8 9 7 8 10 11 9 10 12 13 11 + 12 14 15 13 14 16 17 15 16 18 19 17 + 18 20 21 19 2 3 23 22 3 5 24 23 + 5 7 25 24 7 9 26 25 9 11 27 26 + 11 13 28 27 13 15 29 28 15 17 30 29 + 17 19 31 30 19 21 32 31 22 23 34 33 + 23 24 35 34 24 25 36 35 25 26 37 36 + 26 27 38 37 27 28 39 38 28 29 40 39 + 29 30 41 40 30 31 42 41 31 32 43 42 + 33 34 45 44 34 35 46 45 35 36 47 46 + 36 37 48 47 37 38 49 48 38 39 50 49 + 39 40 51 50 40 41 52 51 41 42 53 52 + 42 43 54 53 44 45 56 55 45 46 57 56 + 46 47 58 57 47 48 59 58 48 49 60 59 + 49 50 61 60 50 51 62 61 51 52 63 62 + 52 53 64 63 53 54 65 64 55 56 67 66 + 56 57 68 67 57 58 69 68 58 59 70 69 + 59 60 71 70 60 61 72 71 61 62 73 72 + 62 63 74 73 63 64 75 74 64 65 76 75 + 66 67 78 77 67 68 79 78 68 69 80 79 + 69 70 81 80 70 71 82 81 71 72 83 82 + 72 73 84 83 73 74 85 84 74 75 86 85 + 75 76 87 86 77 78 89 88 78 79 90 89 + 79 80 91 90 80 81 92 91 81 82 93 92 + 82 83 94 93 83 84 95 94 84 85 96 95 + 85 86 97 96 86 87 98 97 88 89 100 99 + 89 90 101 100 90 91 102 101 91 92 103 102 + 92 93 104 103 93 94 105 104 94 95 106 105 + 95 96 107 106 96 97 108 107 97 98 109 108 + 99 100 111 110 100 101 112 111 101 102 113 112 + 102 103 114 113 103 104 115 114 104 105 116 115 + 105 106 117 116 106 107 118 117 107 108 119 118 + 108 109 120 119 110 111 122 121 111 112 123 122 + 112 113 124 123 113 114 125 124 114 115 126 125 + 115 116 127 126 116 117 128 127 117 118 129 128 + 118 119 130 129 119 120 131 130 121 122 133 132 + 122 123 134 133 123 124 135 134 124 125 136 135 + 125 126 137 136 126 127 138 137 127 128 139 138 + 128 129 140 139 129 130 141 140 130 131 142 141 + 132 133 144 143 133 134 145 144 134 135 146 145 + 135 136 147 146 136 137 148 147 137 138 149 148 + 138 139 150 149 139 140 151 150 140 141 152 151 + 141 142 153 152 143 144 155 154 144 145 156 155 + 145 146 157 156 146 147 158 157 147 148 159 158 + 148 149 160 159 149 150 161 160 150 151 162 161 + 151 152 163 162 152 153 164 163 154 155 166 165 + 155 156 167 166 156 157 168 167 157 158 169 168 + 158 159 170 169 159 160 171 170 160 161 172 171 + 161 162 173 172 162 163 174 173 163 164 175 174 + 165 166 177 176 166 167 178 177 167 168 179 178 + 168 169 180 179 169 170 181 180 170 171 182 181 + 171 172 183 182 172 173 184 183 173 174 185 184 + 174 175 186 185 176 177 188 187 177 178 189 188 + 178 179 190 189 179 180 191 190 180 181 192 191 + 181 182 193 192 182 183 194 193 183 184 195 194 + 184 185 196 195 185 186 197 196 187 188 199 198 + 188 189 200 199 189 190 201 200 190 191 202 201 + 191 192 203 202 192 193 204 203 193 194 205 204 + 194 195 206 205 195 196 207 206 196 197 208 207 + 198 199 210 209 199 200 211 210 200 201 212 211 + 201 202 213 212 202 203 214 213 203 204 215 214 + 204 205 216 215 205 206 217 216 206 207 218 217 + 207 208 219 218 209 210 221 220 210 211 222 221 + 211 212 223 222 212 213 224 223 213 214 225 224 + 214 215 226 225 215 216 227 226 216 217 228 227 + 217 218 229 228 218 219 230 229 + + + 4 8 12 16 20 24 28 32 36 40 44 48 + 52 56 60 64 68 72 76 80 84 88 92 96 + 100 104 108 112 116 120 124 128 132 136 140 144 + 148 152 156 160 164 168 172 176 180 184 188 192 + 196 200 204 208 212 216 220 224 228 232 236 240 + 244 248 252 256 260 264 268 272 276 280 284 288 + 292 296 300 304 308 312 316 320 324 328 332 336 + 340 344 348 352 356 360 364 368 372 376 380 384 + 388 392 396 400 404 408 412 416 420 424 428 432 + 436 440 444 448 452 456 460 464 468 472 476 480 + 484 488 492 496 500 504 508 512 516 520 524 528 + 532 536 540 544 548 552 556 560 564 568 572 576 + 580 584 588 592 596 600 604 608 612 616 620 624 + 628 632 636 640 644 648 652 656 660 664 668 672 + 676 680 684 688 692 696 700 704 708 712 716 720 + 724 728 732 736 740 744 748 752 756 760 764 768 + 772 776 780 784 788 792 796 800 + + + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 + + + + + diff --git a/test/references/steaminjectioncc-reference.vtu b/test/references/steaminjectioncc-reference.vtu new file mode 100644 index 0000000000000000000000000000000000000000..7c1956e3deaf2a7a2370bc2a88e89373c1d5a5d4 --- /dev/null +++ b/test/references/steaminjectioncc-reference.vtu @@ -0,0 +1,1742 @@ + + + + + + + 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 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.874568 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 0.80153 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 0.753075 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 0.74249 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 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 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 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 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 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0.125432 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0.19847 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0.246925 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0.25751 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + + + 178915 178914 178912 178909 178906 178902 178897 178891 178885 178879 178872 178865 + 178857 178849 178842 178834 178826 178818 178810 178803 176954 176953 176951 176949 + 176945 176941 176936 176930 176924 176918 176911 176903 176896 176888 176880 176872 + 176864 176857 176849 176841 174994 174993 174992 174989 174985 174981 174976 174970 + 174964 174957 174950 174942 174935 174927 174919 174911 174903 174895 174887 174879 + 173036 173035 173033 173030 173026 173021 173016 173010 173003 172996 172989 172982 + 172974 172966 172958 172950 172942 172933 172925 172917 171078 171077 171075 171072 + 171068 171063 171057 171051 171044 171036 171029 171021 171013 171005 170997 170988 + 170980 170972 170963 170955 169121 169120 169118 169115 169110 169105 169099 169092 + 169085 169077 169069 169061 169052 169044 169035 169027 169019 169010 169002 168993 + 167165 167164 167162 167159 167154 167148 167141 167134 167126 167117 167109 167100 + 167092 167083 167074 167066 167057 167048 167040 167031 165209 165210 165208 165205 + 165199 165192 165184 165176 165167 165158 165149 165140 165131 165122 165113 165104 + 165096 165087 165078 165069 163254 163257 163257 163252 163245 163237 163228 163218 + 163209 163199 163189 163180 163171 163161 163152 163143 163134 163125 163116 163107 + 161294 161309 161309 161302 161293 161282 161272 161261 161250 161240 161230 161220 + 161210 161200 161191 161182 161173 161163 161154 161145 159368 159375 159367 159355 + 159341 159328 159316 159303 159292 159280 159270 159259 159249 159239 159230 159220 + 159211 159202 159193 159184 157488 157449 157428 157408 157390 157374 157359 157345 + 157333 157321 157309 157298 157288 157278 157268 157258 157249 157240 157231 157222 + 155586 155507 155484 155459 155437 155418 155401 155386 155373 155360 155348 155337 + 155326 155316 155306 155297 155287 155278 155269 155260 153650 153552 153533 153505 + 153481 153460 153442 153426 153412 153399 153387 153375 153365 153354 153344 153335 + 153325 153316 153307 153298 151670 151596 151576 151547 151521 151499 151481 151464 + 151450 151437 151424 151413 151402 151392 151382 151372 151363 151354 151345 151336 + 149649 149639 149610 149581 149556 149535 149517 149501 149486 149473 149461 149450 + 149439 149429 149419 149410 149400 149391 149382 149373 147695 147665 147635 147609 + 147587 147568 147551 147536 147522 147509 147497 147486 147476 147466 147456 147447 + 147438 147429 147420 147411 145694 145675 145654 145634 145615 145598 145583 145569 + 145556 145544 145533 145522 145512 145502 145493 145484 145475 145466 145458 145449 + 143696 143686 143672 143657 143642 143628 143614 143601 143590 143578 143568 143558 + 143548 143539 143530 143521 143512 143504 143495 143487 141706 141700 141691 141680 + 141668 141656 141644 141633 141622 141612 141602 141592 141583 141574 141566 141557 + 141549 141541 141533 141525 139722 139718 139712 139703 139694 139684 139674 139664 + 139654 139645 139636 139627 139618 139610 139602 139594 139586 139578 139570 139563 + 137742 137740 137735 137728 137721 137712 137704 137695 137686 137678 137670 137661 + 137653 137645 137638 137630 137623 137615 137608 137601 135765 135763 135759 135754 + 135748 135741 135734 135726 135718 135711 135703 135696 135688 135681 135674 135666 + 135659 135652 135645 135638 133789 133788 133785 133781 133776 133770 133764 133757 + 133750 133743 133736 133730 133723 133716 133709 133703 133696 133689 133683 133676 + 131815 131814 131812 131808 131804 131799 131794 131788 131782 131776 131770 131764 + 131757 131751 131745 131739 131732 131726 131720 131714 129843 129842 129840 129837 + 129833 129829 129825 129820 129814 129809 129803 129798 129792 129786 129780 129775 + 129769 129763 129758 129752 127871 127870 127869 127866 127863 127860 127856 127851 + 127847 127842 127837 127832 127826 127821 127816 127811 127805 127800 127795 127790 + 125900 125900 125898 125896 125894 125891 125887 125883 125879 125875 125870 125866 + 125861 125856 125852 125847 125842 125837 125832 125827 123930 123930 123928 123927 + 123924 123922 123919 123915 123912 123908 123904 123900 123896 123892 123887 123883 + 123878 123874 123870 123865 121961 121960 121959 121958 121956 121954 121951 121948 + 121945 121942 121938 121934 121931 121927 121923 121919 121915 121911 121907 121903 + 119992 119991 119990 119989 119987 119986 119983 119981 119978 119975 119972 119969 + 119965 119962 119959 119955 119952 119948 119944 119941 118023 118023 118022 118021 + 118020 118018 118016 118014 118011 118009 118006 118003 118000 117997 117994 117991 + 117988 117985 117982 117979 116055 116055 116054 116053 116052 116050 116049 116047 + 116045 116043 116040 116038 116035 116033 116030 116027 116025 116022 116019 116016 + 114087 114087 114086 114085 114084 114083 114082 114080 114079 114077 114075 114073 + 114071 114068 114066 114064 114061 114059 114057 114054 112119 112119 112119 112118 + 112117 112116 112115 112114 112112 112111 112109 112108 112106 112104 112102 112100 + 112098 112096 112094 112092 110152 110152 110151 110151 110150 110149 110149 110148 + 110146 110145 110144 110142 110141 110139 110138 110136 110135 110133 110131 110130 + 108185 108184 108184 108184 108183 108183 108182 108181 108180 108179 108178 108177 + 108176 108175 108174 108173 108171 108170 108169 108168 106218 106217 106217 106217 + 106217 106216 106216 106215 106215 106214 106213 106212 106212 106211 106210 106209 + 106208 106207 106206 106205 104250 104250 104250 104250 104250 104250 104249 104249 + 104249 104248 104248 104247 104247 104246 104246 104245 104245 104244 104244 104243 + 102283 102283 102283 102283 102283 102283 102283 102283 102283 102283 102283 102282 + 102282 102282 102282 102282 102282 102281 102281 102281 + + + 178915 178914 178912 178909 178906 178902 178897 178891 178885 178879 178872 178865 + 178857 178849 178842 178834 178826 178818 178810 178803 176954 176953 176951 176949 + 176945 176941 176936 176930 176924 176918 176911 176903 176896 176888 176880 176872 + 176864 176857 176849 176841 174994 174993 174992 174989 174985 174981 174976 174970 + 174964 174957 174950 174942 174935 174927 174919 174911 174903 174895 174887 174879 + 173036 173035 173033 173030 173026 173021 173016 173010 173003 172996 172989 172982 + 172974 172966 172958 172950 172942 172933 172925 172917 171078 171077 171075 171072 + 171068 171063 171057 171051 171044 171036 171029 171021 171013 171005 170997 170988 + 170980 170972 170963 170955 169121 169120 169118 169115 169110 169105 169099 169092 + 169085 169077 169069 169061 169052 169044 169035 169027 169019 169010 169002 168993 + 167165 167164 167162 167159 167154 167148 167141 167134 167126 167117 167109 167100 + 167092 167083 167074 167066 167057 167048 167040 167031 165209 165210 165208 165205 + 165199 165192 165184 165176 165167 165158 165149 165140 165131 165122 165113 165104 + 165096 165087 165078 165069 163254 163257 163257 163252 163245 163237 163228 163218 + 163209 163199 163189 163180 163171 163161 163152 163143 163134 163125 163116 163107 + 161294 161309 161309 161302 161293 161282 161272 161261 161250 161240 161230 161220 + 161210 161200 161191 161182 161173 161163 161154 161145 159368 159375 159367 159355 + 159341 159328 159316 159303 159292 159280 159270 159259 159249 159239 159230 159220 + 159211 159202 159193 159184 157699 157449 157428 157408 157390 157374 157359 157345 + 157333 157321 157309 157298 157288 157278 157268 157258 157249 157240 157231 157222 + 155873 155507 155484 155459 155437 155418 155401 155386 155373 155360 155348 155337 + 155326 155316 155306 155297 155287 155278 155269 155260 153988 153552 153533 153505 + 153481 153460 153442 153426 153412 153399 153387 153375 153365 153354 153344 153335 + 153325 153316 153307 153298 152020 151596 151576 151547 151521 151499 151481 151464 + 151450 151437 151424 151413 151402 151392 151382 151372 151363 151354 151345 151336 + 149649 149639 149610 149581 149556 149535 149517 149501 149486 149473 149461 149450 + 149439 149429 149419 149410 149400 149391 149382 149373 147695 147665 147635 147609 + 147587 147568 147551 147536 147522 147509 147497 147486 147476 147466 147456 147447 + 147438 147429 147420 147411 145694 145675 145654 145634 145615 145598 145583 145569 + 145556 145544 145533 145522 145512 145502 145493 145484 145475 145466 145458 145449 + 143696 143686 143672 143657 143642 143628 143614 143601 143590 143578 143568 143558 + 143548 143539 143530 143521 143512 143504 143495 143487 141706 141700 141691 141680 + 141668 141656 141644 141633 141622 141612 141602 141592 141583 141574 141566 141557 + 141549 141541 141533 141525 139722 139718 139712 139703 139694 139684 139674 139664 + 139654 139645 139636 139627 139618 139610 139602 139594 139586 139578 139570 139563 + 137742 137740 137735 137728 137721 137712 137704 137695 137686 137678 137670 137661 + 137653 137645 137638 137630 137623 137615 137608 137601 135765 135763 135759 135754 + 135748 135741 135734 135726 135718 135711 135703 135696 135688 135681 135674 135666 + 135659 135652 135645 135638 133789 133788 133785 133781 133776 133770 133764 133757 + 133750 133743 133736 133730 133723 133716 133709 133703 133696 133689 133683 133676 + 131815 131814 131812 131808 131804 131799 131794 131788 131782 131776 131770 131764 + 131757 131751 131745 131739 131732 131726 131720 131714 129843 129842 129840 129837 + 129833 129829 129825 129820 129814 129809 129803 129798 129792 129786 129780 129775 + 129769 129763 129758 129752 127871 127870 127869 127866 127863 127860 127856 127851 + 127847 127842 127837 127832 127826 127821 127816 127811 127805 127800 127795 127790 + 125900 125900 125898 125896 125894 125891 125887 125883 125879 125875 125870 125866 + 125861 125856 125852 125847 125842 125837 125832 125827 123930 123930 123928 123927 + 123924 123922 123919 123915 123912 123908 123904 123900 123896 123892 123887 123883 + 123878 123874 123870 123865 121961 121960 121959 121958 121956 121954 121951 121948 + 121945 121942 121938 121934 121931 121927 121923 121919 121915 121911 121907 121903 + 119992 119991 119990 119989 119987 119986 119983 119981 119978 119975 119972 119969 + 119965 119962 119959 119955 119952 119948 119944 119941 118023 118023 118022 118021 + 118020 118018 118016 118014 118011 118009 118006 118003 118000 117997 117994 117991 + 117988 117985 117982 117979 116055 116055 116054 116053 116052 116050 116049 116047 + 116045 116043 116040 116038 116035 116033 116030 116027 116025 116022 116019 116016 + 114087 114087 114086 114085 114084 114083 114082 114080 114079 114077 114075 114073 + 114071 114068 114066 114064 114061 114059 114057 114054 112119 112119 112119 112118 + 112117 112116 112115 112114 112112 112111 112109 112108 112106 112104 112102 112100 + 112098 112096 112094 112092 110152 110152 110151 110151 110150 110149 110149 110148 + 110146 110145 110144 110142 110141 110139 110138 110136 110135 110133 110131 110130 + 108185 108184 108184 108184 108183 108183 108182 108181 108180 108179 108178 108177 + 108176 108175 108174 108173 108171 108170 108169 108168 106218 106217 106217 106217 + 106217 106216 106216 106215 106215 106214 106213 106212 106212 106211 106210 106209 + 106208 106207 106206 106205 104250 104250 104250 104250 104250 104250 104249 104249 + 104249 104248 104248 104247 104247 104246 104246 104245 104245 104244 104244 104243 + 102283 102283 102283 102283 102283 102283 102283 102283 102283 102283 102283 102282 + 102282 102282 102282 102282 102282 102281 102281 102281 + + + 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.728 + 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.728 999.727 999.727 999.727 999.727 + 999.727 999.727 999.727 999.727 999.727 999.727 999.727 999.727 999.727 999.727 999.727 999.727 + 999.727 999.727 999.727 999.727 999.726 999.726 999.726 999.726 999.726 999.726 999.726 999.726 + 999.726 999.726 999.726 999.726 999.726 999.726 999.726 999.726 999.726 999.726 999.726 999.726 + 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 + 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.725 999.724 999.724 999.724 999.724 + 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 + 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 999.724 + 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 + 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 999.723 + 999.723 999.723 999.723 999.723 999.723 999.723 999.722 999.722 999.722 999.722 999.722 999.722 + 999.722 999.722 999.722 999.722 999.722 999.722 999.722 999.722 999.722 999.722 999.722 999.722 + 999.722 999.722 999.722 999.722 999.717 999.721 999.721 999.721 999.721 999.721 999.721 999.721 + 999.721 999.721 999.721 999.721 999.721 999.721 999.721 999.721 999.721 999.721 999.721 999.721 + 999.466 999.713 999.72 999.72 999.72 999.72 999.72 999.72 999.72 999.72 999.72 999.72 + 999.72 999.72 999.72 999.72 999.72 999.72 999.72 999.72 952.244 999.556 999.715 999.719 + 999.719 999.719 999.719 999.719 999.719 999.719 999.719 999.719 999.719 999.719 999.719 999.719 + 999.719 999.719 999.719 999.719 948.75 998.182 999.69 999.717 999.718 999.718 999.718 999.718 + 999.718 999.718 999.718 999.718 999.718 999.718 999.718 999.718 999.718 999.718 999.718 999.718 + 949.02 996.638 999.632 999.714 999.717 999.717 999.717 999.717 999.717 999.717 999.717 999.717 + 999.717 999.717 999.717 999.717 999.717 999.717 999.717 999.717 949.302 993.563 999.456 999.704 + 999.715 999.716 999.716 999.716 999.716 999.716 999.716 999.716 999.716 999.716 999.716 999.716 + 999.716 999.716 999.716 999.716 949.6 988.868 998.994 999.677 999.713 999.715 999.715 999.715 + 999.715 999.715 999.715 999.715 999.715 999.715 999.715 999.715 999.715 999.715 999.715 999.715 + 967.998 998.253 999.614 999.708 999.714 999.714 999.714 999.714 999.714 999.714 999.714 999.714 + 999.714 999.714 999.714 999.714 999.714 999.714 999.714 999.714 997.714 999.571 999.704 999.713 + 999.713 999.713 999.713 999.713 999.713 999.713 999.713 999.713 999.713 999.713 999.713 999.713 + 999.713 999.713 999.713 999.713 999.589 999.703 999.712 999.712 999.712 999.712 999.712 999.712 + 999.712 999.712 999.712 999.712 999.712 999.712 999.712 999.712 999.712 999.712 999.712 999.712 + 999.705 999.711 999.711 999.711 999.711 999.711 999.711 999.711 999.711 999.711 999.711 999.711 + 999.711 999.711 999.711 999.711 999.711 999.711 999.711 999.711 999.71 999.71 999.71 999.71 + 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 999.71 + 999.71 999.71 999.71 999.71 999.709 999.709 999.709 999.709 999.709 999.709 999.709 999.709 + 999.709 999.709 999.709 999.709 999.709 999.709 999.709 999.709 999.709 999.709 999.709 999.709 + 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 + 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 + 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 999.708 + 999.708 999.708 999.708 999.708 999.707 999.707 999.707 999.707 999.707 999.707 999.707 999.707 + 999.707 999.707 999.707 999.707 999.707 999.707 999.707 999.707 999.707 999.707 999.707 999.707 + 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 + 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.706 999.705 999.705 999.705 999.705 + 999.705 999.705 999.705 999.705 999.705 999.705 999.705 999.705 999.705 999.705 999.705 999.705 + 999.705 999.705 999.705 999.705 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 + 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 999.704 + 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.703 + 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.703 999.702 999.702 999.702 999.702 + 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 999.702 + 999.702 999.702 999.702 999.702 999.701 999.701 999.701 999.701 999.701 999.701 999.701 999.701 + 999.701 999.701 999.701 999.701 999.701 999.701 999.701 999.701 999.701 999.701 999.701 999.701 + 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.7 + 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.7 999.699 999.699 999.699 999.699 + 999.699 999.699 999.699 999.699 999.699 999.699 999.699 999.699 999.699 999.699 999.699 999.699 + 999.699 999.699 999.699 999.699 999.698 999.698 999.698 999.698 999.698 999.698 999.698 999.698 + 999.698 999.698 999.698 999.698 999.698 999.698 999.698 999.698 999.698 999.698 999.698 999.698 + 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.697 + 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.697 999.696 999.696 999.696 999.696 + 999.696 999.696 999.696 999.696 999.696 999.696 999.696 999.696 999.696 999.696 999.696 999.696 + 999.696 999.696 999.696 999.696 999.695 999.695 999.695 999.695 999.695 999.695 999.695 999.695 + 999.695 999.695 999.695 999.695 999.695 999.695 999.695 999.695 999.695 999.695 999.695 999.695 + 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.694 + 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.694 999.693 999.693 999.693 999.693 + 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 + 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 + 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 999.693 + 999.692 999.692 999.692 999.692 999.692 999.692 999.692 999.692 999.692 999.692 999.692 999.692 + 999.692 999.692 999.692 999.692 999.692 999.692 999.692 999.692 + + + 1.37174 1.37173 1.37172 1.3717 1.37167 1.37164 1.3716 1.37156 1.37151 1.37146 1.37141 1.37135 + 1.3713 1.37124 1.37118 1.37112 1.37106 1.371 1.37094 1.37088 1.35671 1.3567 1.35668 1.35666 + 1.35664 1.3566 1.35657 1.35652 1.35648 1.35643 1.35637 1.35632 1.35626 1.3562 1.35614 1.35608 + 1.35602 1.35596 1.3559 1.35584 1.34168 1.34167 1.34166 1.34164 1.34161 1.34158 1.34154 1.34149 + 1.34144 1.34139 1.34134 1.34128 1.34122 1.34116 1.3411 1.34104 1.34098 1.34092 1.34086 1.3408 + 1.32666 1.32666 1.32664 1.32662 1.32659 1.32655 1.32651 1.32647 1.32642 1.32636 1.32631 1.32625 + 1.32619 1.32613 1.32607 1.326 1.32594 1.32588 1.32582 1.32575 1.31165 1.31164 1.31163 1.31161 + 1.31158 1.31154 1.31149 1.31144 1.31139 1.31134 1.31128 1.31122 1.31116 1.31109 1.31103 1.31097 + 1.3109 1.31084 1.31078 1.31071 1.29665 1.29664 1.29663 1.2966 1.29657 1.29653 1.29648 1.29643 + 1.29637 1.29631 1.29625 1.29619 1.29612 1.29606 1.29599 1.29593 1.29586 1.2958 1.29573 1.29567 + 1.28165 1.28165 1.28163 1.28161 1.28157 1.28152 1.28147 1.28141 1.28135 1.28129 1.28122 1.28116 + 1.28109 1.28102 1.28096 1.28089 1.28083 1.28076 1.28069 1.28063 1.26666 1.26666 1.26665 1.26662 + 1.26658 1.26653 1.26647 1.2664 1.26633 1.26627 1.2662 1.26613 1.26606 1.26599 1.26592 1.26585 + 1.26579 1.26572 1.26565 1.26559 1.25144 1.25168 1.25169 1.25165 1.2516 1.25154 1.25147 1.25139 + 1.25132 1.25125 1.25117 1.2511 1.25103 1.25096 1.25089 1.25082 1.25075 1.25068 1.25061 1.25054 + 1.22659 1.23635 1.23674 1.2367 1.23663 1.23655 1.23647 1.23639 1.2363 1.23622 1.23615 1.23607 + 1.23599 1.23592 1.23585 1.23578 1.23571 1.23564 1.23557 1.2355 0.925294 1.21516 1.22165 1.22176 + 1.22167 1.22157 1.22147 1.22138 1.22129 1.2212 1.22112 1.22104 1.22096 1.22089 1.22081 1.22074 + 1.22067 1.2206 1.22053 1.22046 0.903887 1.1663 1.20535 1.2068 1.20671 1.20658 1.20647 1.20637 + 1.20627 1.20618 1.20609 1.206 1.20592 1.20585 1.20577 1.2057 1.20563 1.20556 1.20549 1.20542 + 0.894086 1.12811 1.18813 1.19172 1.19173 1.19159 1.19146 1.19135 1.19124 1.19114 1.19105 1.19097 + 1.19089 1.19081 1.19073 1.19066 1.19058 1.19051 1.19044 1.19037 0.883967 1.0802 1.16735 1.17624 + 1.1767 1.17657 1.17644 1.17632 1.17621 1.17611 1.17601 1.17593 1.17584 1.17576 1.17569 1.17561 + 1.17554 1.17547 1.1754 1.17533 0.873396 1.02966 1.13957 1.15978 1.16158 1.16154 1.1614 1.16127 + 1.16116 1.16106 1.16097 1.16088 1.1608 1.16072 1.16064 1.16057 1.1605 1.16043 1.16036 1.16029 + 0.919177 1.10982 1.14274 1.1465 1.14662 1.14648 1.14634 1.14622 1.14611 1.14601 1.14592 1.14583 + 1.14575 1.14567 1.1456 1.14552 1.14545 1.14538 1.14531 1.14524 1.08645 1.12653 1.13141 1.13168 + 1.13155 1.1314 1.13127 1.13115 1.13105 1.13095 1.13086 1.13078 1.1307 1.13062 1.13055 1.13047 + 1.1304 1.13034 1.13027 1.1302 1.1121 1.11637 1.11669 1.11657 1.11643 1.1163 1.11618 1.11608 + 1.11598 1.11588 1.1158 1.11572 1.11564 1.11556 1.11549 1.11542 1.11536 1.11529 1.11522 1.11516 + 1.10137 1.1016 1.10153 1.10141 1.1013 1.10119 1.10109 1.10099 1.1009 1.10081 1.10073 1.10065 + 1.10058 1.10051 1.10044 1.10037 1.10031 1.10024 1.10018 1.10011 1.08644 1.08641 1.08634 1.08626 + 1.08617 1.08607 1.08598 1.0859 1.08582 1.08574 1.08566 1.08559 1.08552 1.08545 1.08538 1.08532 + 1.08525 1.08519 1.08513 1.08507 1.07125 1.07122 1.07117 1.0711 1.07103 1.07096 1.07088 1.0708 + 1.07073 1.07066 1.07059 1.07052 1.07045 1.07039 1.07032 1.07026 1.0702 1.07014 1.07008 1.07003 + 1.05607 1.05605 1.05601 1.05596 1.0559 1.05584 1.05577 1.05571 1.05564 1.05557 1.05551 1.05545 + 1.05539 1.05533 1.05527 1.05521 1.05515 1.05509 1.05504 1.05498 1.04091 1.04089 1.04086 1.04082 + 1.04077 1.04072 1.04067 1.04061 1.04055 1.04049 1.04043 1.04037 1.04032 1.04026 1.04021 1.04015 + 1.0401 1.04004 1.03999 1.03994 1.02576 1.02575 1.02573 1.02569 1.02565 1.02561 1.02556 1.02551 + 1.02546 1.02541 1.02535 1.0253 1.02525 1.0252 1.02515 1.02509 1.02504 1.02499 1.02494 1.02489 + 1.01063 1.01062 1.0106 1.01057 1.01054 1.0105 1.01046 1.01042 1.01037 1.01032 1.01028 1.01023 + 1.01018 1.01013 1.01008 1.01004 1.00999 1.00994 1.0099 1.00985 0.995501 0.995493 0.995478 0.995457 + 0.995429 0.995397 0.995362 0.995324 0.995283 0.995241 0.995198 0.995155 0.995111 0.995067 0.995023 0.994979 + 0.994935 0.994892 0.994848 0.994804 0.980384 0.980378 0.980365 0.980347 0.980324 0.980297 0.980266 0.980232 + 0.980197 0.98016 0.980121 0.980082 0.980042 0.980002 0.979962 0.979922 0.979881 0.979841 0.9798 0.97976 + 0.965274 0.965269 0.965258 0.965243 0.965223 0.965199 0.965173 0.965144 0.965112 0.965079 0.965045 0.96501 + 0.964974 0.964938 0.964901 0.964864 0.964827 0.96479 0.964753 0.964716 0.950169 0.950164 0.950155 0.950142 + 0.950126 0.950105 0.950082 0.950057 0.950029 0.95 0.94997 0.949938 0.949906 0.949873 0.94984 0.949806 + 0.949773 0.949739 0.949705 0.949671 0.935069 0.935065 0.935057 0.935046 0.935032 0.935014 0.934994 0.934972 + 0.934948 0.934922 0.934895 0.934867 0.934838 0.934809 0.934779 0.934749 0.934719 0.934688 0.934658 0.934627 + 0.919972 0.919969 0.919962 0.919953 0.919941 0.919926 0.919908 0.919889 0.919868 0.919845 0.919822 0.919797 + 0.919772 0.919746 0.919719 0.919692 0.919665 0.919638 0.91961 0.919583 0.904879 0.904876 0.904871 0.904863 + 0.904852 0.904839 0.904824 0.904808 0.90479 0.90477 0.904749 0.904728 0.904705 0.904683 0.904659 0.904635 + 0.904611 0.904587 0.904563 0.904538 0.889789 0.889786 0.889782 0.889775 0.889766 0.889755 0.889742 0.889728 + 0.889713 0.889696 0.889678 0.889659 0.88964 0.88962 0.8896 0.889579 0.889558 0.889537 0.889515 0.889494 + 0.874701 0.874699 0.874695 0.874689 0.874682 0.874673 0.874662 0.87465 0.874637 0.874623 0.874607 0.874592 + 0.874575 0.874558 0.874541 0.874523 0.874505 0.874487 0.874468 0.87445 0.859615 0.859613 0.85961 0.859605 + 0.859599 0.859592 0.859583 0.859573 0.859562 0.85955 0.859538 0.859524 0.859511 0.859496 0.859482 0.859467 + 0.859452 0.859436 0.859421 0.859406 0.84453 0.844529 0.844527 0.844523 0.844518 0.844512 0.844505 0.844497 + 0.844488 0.844479 0.844468 0.844458 0.844447 0.844435 0.844423 0.844411 0.844399 0.844386 0.844374 0.844361 + 0.829447 0.829446 0.829444 0.829442 0.829438 0.829433 0.829428 0.829422 0.829415 0.829408 0.8294 0.829392 + 0.829383 0.829374 0.829365 0.829356 0.829346 0.829337 0.829327 0.829317 0.814365 0.814365 0.814363 0.814361 + 0.814359 0.814355 0.814352 0.814347 0.814342 0.814337 0.814332 0.814326 0.81432 0.814314 0.814307 0.8143 + 0.814294 0.814287 0.81428 0.814273 0.799284 0.799284 0.799283 0.799282 0.79928 0.799278 0.799276 0.799273 + 0.79927 0.799267 0.799264 0.799261 0.799257 0.799253 0.799249 0.799245 0.799241 0.799237 0.799233 0.799229 + 0.784203 0.784203 0.784203 0.784202 0.784202 0.784201 0.7842 0.784199 0.784199 0.784198 0.784196 0.784195 + 0.784194 0.784193 0.784191 0.78419 0.784189 0.784187 0.784186 0.784185 + + + 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.38 + 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.38 764.379 764.379 764.379 764.379 + 764.379 764.379 764.379 764.379 764.379 764.379 764.379 764.379 764.379 764.379 764.379 764.379 + 764.379 764.379 764.379 764.379 764.378 764.378 764.378 764.378 764.378 764.378 764.378 764.378 + 764.378 764.378 764.378 764.378 764.378 764.378 764.378 764.378 764.378 764.378 764.378 764.378 + 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.377 + 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.377 764.376 764.376 764.376 764.376 + 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 764.376 + 764.376 764.376 764.376 764.376 764.375 764.375 764.375 764.375 764.375 764.375 764.375 764.375 + 764.375 764.375 764.375 764.375 764.375 764.375 764.375 764.375 764.375 764.375 764.375 764.375 + 764.374 764.374 764.373 764.373 764.374 764.374 764.374 764.374 764.374 764.374 764.374 764.374 + 764.374 764.374 764.374 764.374 764.374 764.374 764.374 764.374 764.393 764.373 764.372 764.372 + 764.372 764.372 764.372 764.373 764.373 764.373 764.373 764.373 764.373 764.373 764.373 764.373 + 764.373 764.373 764.373 764.373 765.577 764.43 764.373 764.371 764.371 764.371 764.371 764.371 + 764.372 764.372 764.372 764.372 764.372 764.372 764.372 764.372 764.372 764.372 764.372 764.372 + 816.908 766.563 764.436 764.372 764.37 764.37 764.37 764.37 764.37 764.371 764.371 764.371 + 764.371 764.371 764.371 764.371 764.371 764.371 764.371 764.371 3862.08 800.011 765.544 764.401 + 764.37 764.369 764.369 764.369 764.369 764.37 764.37 764.37 764.37 764.37 764.37 764.37 + 764.37 764.37 764.37 764.37 901.808 1001.44 773.59 764.634 764.375 764.368 764.368 764.368 + 764.368 764.369 764.369 764.369 764.369 764.369 764.369 764.369 764.369 764.369 764.369 764.369 + 495.58 1163.15 786.173 765.376 764.405 764.368 764.367 764.367 764.367 764.367 764.367 764.367 + 764.368 764.368 764.368 764.368 764.368 764.368 764.368 764.368 332.191 1428.54 818.131 768.249 + 764.56 764.374 764.367 764.366 764.366 764.366 764.367 764.367 764.367 764.367 764.367 764.367 + 764.367 764.367 764.367 764.366 303.098 1773.12 894.642 776.788 765.091 764.396 764.367 764.366 + 764.365 764.365 764.365 764.365 764.365 764.365 764.365 764.365 764.365 764.365 764.365 764.365 + 3036.43 992.09 788.849 766.309 764.471 764.369 764.365 764.365 764.365 764.365 764.365 764.365 + 764.364 764.364 764.364 764.364 764.364 764.364 764.364 764.364 1053.9 796.323 767.337 764.557 + 764.373 764.364 764.364 764.364 764.364 764.364 764.363 764.363 764.363 764.363 764.363 764.363 + 764.363 764.363 764.363 764.363 792.957 767.441 764.6 764.377 764.364 764.363 764.363 764.363 + 764.363 764.362 764.362 764.362 764.362 764.362 764.362 764.362 764.362 764.362 764.362 764.362 + 766.462 764.561 764.376 764.363 764.362 764.362 764.362 764.362 764.362 764.362 764.361 764.361 + 764.361 764.361 764.361 764.361 764.361 764.361 764.361 764.361 764.469 764.371 764.362 764.361 + 764.361 764.361 764.361 764.361 764.361 764.36 764.36 764.36 764.36 764.36 764.36 764.36 + 764.36 764.36 764.36 764.36 764.365 764.361 764.36 764.36 764.36 764.36 764.36 764.36 + 764.36 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.359 + 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.359 764.358 764.358 764.358 + 764.358 764.358 764.358 764.358 764.358 764.358 764.358 764.358 764.358 764.358 764.358 764.358 + 764.358 764.358 764.358 764.358 764.357 764.357 764.357 764.357 764.357 764.357 764.357 764.357 + 764.357 764.357 764.357 764.357 764.357 764.357 764.357 764.357 764.357 764.357 764.357 764.356 + 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 764.356 + 764.356 764.356 764.356 764.356 764.356 764.356 764.355 764.355 764.355 764.355 764.355 764.355 + 764.355 764.355 764.355 764.355 764.355 764.355 764.355 764.355 764.355 764.355 764.355 764.354 + 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.354 764.354 + 764.354 764.354 764.354 764.354 764.353 764.353 764.353 764.353 764.353 764.353 764.353 764.353 + 764.353 764.353 764.353 764.353 764.353 764.353 764.353 764.353 764.353 764.353 764.353 764.353 + 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.352 + 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.352 764.351 764.351 764.351 764.351 + 764.351 764.351 764.351 764.351 764.351 764.351 764.351 764.351 764.351 764.351 764.351 764.351 + 764.351 764.351 764.351 764.351 764.35 764.35 764.35 764.35 764.35 764.35 764.35 764.35 + 764.35 764.35 764.35 764.35 764.35 764.35 764.35 764.35 764.35 764.35 764.35 764.35 + 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.349 + 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.349 764.348 764.348 764.348 764.348 + 764.348 764.348 764.348 764.348 764.348 764.348 764.348 764.348 764.348 764.348 764.348 764.348 + 764.348 764.348 764.348 764.348 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.347 + 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.347 764.347 + 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.346 + 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.346 764.345 764.345 764.345 764.345 + 764.345 764.345 764.345 764.345 764.345 764.345 764.345 764.345 764.345 764.345 764.345 764.345 + 764.345 764.345 764.345 764.345 764.344 764.344 764.344 764.344 764.344 764.344 764.344 764.344 + 764.344 764.344 764.344 764.344 764.344 764.344 764.344 764.344 764.344 764.344 764.344 764.344 + 764.343 764.343 764.343 764.343 764.343 764.343 764.343 764.343 764.343 764.343 764.343 764.343 + 764.343 764.343 764.343 764.343 764.343 764.342 764.342 764.342 764.342 764.342 764.342 764.342 + 764.342 764.342 764.342 764.342 764.342 764.342 764.342 764.342 764.342 764.341 764.341 764.341 + 764.341 764.341 764.341 764.341 764.341 764.341 764.341 764.341 764.341 764.341 764.341 764.341 + 764.341 764.341 764.341 764.341 764.341 764.34 764.34 764.34 764.34 764.34 764.34 764.34 + 764.34 764.34 764.34 764.34 764.34 764.34 764.34 764.34 764.339 764.339 764.339 764.339 + 764.339 764.339 764.339 764.339 764.339 764.339 764.339 764.339 + + + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 10604 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 18717 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 24312.2 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 25563.6 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + + + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 + 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 0.00130825 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130823 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130621 0.00130816 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 0.00130826 + 0.00122413 0.00130452 0.00130815 0.00130826 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.000258928 0.00124998 0.00130626 0.00130821 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.000247772 0.000998563 0.00129267 0.00130782 0.00130826 0.00130827 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 + 0.000248618 0.000859732 0.00127198 0.00130655 0.00130821 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.0002495 0.000700015 0.0012223 0.00130166 + 0.00130794 0.00130826 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.000250431 0.000563979 0.00111777 0.00128735 0.00130703 0.00130822 0.00130827 0.00130827 + 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 0.00130827 + 0.000329334 0.00100797 0.00126767 0.00130496 0.00130809 0.00130827 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00094886 0.00125577 0.00130321 0.00130795 + 0.00130826 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00130828 0.0012611 0.00130303 0.00130787 0.00130825 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.0013047 0.00130794 0.00130826 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.0013081 0.00130826 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 0.00130828 + 0.00130828 0.00130828 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 0.00130829 + 0.00130829 0.00130829 0.00130829 0.00130829 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 0.0013083 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 + 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130831 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 0.00130832 + + + 8.67529e-06 8.6753e-06 8.6753e-06 8.67531e-06 8.67532e-06 8.67534e-06 8.67535e-06 8.67537e-06 8.67539e-06 8.67541e-06 8.67543e-06 8.67545e-06 + 8.67548e-06 8.6755e-06 8.67553e-06 8.67555e-06 8.67557e-06 8.6756e-06 8.67562e-06 8.67565e-06 8.6815e-06 8.68151e-06 8.68151e-06 8.68152e-06 + 8.68153e-06 8.68154e-06 8.68156e-06 8.68158e-06 8.6816e-06 8.68162e-06 8.68164e-06 8.68166e-06 8.68169e-06 8.68171e-06 8.68174e-06 8.68176e-06 + 8.68179e-06 8.68181e-06 8.68184e-06 8.68186e-06 8.68771e-06 8.68771e-06 8.68772e-06 8.68773e-06 8.68774e-06 8.68775e-06 8.68777e-06 8.68779e-06 + 8.68781e-06 8.68783e-06 8.68785e-06 8.68787e-06 8.6879e-06 8.68792e-06 8.68795e-06 8.68797e-06 8.688e-06 8.68802e-06 8.68805e-06 8.68807e-06 + 8.69391e-06 8.69391e-06 8.69392e-06 8.69393e-06 8.69394e-06 8.69396e-06 8.69397e-06 8.69399e-06 8.69401e-06 8.69403e-06 8.69406e-06 8.69408e-06 + 8.69411e-06 8.69413e-06 8.69416e-06 8.69418e-06 8.69421e-06 8.69423e-06 8.69426e-06 8.69429e-06 8.70011e-06 8.70011e-06 8.70012e-06 8.70013e-06 + 8.70014e-06 8.70016e-06 8.70018e-06 8.7002e-06 8.70022e-06 8.70024e-06 8.70026e-06 8.70029e-06 8.70032e-06 8.70034e-06 8.70037e-06 8.70039e-06 + 8.70042e-06 8.70045e-06 8.70047e-06 8.7005e-06 8.70631e-06 8.70631e-06 8.70632e-06 8.70633e-06 8.70634e-06 8.70636e-06 8.70638e-06 8.7064e-06 + 8.70642e-06 8.70645e-06 8.70647e-06 8.7065e-06 8.70652e-06 8.70655e-06 8.70658e-06 8.7066e-06 8.70663e-06 8.70666e-06 8.70668e-06 8.70671e-06 + 8.7125e-06 8.7125e-06 8.71251e-06 8.71252e-06 8.71253e-06 8.71255e-06 8.71258e-06 8.7126e-06 8.71262e-06 8.71265e-06 8.71268e-06 8.7127e-06 + 8.71273e-06 8.71276e-06 8.71279e-06 8.71281e-06 8.71284e-06 8.71287e-06 8.7129e-06 8.71292e-06 8.71873e-06 8.71869e-06 8.7187e-06 8.71871e-06 + 8.71873e-06 8.71875e-06 8.71877e-06 8.7188e-06 8.71883e-06 8.71885e-06 8.71888e-06 8.71891e-06 8.71894e-06 8.71897e-06 8.719e-06 8.71903e-06 + 8.71905e-06 8.71908e-06 8.71911e-06 8.71914e-06 8.72684e-06 8.72497e-06 8.72488e-06 8.72489e-06 8.72491e-06 8.72494e-06 8.72497e-06 8.725e-06 + 8.72503e-06 8.72506e-06 8.72509e-06 8.72512e-06 8.72515e-06 8.72518e-06 8.72521e-06 8.72524e-06 8.72526e-06 8.72529e-06 8.72532e-06 8.72535e-06 + 8.82044e-06 8.73458e-06 8.73115e-06 8.73107e-06 8.73109e-06 8.73113e-06 8.73116e-06 8.7312e-06 8.73123e-06 8.73126e-06 8.73129e-06 8.73133e-06 + 8.73136e-06 8.73139e-06 8.73142e-06 8.73145e-06 8.73148e-06 8.7315e-06 8.73153e-06 8.73156e-06 1.24977e-05 8.79766e-06 8.73909e-06 8.73728e-06 + 8.73727e-06 8.73732e-06 8.73736e-06 8.73739e-06 8.73743e-06 8.73747e-06 8.7375e-06 8.73753e-06 8.73757e-06 8.7376e-06 8.73763e-06 8.73766e-06 + 8.73769e-06 8.73772e-06 8.73775e-06 8.73777e-06 1.26788e-05 9.12458e-06 8.758e-06 8.74382e-06 8.74346e-06 8.7435e-06 8.74355e-06 8.74359e-06 + 8.74364e-06 8.74367e-06 8.74371e-06 8.74374e-06 8.74378e-06 8.74381e-06 8.74384e-06 8.74387e-06 8.7439e-06 8.74393e-06 8.74396e-06 8.74399e-06 + 1.26666e-05 9.36982e-06 8.78542e-06 8.75119e-06 8.7497e-06 8.7497e-06 8.74975e-06 8.7498e-06 8.74984e-06 8.74988e-06 8.74992e-06 8.74995e-06 + 8.74999e-06 8.75002e-06 8.75005e-06 8.75008e-06 8.75011e-06 8.75014e-06 8.75017e-06 8.7502e-06 1.26539e-05 9.74208e-06 8.84621e-06 8.76194e-06 + 8.75614e-06 8.75591e-06 8.75596e-06 8.75601e-06 8.75605e-06 8.75609e-06 8.75613e-06 8.75617e-06 8.7562e-06 8.75623e-06 8.75626e-06 8.7563e-06 + 8.75633e-06 8.75635e-06 8.75638e-06 8.75641e-06 1.26404e-05 1.01898e-05 8.97542e-06 8.78149e-06 8.7632e-06 8.76216e-06 8.76217e-06 8.76222e-06 + 8.76226e-06 8.76231e-06 8.76234e-06 8.76238e-06 8.76241e-06 8.76245e-06 8.76248e-06 8.76251e-06 8.76254e-06 8.76257e-06 8.7626e-06 8.76263e-06 + 1.16371e-05 9.13208e-06 8.8085e-06 8.77127e-06 8.76843e-06 8.76834e-06 8.76839e-06 8.76844e-06 8.76848e-06 8.76852e-06 8.76856e-06 8.7686e-06 + 8.76863e-06 8.76866e-06 8.76869e-06 8.76872e-06 8.76875e-06 8.76878e-06 8.76881e-06 8.76884e-06 9.22985e-06 8.82757e-06 8.77905e-06 8.77473e-06 + 8.77451e-06 8.77456e-06 8.77461e-06 8.77466e-06 8.7747e-06 8.77474e-06 8.77478e-06 8.77481e-06 8.77485e-06 8.77488e-06 8.77491e-06 8.77494e-06 + 8.77497e-06 8.775e-06 8.77502e-06 8.77505e-06 8.82787e-06 8.78541e-06 8.78099e-06 8.7807e-06 8.78074e-06 8.78079e-06 8.78084e-06 8.78089e-06 + 8.78093e-06 8.78096e-06 8.781e-06 8.78103e-06 8.78107e-06 8.7811e-06 8.78113e-06 8.78116e-06 8.78118e-06 8.78121e-06 8.78124e-06 8.78127e-06 + 8.79013e-06 8.78717e-06 8.78692e-06 8.78694e-06 8.78699e-06 8.78703e-06 8.78708e-06 8.78712e-06 8.78715e-06 8.78719e-06 8.78722e-06 8.78726e-06 + 8.78729e-06 8.78732e-06 8.78734e-06 8.78737e-06 8.7874e-06 8.78743e-06 8.78745e-06 8.78748e-06 8.79329e-06 8.79315e-06 8.79317e-06 8.7932e-06 + 8.79324e-06 8.79328e-06 8.79331e-06 8.79335e-06 8.79338e-06 8.79342e-06 8.79345e-06 8.79348e-06 8.79351e-06 8.79354e-06 8.79356e-06 8.79359e-06 + 8.79362e-06 8.79364e-06 8.79367e-06 8.79369e-06 8.79941e-06 8.79941e-06 8.79943e-06 8.79946e-06 8.79949e-06 8.79952e-06 8.79955e-06 8.79958e-06 + 8.79962e-06 8.79965e-06 8.79967e-06 8.7997e-06 8.79973e-06 8.79976e-06 8.79978e-06 8.79981e-06 8.79983e-06 8.79986e-06 8.79988e-06 8.79991e-06 + 8.80567e-06 8.80568e-06 8.8057e-06 8.80572e-06 8.80574e-06 8.80577e-06 8.80579e-06 8.80582e-06 8.80585e-06 8.80587e-06 8.8059e-06 8.80593e-06 + 8.80595e-06 8.80598e-06 8.806e-06 8.80603e-06 8.80605e-06 8.80607e-06 8.8061e-06 8.80612e-06 8.81193e-06 8.81194e-06 8.81195e-06 8.81197e-06 + 8.81199e-06 8.81201e-06 8.81203e-06 8.81206e-06 8.81208e-06 8.8121e-06 8.81213e-06 8.81215e-06 8.81218e-06 8.8122e-06 8.81222e-06 8.81224e-06 + 8.81227e-06 8.81229e-06 8.81231e-06 8.81233e-06 8.81819e-06 8.81819e-06 8.8182e-06 8.81822e-06 8.81823e-06 8.81825e-06 8.81827e-06 8.81829e-06 + 8.81831e-06 8.81833e-06 8.81836e-06 8.81838e-06 8.8184e-06 8.81842e-06 8.81844e-06 8.81846e-06 8.81848e-06 8.8185e-06 8.81853e-06 8.81855e-06 + 8.82444e-06 8.82444e-06 8.82445e-06 8.82446e-06 8.82448e-06 8.82449e-06 8.82451e-06 8.82453e-06 8.82454e-06 8.82456e-06 8.82458e-06 8.8246e-06 + 8.82462e-06 8.82464e-06 8.82466e-06 8.82468e-06 8.8247e-06 8.82472e-06 8.82474e-06 8.82476e-06 8.83069e-06 8.83069e-06 8.8307e-06 8.8307e-06 + 8.83072e-06 8.83073e-06 8.83074e-06 8.83076e-06 8.83078e-06 8.83079e-06 8.83081e-06 8.83083e-06 8.83085e-06 8.83086e-06 8.83088e-06 8.8309e-06 + 8.83092e-06 8.83094e-06 8.83095e-06 8.83097e-06 8.83693e-06 8.83693e-06 8.83694e-06 8.83694e-06 8.83695e-06 8.83697e-06 8.83698e-06 8.83699e-06 + 8.83701e-06 8.83702e-06 8.83704e-06 8.83705e-06 8.83707e-06 8.83709e-06 8.8371e-06 8.83712e-06 8.83714e-06 8.83715e-06 8.83717e-06 8.83719e-06 + 8.84317e-06 8.84317e-06 8.84318e-06 8.84318e-06 8.84319e-06 8.8432e-06 8.84321e-06 8.84322e-06 8.84324e-06 8.84325e-06 8.84326e-06 8.84328e-06 + 8.84329e-06 8.84331e-06 8.84332e-06 8.84334e-06 8.84335e-06 8.84337e-06 8.84338e-06 8.8434e-06 8.84941e-06 8.84941e-06 8.84941e-06 8.84942e-06 + 8.84943e-06 8.84943e-06 8.84944e-06 8.84945e-06 8.84947e-06 8.84948e-06 8.84949e-06 8.8495e-06 8.84952e-06 8.84953e-06 8.84954e-06 8.84956e-06 + 8.84957e-06 8.84959e-06 8.8496e-06 8.84961e-06 8.85565e-06 8.85565e-06 8.85565e-06 8.85565e-06 8.85566e-06 8.85567e-06 8.85568e-06 8.85568e-06 + 8.85569e-06 8.85571e-06 8.85572e-06 8.85573e-06 8.85574e-06 8.85575e-06 8.85576e-06 8.85578e-06 8.85579e-06 8.8558e-06 8.85581e-06 8.85583e-06 + 8.86188e-06 8.86188e-06 8.86188e-06 8.86189e-06 8.86189e-06 8.8619e-06 8.86191e-06 8.86191e-06 8.86192e-06 8.86193e-06 8.86194e-06 8.86195e-06 + 8.86196e-06 8.86197e-06 8.86198e-06 8.862e-06 8.86201e-06 8.86202e-06 8.86203e-06 8.86204e-06 8.86811e-06 8.86811e-06 8.86812e-06 8.86812e-06 + 8.86812e-06 8.86813e-06 8.86814e-06 8.86814e-06 8.86815e-06 8.86816e-06 8.86817e-06 8.86818e-06 8.86819e-06 8.86819e-06 8.8682e-06 8.86821e-06 + 8.86822e-06 8.86823e-06 8.86824e-06 8.86825e-06 8.87435e-06 8.87435e-06 8.87435e-06 8.87435e-06 8.87436e-06 8.87436e-06 8.87437e-06 8.87437e-06 + 8.87438e-06 8.87438e-06 8.87439e-06 8.8744e-06 8.87441e-06 8.87442e-06 8.87442e-06 8.87443e-06 8.87444e-06 8.87445e-06 8.87446e-06 8.87447e-06 + 8.88058e-06 8.88058e-06 8.88058e-06 8.88058e-06 8.88059e-06 8.88059e-06 8.88059e-06 8.8806e-06 8.8806e-06 8.88061e-06 8.88062e-06 8.88062e-06 + 8.88063e-06 8.88064e-06 8.88064e-06 8.88065e-06 8.88066e-06 8.88067e-06 8.88067e-06 8.88068e-06 8.88681e-06 8.88681e-06 8.88681e-06 8.88681e-06 + 8.88681e-06 8.88682e-06 8.88682e-06 8.88683e-06 8.88683e-06 8.88683e-06 8.88684e-06 8.88685e-06 8.88685e-06 8.88686e-06 8.88686e-06 8.88687e-06 + 8.88688e-06 8.88688e-06 8.88689e-06 8.88689e-06 8.89304e-06 8.89304e-06 8.89304e-06 8.89304e-06 8.89304e-06 8.89305e-06 8.89305e-06 8.89305e-06 + 8.89306e-06 8.89306e-06 8.89306e-06 8.89307e-06 8.89307e-06 8.89308e-06 8.89308e-06 8.89309e-06 8.89309e-06 8.8931e-06 8.8931e-06 8.89311e-06 + 8.89927e-06 8.89927e-06 8.89927e-06 8.89927e-06 8.89927e-06 8.89927e-06 8.89928e-06 8.89928e-06 8.89928e-06 8.89928e-06 8.89929e-06 8.89929e-06 + 8.89929e-06 8.8993e-06 8.8993e-06 8.89931e-06 8.89931e-06 8.89931e-06 8.89932e-06 8.89932e-06 8.9055e-06 8.9055e-06 8.9055e-06 8.9055e-06 + 8.9055e-06 8.9055e-06 8.9055e-06 8.9055e-06 8.90551e-06 8.90551e-06 8.90551e-06 8.90551e-06 8.90552e-06 8.90552e-06 8.90552e-06 8.90552e-06 + 8.90553e-06 8.90553e-06 8.90553e-06 8.90553e-06 8.91173e-06 8.91173e-06 8.91173e-06 8.91173e-06 8.91173e-06 8.91173e-06 8.91173e-06 8.91173e-06 + 8.91173e-06 8.91173e-06 8.91173e-06 8.91174e-06 8.91174e-06 8.91174e-06 8.91174e-06 8.91174e-06 8.91174e-06 8.91174e-06 8.91175e-06 8.91175e-06 + 8.91795e-06 8.91795e-06 8.91795e-06 8.91795e-06 8.91795e-06 8.91795e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 + 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 8.91796e-06 + + + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 + + + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + + + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 1e-09 + + + 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 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 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 + 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 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 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 + 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 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 1 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 1 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 1 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 2 2 2 2 2 2 2 + + + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + + + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.131 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.182 283.133 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 285.509 283.224 283.133 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 381.451 284.744 283.181 283.131 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 386.009 293.326 283.522 283.141 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 385.657 299.742 284.093 283.173 283.132 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 385.289 309.551 285.563 283.296 + 283.138 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 384.902 321.338 288.881 283.656 283.161 283.131 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 359.133 292.951 284.221 283.214 283.135 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 295.444 284.573 283.258 283.138 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 284.415 283.262 283.14 283.131 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.22 283.139 283.131 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.135 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + 283.13 283.13 283.13 283.13 283.13 283.13 283.13 283.13 + + + + + 0 0 0 0.2 0 0 0 0.2 0 0.2 0.2 0 + 0.4 0 0 0.4 0.2 0 0.6 0 0 0.6 0.2 0 + 0.8 0 0 0.8 0.2 0 1 0 0 1 0.2 0 + 1.2 0 0 1.2 0.2 0 1.4 0 0 1.4 0.2 0 + 1.6 0 0 1.6 0.2 0 1.8 0 0 1.8 0.2 0 + 2 0 0 2 0.2 0 2.2 0 0 2.2 0.2 0 + 2.4 0 0 2.4 0.2 0 2.6 0 0 2.6 0.2 0 + 2.8 0 0 2.8 0.2 0 3 0 0 3 0.2 0 + 3.2 0 0 3.2 0.2 0 3.4 0 0 3.4 0.2 0 + 3.6 0 0 3.6 0.2 0 3.8 0 0 3.8 0.2 0 + 4 0 0 4 0.2 0 0 0.4 0 0.2 0.4 0 + 0.4 0.4 0 0.6 0.4 0 0.8 0.4 0 1 0.4 0 + 1.2 0.4 0 1.4 0.4 0 1.6 0.4 0 1.8 0.4 0 + 2 0.4 0 2.2 0.4 0 2.4 0.4 0 2.6 0.4 0 + 2.8 0.4 0 3 0.4 0 3.2 0.4 0 3.4 0.4 0 + 3.6 0.4 0 3.8 0.4 0 4 0.4 0 0 0.6 0 + 0.2 0.6 0 0.4 0.6 0 0.6 0.6 0 0.8 0.6 0 + 1 0.6 0 1.2 0.6 0 1.4 0.6 0 1.6 0.6 0 + 1.8 0.6 0 2 0.6 0 2.2 0.6 0 2.4 0.6 0 + 2.6 0.6 0 2.8 0.6 0 3 0.6 0 3.2 0.6 0 + 3.4 0.6 0 3.6 0.6 0 3.8 0.6 0 4 0.6 0 + 0 0.8 0 0.2 0.8 0 0.4 0.8 0 0.6 0.8 0 + 0.8 0.8 0 1 0.8 0 1.2 0.8 0 1.4 0.8 0 + 1.6 0.8 0 1.8 0.8 0 2 0.8 0 2.2 0.8 0 + 2.4 0.8 0 2.6 0.8 0 2.8 0.8 0 3 0.8 0 + 3.2 0.8 0 3.4 0.8 0 3.6 0.8 0 3.8 0.8 0 + 4 0.8 0 0 1 0 0.2 1 0 0.4 1 0 + 0.6 1 0 0.8 1 0 1 1 0 1.2 1 0 + 1.4 1 0 1.6 1 0 1.8 1 0 2 1 0 + 2.2 1 0 2.4 1 0 2.6 1 0 2.8 1 0 + 3 1 0 3.2 1 0 3.4 1 0 3.6 1 0 + 3.8 1 0 4 1 0 0 1.2 0 0.2 1.2 0 + 0.4 1.2 0 0.6 1.2 0 0.8 1.2 0 1 1.2 0 + 1.2 1.2 0 1.4 1.2 0 1.6 1.2 0 1.8 1.2 0 + 2 1.2 0 2.2 1.2 0 2.4 1.2 0 2.6 1.2 0 + 2.8 1.2 0 3 1.2 0 3.2 1.2 0 3.4 1.2 0 + 3.6 1.2 0 3.8 1.2 0 4 1.2 0 0 1.4 0 + 0.2 1.4 0 0.4 1.4 0 0.6 1.4 0 0.8 1.4 0 + 1 1.4 0 1.2 1.4 0 1.4 1.4 0 1.6 1.4 0 + 1.8 1.4 0 2 1.4 0 2.2 1.4 0 2.4 1.4 0 + 2.6 1.4 0 2.8 1.4 0 3 1.4 0 3.2 1.4 0 + 3.4 1.4 0 3.6 1.4 0 3.8 1.4 0 4 1.4 0 + 0 1.6 0 0.2 1.6 0 0.4 1.6 0 0.6 1.6 0 + 0.8 1.6 0 1 1.6 0 1.2 1.6 0 1.4 1.6 0 + 1.6 1.6 0 1.8 1.6 0 2 1.6 0 2.2 1.6 0 + 2.4 1.6 0 2.6 1.6 0 2.8 1.6 0 3 1.6 0 + 3.2 1.6 0 3.4 1.6 0 3.6 1.6 0 3.8 1.6 0 + 4 1.6 0 0 1.8 0 0.2 1.8 0 0.4 1.8 0 + 0.6 1.8 0 0.8 1.8 0 1 1.8 0 1.2 1.8 0 + 1.4 1.8 0 1.6 1.8 0 1.8 1.8 0 2 1.8 0 + 2.2 1.8 0 2.4 1.8 0 2.6 1.8 0 2.8 1.8 0 + 3 1.8 0 3.2 1.8 0 3.4 1.8 0 3.6 1.8 0 + 3.8 1.8 0 4 1.8 0 0 2 0 0.2 2 0 + 0.4 2 0 0.6 2 0 0.8 2 0 1 2 0 + 1.2 2 0 1.4 2 0 1.6 2 0 1.8 2 0 + 2 2 0 2.2 2 0 2.4 2 0 2.6 2 0 + 2.8 2 0 3 2 0 3.2 2 0 3.4 2 0 + 3.6 2 0 3.8 2 0 4 2 0 0 2.2 0 + 0.2 2.2 0 0.4 2.2 0 0.6 2.2 0 0.8 2.2 0 + 1 2.2 0 1.2 2.2 0 1.4 2.2 0 1.6 2.2 0 + 1.8 2.2 0 2 2.2 0 2.2 2.2 0 2.4 2.2 0 + 2.6 2.2 0 2.8 2.2 0 3 2.2 0 3.2 2.2 0 + 3.4 2.2 0 3.6 2.2 0 3.8 2.2 0 4 2.2 0 + 0 2.4 0 0.2 2.4 0 0.4 2.4 0 0.6 2.4 0 + 0.8 2.4 0 1 2.4 0 1.2 2.4 0 1.4 2.4 0 + 1.6 2.4 0 1.8 2.4 0 2 2.4 0 2.2 2.4 0 + 2.4 2.4 0 2.6 2.4 0 2.8 2.4 0 3 2.4 0 + 3.2 2.4 0 3.4 2.4 0 3.6 2.4 0 3.8 2.4 0 + 4 2.4 0 0 2.6 0 0.2 2.6 0 0.4 2.6 0 + 0.6 2.6 0 0.8 2.6 0 1 2.6 0 1.2 2.6 0 + 1.4 2.6 0 1.6 2.6 0 1.8 2.6 0 2 2.6 0 + 2.2 2.6 0 2.4 2.6 0 2.6 2.6 0 2.8 2.6 0 + 3 2.6 0 3.2 2.6 0 3.4 2.6 0 3.6 2.6 0 + 3.8 2.6 0 4 2.6 0 0 2.8 0 0.2 2.8 0 + 0.4 2.8 0 0.6 2.8 0 0.8 2.8 0 1 2.8 0 + 1.2 2.8 0 1.4 2.8 0 1.6 2.8 0 1.8 2.8 0 + 2 2.8 0 2.2 2.8 0 2.4 2.8 0 2.6 2.8 0 + 2.8 2.8 0 3 2.8 0 3.2 2.8 0 3.4 2.8 0 + 3.6 2.8 0 3.8 2.8 0 4 2.8 0 0 3 0 + 0.2 3 0 0.4 3 0 0.6 3 0 0.8 3 0 + 1 3 0 1.2 3 0 1.4 3 0 1.6 3 0 + 1.8 3 0 2 3 0 2.2 3 0 2.4 3 0 + 2.6 3 0 2.8 3 0 3 3 0 3.2 3 0 + 3.4 3 0 3.6 3 0 3.8 3 0 4 3 0 + 0 3.2 0 0.2 3.2 0 0.4 3.2 0 0.6 3.2 0 + 0.8 3.2 0 1 3.2 0 1.2 3.2 0 1.4 3.2 0 + 1.6 3.2 0 1.8 3.2 0 2 3.2 0 2.2 3.2 0 + 2.4 3.2 0 2.6 3.2 0 2.8 3.2 0 3 3.2 0 + 3.2 3.2 0 3.4 3.2 0 3.6 3.2 0 3.8 3.2 0 + 4 3.2 0 0 3.4 0 0.2 3.4 0 0.4 3.4 0 + 0.6 3.4 0 0.8 3.4 0 1 3.4 0 1.2 3.4 0 + 1.4 3.4 0 1.6 3.4 0 1.8 3.4 0 2 3.4 0 + 2.2 3.4 0 2.4 3.4 0 2.6 3.4 0 2.8 3.4 0 + 3 3.4 0 3.2 3.4 0 3.4 3.4 0 3.6 3.4 0 + 3.8 3.4 0 4 3.4 0 0 3.6 0 0.2 3.6 0 + 0.4 3.6 0 0.6 3.6 0 0.8 3.6 0 1 3.6 0 + 1.2 3.6 0 1.4 3.6 0 1.6 3.6 0 1.8 3.6 0 + 2 3.6 0 2.2 3.6 0 2.4 3.6 0 2.6 3.6 0 + 2.8 3.6 0 3 3.6 0 3.2 3.6 0 3.4 3.6 0 + 3.6 3.6 0 3.8 3.6 0 4 3.6 0 0 3.8 0 + 0.2 3.8 0 0.4 3.8 0 0.6 3.8 0 0.8 3.8 0 + 1 3.8 0 1.2 3.8 0 1.4 3.8 0 1.6 3.8 0 + 1.8 3.8 0 2 3.8 0 2.2 3.8 0 2.4 3.8 0 + 2.6 3.8 0 2.8 3.8 0 3 3.8 0 3.2 3.8 0 + 3.4 3.8 0 3.6 3.8 0 3.8 3.8 0 4 3.8 0 + 0 4 0 0.2 4 0 0.4 4 0 0.6 4 0 + 0.8 4 0 1 4 0 1.2 4 0 1.4 4 0 + 1.6 4 0 1.8 4 0 2 4 0 2.2 4 0 + 2.4 4 0 2.6 4 0 2.8 4 0 3 4 0 + 3.2 4 0 3.4 4 0 3.6 4 0 3.8 4 0 + 4 4 0 0 4.2 0 0.2 4.2 0 0.4 4.2 0 + 0.6 4.2 0 0.8 4.2 0 1 4.2 0 1.2 4.2 0 + 1.4 4.2 0 1.6 4.2 0 1.8 4.2 0 2 4.2 0 + 2.2 4.2 0 2.4 4.2 0 2.6 4.2 0 2.8 4.2 0 + 3 4.2 0 3.2 4.2 0 3.4 4.2 0 3.6 4.2 0 + 3.8 4.2 0 4 4.2 0 0 4.4 0 0.2 4.4 0 + 0.4 4.4 0 0.6 4.4 0 0.8 4.4 0 1 4.4 0 + 1.2 4.4 0 1.4 4.4 0 1.6 4.4 0 1.8 4.4 0 + 2 4.4 0 2.2 4.4 0 2.4 4.4 0 2.6 4.4 0 + 2.8 4.4 0 3 4.4 0 3.2 4.4 0 3.4 4.4 0 + 3.6 4.4 0 3.8 4.4 0 4 4.4 0 0 4.6 0 + 0.2 4.6 0 0.4 4.6 0 0.6 4.6 0 0.8 4.6 0 + 1 4.6 0 1.2 4.6 0 1.4 4.6 0 1.6 4.6 0 + 1.8 4.6 0 2 4.6 0 2.2 4.6 0 2.4 4.6 0 + 2.6 4.6 0 2.8 4.6 0 3 4.6 0 3.2 4.6 0 + 3.4 4.6 0 3.6 4.6 0 3.8 4.6 0 4 4.6 0 + 0 4.8 0 0.2 4.8 0 0.4 4.8 0 0.6 4.8 0 + 0.8 4.8 0 1 4.8 0 1.2 4.8 0 1.4 4.8 0 + 1.6 4.8 0 1.8 4.8 0 2 4.8 0 2.2 4.8 0 + 2.4 4.8 0 2.6 4.8 0 2.8 4.8 0 3 4.8 0 + 3.2 4.8 0 3.4 4.8 0 3.6 4.8 0 3.8 4.8 0 + 4 4.8 0 0 5 0 0.2 5 0 0.4 5 0 + 0.6 5 0 0.8 5 0 1 5 0 1.2 5 0 + 1.4 5 0 1.6 5 0 1.8 5 0 2 5 0 + 2.2 5 0 2.4 5 0 2.6 5 0 2.8 5 0 + 3 5 0 3.2 5 0 3.4 5 0 3.6 5 0 + 3.8 5 0 4 5 0 0 5.2 0 0.2 5.2 0 + 0.4 5.2 0 0.6 5.2 0 0.8 5.2 0 1 5.2 0 + 1.2 5.2 0 1.4 5.2 0 1.6 5.2 0 1.8 5.2 0 + 2 5.2 0 2.2 5.2 0 2.4 5.2 0 2.6 5.2 0 + 2.8 5.2 0 3 5.2 0 3.2 5.2 0 3.4 5.2 0 + 3.6 5.2 0 3.8 5.2 0 4 5.2 0 0 5.4 0 + 0.2 5.4 0 0.4 5.4 0 0.6 5.4 0 0.8 5.4 0 + 1 5.4 0 1.2 5.4 0 1.4 5.4 0 1.6 5.4 0 + 1.8 5.4 0 2 5.4 0 2.2 5.4 0 2.4 5.4 0 + 2.6 5.4 0 2.8 5.4 0 3 5.4 0 3.2 5.4 0 + 3.4 5.4 0 3.6 5.4 0 3.8 5.4 0 4 5.4 0 + 0 5.6 0 0.2 5.6 0 0.4 5.6 0 0.6 5.6 0 + 0.8 5.6 0 1 5.6 0 1.2 5.6 0 1.4 5.6 0 + 1.6 5.6 0 1.8 5.6 0 2 5.6 0 2.2 5.6 0 + 2.4 5.6 0 2.6 5.6 0 2.8 5.6 0 3 5.6 0 + 3.2 5.6 0 3.4 5.6 0 3.6 5.6 0 3.8 5.6 0 + 4 5.6 0 0 5.8 0 0.2 5.8 0 0.4 5.8 0 + 0.6 5.8 0 0.8 5.8 0 1 5.8 0 1.2 5.8 0 + 1.4 5.8 0 1.6 5.8 0 1.8 5.8 0 2 5.8 0 + 2.2 5.8 0 2.4 5.8 0 2.6 5.8 0 2.8 5.8 0 + 3 5.8 0 3.2 5.8 0 3.4 5.8 0 3.6 5.8 0 + 3.8 5.8 0 4 5.8 0 0 6 0 0.2 6 0 + 0.4 6 0 0.6 6 0 0.8 6 0 1 6 0 + 1.2 6 0 1.4 6 0 1.6 6 0 1.8 6 0 + 2 6 0 2.2 6 0 2.4 6 0 2.6 6 0 + 2.8 6 0 3 6 0 3.2 6 0 3.4 6 0 + 3.6 6 0 3.8 6 0 4 6 0 0 6.2 0 + 0.2 6.2 0 0.4 6.2 0 0.6 6.2 0 0.8 6.2 0 + 1 6.2 0 1.2 6.2 0 1.4 6.2 0 1.6 6.2 0 + 1.8 6.2 0 2 6.2 0 2.2 6.2 0 2.4 6.2 0 + 2.6 6.2 0 2.8 6.2 0 3 6.2 0 3.2 6.2 0 + 3.4 6.2 0 3.6 6.2 0 3.8 6.2 0 4 6.2 0 + 0 6.4 0 0.2 6.4 0 0.4 6.4 0 0.6 6.4 0 + 0.8 6.4 0 1 6.4 0 1.2 6.4 0 1.4 6.4 0 + 1.6 6.4 0 1.8 6.4 0 2 6.4 0 2.2 6.4 0 + 2.4 6.4 0 2.6 6.4 0 2.8 6.4 0 3 6.4 0 + 3.2 6.4 0 3.4 6.4 0 3.6 6.4 0 3.8 6.4 0 + 4 6.4 0 0 6.6 0 0.2 6.6 0 0.4 6.6 0 + 0.6 6.6 0 0.8 6.6 0 1 6.6 0 1.2 6.6 0 + 1.4 6.6 0 1.6 6.6 0 1.8 6.6 0 2 6.6 0 + 2.2 6.6 0 2.4 6.6 0 2.6 6.6 0 2.8 6.6 0 + 3 6.6 0 3.2 6.6 0 3.4 6.6 0 3.6 6.6 0 + 3.8 6.6 0 4 6.6 0 0 6.8 0 0.2 6.8 0 + 0.4 6.8 0 0.6 6.8 0 0.8 6.8 0 1 6.8 0 + 1.2 6.8 0 1.4 6.8 0 1.6 6.8 0 1.8 6.8 0 + 2 6.8 0 2.2 6.8 0 2.4 6.8 0 2.6 6.8 0 + 2.8 6.8 0 3 6.8 0 3.2 6.8 0 3.4 6.8 0 + 3.6 6.8 0 3.8 6.8 0 4 6.8 0 0 7 0 + 0.2 7 0 0.4 7 0 0.6 7 0 0.8 7 0 + 1 7 0 1.2 7 0 1.4 7 0 1.6 7 0 + 1.8 7 0 2 7 0 2.2 7 0 2.4 7 0 + 2.6 7 0 2.8 7 0 3 7 0 3.2 7 0 + 3.4 7 0 3.6 7 0 3.8 7 0 4 7 0 + 0 7.2 0 0.2 7.2 0 0.4 7.2 0 0.6 7.2 0 + 0.8 7.2 0 1 7.2 0 1.2 7.2 0 1.4 7.2 0 + 1.6 7.2 0 1.8 7.2 0 2 7.2 0 2.2 7.2 0 + 2.4 7.2 0 2.6 7.2 0 2.8 7.2 0 3 7.2 0 + 3.2 7.2 0 3.4 7.2 0 3.6 7.2 0 3.8 7.2 0 + 4 7.2 0 0 7.4 0 0.2 7.4 0 0.4 7.4 0 + 0.6 7.4 0 0.8 7.4 0 1 7.4 0 1.2 7.4 0 + 1.4 7.4 0 1.6 7.4 0 1.8 7.4 0 2 7.4 0 + 2.2 7.4 0 2.4 7.4 0 2.6 7.4 0 2.8 7.4 0 + 3 7.4 0 3.2 7.4 0 3.4 7.4 0 3.6 7.4 0 + 3.8 7.4 0 4 7.4 0 0 7.6 0 0.2 7.6 0 + 0.4 7.6 0 0.6 7.6 0 0.8 7.6 0 1 7.6 0 + 1.2 7.6 0 1.4 7.6 0 1.6 7.6 0 1.8 7.6 0 + 2 7.6 0 2.2 7.6 0 2.4 7.6 0 2.6 7.6 0 + 2.8 7.6 0 3 7.6 0 3.2 7.6 0 3.4 7.6 0 + 3.6 7.6 0 3.8 7.6 0 4 7.6 0 0 7.8 0 + 0.2 7.8 0 0.4 7.8 0 0.6 7.8 0 0.8 7.8 0 + 1 7.8 0 1.2 7.8 0 1.4 7.8 0 1.6 7.8 0 + 1.8 7.8 0 2 7.8 0 2.2 7.8 0 2.4 7.8 0 + 2.6 7.8 0 2.8 7.8 0 3 7.8 0 3.2 7.8 0 + 3.4 7.8 0 3.6 7.8 0 3.8 7.8 0 4 7.8 0 + 0 8 0 0.2 8 0 0.4 8 0 0.6 8 0 + 0.8 8 0 1 8 0 1.2 8 0 1.4 8 0 + 1.6 8 0 1.8 8 0 2 8 0 2.2 8 0 + 2.4 8 0 2.6 8 0 2.8 8 0 3 8 0 + 3.2 8 0 3.4 8 0 3.6 8 0 3.8 8 0 + 4 8 0 + + + + + 0 1 3 2 1 4 5 3 4 6 7 5 + 6 8 9 7 8 10 11 9 10 12 13 11 + 12 14 15 13 14 16 17 15 16 18 19 17 + 18 20 21 19 20 22 23 21 22 24 25 23 + 24 26 27 25 26 28 29 27 28 30 31 29 + 30 32 33 31 32 34 35 33 34 36 37 35 + 36 38 39 37 38 40 41 39 2 3 43 42 + 3 5 44 43 5 7 45 44 7 9 46 45 + 9 11 47 46 11 13 48 47 13 15 49 48 + 15 17 50 49 17 19 51 50 19 21 52 51 + 21 23 53 52 23 25 54 53 25 27 55 54 + 27 29 56 55 29 31 57 56 31 33 58 57 + 33 35 59 58 35 37 60 59 37 39 61 60 + 39 41 62 61 42 43 64 63 43 44 65 64 + 44 45 66 65 45 46 67 66 46 47 68 67 + 47 48 69 68 48 49 70 69 49 50 71 70 + 50 51 72 71 51 52 73 72 52 53 74 73 + 53 54 75 74 54 55 76 75 55 56 77 76 + 56 57 78 77 57 58 79 78 58 59 80 79 + 59 60 81 80 60 61 82 81 61 62 83 82 + 63 64 85 84 64 65 86 85 65 66 87 86 + 66 67 88 87 67 68 89 88 68 69 90 89 + 69 70 91 90 70 71 92 91 71 72 93 92 + 72 73 94 93 73 74 95 94 74 75 96 95 + 75 76 97 96 76 77 98 97 77 78 99 98 + 78 79 100 99 79 80 101 100 80 81 102 101 + 81 82 103 102 82 83 104 103 84 85 106 105 + 85 86 107 106 86 87 108 107 87 88 109 108 + 88 89 110 109 89 90 111 110 90 91 112 111 + 91 92 113 112 92 93 114 113 93 94 115 114 + 94 95 116 115 95 96 117 116 96 97 118 117 + 97 98 119 118 98 99 120 119 99 100 121 120 + 100 101 122 121 101 102 123 122 102 103 124 123 + 103 104 125 124 105 106 127 126 106 107 128 127 + 107 108 129 128 108 109 130 129 109 110 131 130 + 110 111 132 131 111 112 133 132 112 113 134 133 + 113 114 135 134 114 115 136 135 115 116 137 136 + 116 117 138 137 117 118 139 138 118 119 140 139 + 119 120 141 140 120 121 142 141 121 122 143 142 + 122 123 144 143 123 124 145 144 124 125 146 145 + 126 127 148 147 127 128 149 148 128 129 150 149 + 129 130 151 150 130 131 152 151 131 132 153 152 + 132 133 154 153 133 134 155 154 134 135 156 155 + 135 136 157 156 136 137 158 157 137 138 159 158 + 138 139 160 159 139 140 161 160 140 141 162 161 + 141 142 163 162 142 143 164 163 143 144 165 164 + 144 145 166 165 145 146 167 166 147 148 169 168 + 148 149 170 169 149 150 171 170 150 151 172 171 + 151 152 173 172 152 153 174 173 153 154 175 174 + 154 155 176 175 155 156 177 176 156 157 178 177 + 157 158 179 178 158 159 180 179 159 160 181 180 + 160 161 182 181 161 162 183 182 162 163 184 183 + 163 164 185 184 164 165 186 185 165 166 187 186 + 166 167 188 187 168 169 190 189 169 170 191 190 + 170 171 192 191 171 172 193 192 172 173 194 193 + 173 174 195 194 174 175 196 195 175 176 197 196 + 176 177 198 197 177 178 199 198 178 179 200 199 + 179 180 201 200 180 181 202 201 181 182 203 202 + 182 183 204 203 183 184 205 204 184 185 206 205 + 185 186 207 206 186 187 208 207 187 188 209 208 + 189 190 211 210 190 191 212 211 191 192 213 212 + 192 193 214 213 193 194 215 214 194 195 216 215 + 195 196 217 216 196 197 218 217 197 198 219 218 + 198 199 220 219 199 200 221 220 200 201 222 221 + 201 202 223 222 202 203 224 223 203 204 225 224 + 204 205 226 225 205 206 227 226 206 207 228 227 + 207 208 229 228 208 209 230 229 210 211 232 231 + 211 212 233 232 212 213 234 233 213 214 235 234 + 214 215 236 235 215 216 237 236 216 217 238 237 + 217 218 239 238 218 219 240 239 219 220 241 240 + 220 221 242 241 221 222 243 242 222 223 244 243 + 223 224 245 244 224 225 246 245 225 226 247 246 + 226 227 248 247 227 228 249 248 228 229 250 249 + 229 230 251 250 231 232 253 252 232 233 254 253 + 233 234 255 254 234 235 256 255 235 236 257 256 + 236 237 258 257 237 238 259 258 238 239 260 259 + 239 240 261 260 240 241 262 261 241 242 263 262 + 242 243 264 263 243 244 265 264 244 245 266 265 + 245 246 267 266 246 247 268 267 247 248 269 268 + 248 249 270 269 249 250 271 270 250 251 272 271 + 252 253 274 273 253 254 275 274 254 255 276 275 + 255 256 277 276 256 257 278 277 257 258 279 278 + 258 259 280 279 259 260 281 280 260 261 282 281 + 261 262 283 282 262 263 284 283 263 264 285 284 + 264 265 286 285 265 266 287 286 266 267 288 287 + 267 268 289 288 268 269 290 289 269 270 291 290 + 270 271 292 291 271 272 293 292 273 274 295 294 + 274 275 296 295 275 276 297 296 276 277 298 297 + 277 278 299 298 278 279 300 299 279 280 301 300 + 280 281 302 301 281 282 303 302 282 283 304 303 + 283 284 305 304 284 285 306 305 285 286 307 306 + 286 287 308 307 287 288 309 308 288 289 310 309 + 289 290 311 310 290 291 312 311 291 292 313 312 + 292 293 314 313 294 295 316 315 295 296 317 316 + 296 297 318 317 297 298 319 318 298 299 320 319 + 299 300 321 320 300 301 322 321 301 302 323 322 + 302 303 324 323 303 304 325 324 304 305 326 325 + 305 306 327 326 306 307 328 327 307 308 329 328 + 308 309 330 329 309 310 331 330 310 311 332 331 + 311 312 333 332 312 313 334 333 313 314 335 334 + 315 316 337 336 316 317 338 337 317 318 339 338 + 318 319 340 339 319 320 341 340 320 321 342 341 + 321 322 343 342 322 323 344 343 323 324 345 344 + 324 325 346 345 325 326 347 346 326 327 348 347 + 327 328 349 348 328 329 350 349 329 330 351 350 + 330 331 352 351 331 332 353 352 332 333 354 353 + 333 334 355 354 334 335 356 355 336 337 358 357 + 337 338 359 358 338 339 360 359 339 340 361 360 + 340 341 362 361 341 342 363 362 342 343 364 363 + 343 344 365 364 344 345 366 365 345 346 367 366 + 346 347 368 367 347 348 369 368 348 349 370 369 + 349 350 371 370 350 351 372 371 351 352 373 372 + 352 353 374 373 353 354 375 374 354 355 376 375 + 355 356 377 376 357 358 379 378 358 359 380 379 + 359 360 381 380 360 361 382 381 361 362 383 382 + 362 363 384 383 363 364 385 384 364 365 386 385 + 365 366 387 386 366 367 388 387 367 368 389 388 + 368 369 390 389 369 370 391 390 370 371 392 391 + 371 372 393 392 372 373 394 393 373 374 395 394 + 374 375 396 395 375 376 397 396 376 377 398 397 + 378 379 400 399 379 380 401 400 380 381 402 401 + 381 382 403 402 382 383 404 403 383 384 405 404 + 384 385 406 405 385 386 407 406 386 387 408 407 + 387 388 409 408 388 389 410 409 389 390 411 410 + 390 391 412 411 391 392 413 412 392 393 414 413 + 393 394 415 414 394 395 416 415 395 396 417 416 + 396 397 418 417 397 398 419 418 399 400 421 420 + 400 401 422 421 401 402 423 422 402 403 424 423 + 403 404 425 424 404 405 426 425 405 406 427 426 + 406 407 428 427 407 408 429 428 408 409 430 429 + 409 410 431 430 410 411 432 431 411 412 433 432 + 412 413 434 433 413 414 435 434 414 415 436 435 + 415 416 437 436 416 417 438 437 417 418 439 438 + 418 419 440 439 420 421 442 441 421 422 443 442 + 422 423 444 443 423 424 445 444 424 425 446 445 + 425 426 447 446 426 427 448 447 427 428 449 448 + 428 429 450 449 429 430 451 450 430 431 452 451 + 431 432 453 452 432 433 454 453 433 434 455 454 + 434 435 456 455 435 436 457 456 436 437 458 457 + 437 438 459 458 438 439 460 459 439 440 461 460 + 441 442 463 462 442 443 464 463 443 444 465 464 + 444 445 466 465 445 446 467 466 446 447 468 467 + 447 448 469 468 448 449 470 469 449 450 471 470 + 450 451 472 471 451 452 473 472 452 453 474 473 + 453 454 475 474 454 455 476 475 455 456 477 476 + 456 457 478 477 457 458 479 478 458 459 480 479 + 459 460 481 480 460 461 482 481 462 463 484 483 + 463 464 485 484 464 465 486 485 465 466 487 486 + 466 467 488 487 467 468 489 488 468 469 490 489 + 469 470 491 490 470 471 492 491 471 472 493 492 + 472 473 494 493 473 474 495 494 474 475 496 495 + 475 476 497 496 476 477 498 497 477 478 499 498 + 478 479 500 499 479 480 501 500 480 481 502 501 + 481 482 503 502 483 484 505 504 484 485 506 505 + 485 486 507 506 486 487 508 507 487 488 509 508 + 488 489 510 509 489 490 511 510 490 491 512 511 + 491 492 513 512 492 493 514 513 493 494 515 514 + 494 495 516 515 495 496 517 516 496 497 518 517 + 497 498 519 518 498 499 520 519 499 500 521 520 + 500 501 522 521 501 502 523 522 502 503 524 523 + 504 505 526 525 505 506 527 526 506 507 528 527 + 507 508 529 528 508 509 530 529 509 510 531 530 + 510 511 532 531 511 512 533 532 512 513 534 533 + 513 514 535 534 514 515 536 535 515 516 537 536 + 516 517 538 537 517 518 539 538 518 519 540 539 + 519 520 541 540 520 521 542 541 521 522 543 542 + 522 523 544 543 523 524 545 544 525 526 547 546 + 526 527 548 547 527 528 549 548 528 529 550 549 + 529 530 551 550 530 531 552 551 531 532 553 552 + 532 533 554 553 533 534 555 554 534 535 556 555 + 535 536 557 556 536 537 558 557 537 538 559 558 + 538 539 560 559 539 540 561 560 540 541 562 561 + 541 542 563 562 542 543 564 563 543 544 565 564 + 544 545 566 565 546 547 568 567 547 548 569 568 + 548 549 570 569 549 550 571 570 550 551 572 571 + 551 552 573 572 552 553 574 573 553 554 575 574 + 554 555 576 575 555 556 577 576 556 557 578 577 + 557 558 579 578 558 559 580 579 559 560 581 580 + 560 561 582 581 561 562 583 582 562 563 584 583 + 563 564 585 584 564 565 586 585 565 566 587 586 + 567 568 589 588 568 569 590 589 569 570 591 590 + 570 571 592 591 571 572 593 592 572 573 594 593 + 573 574 595 594 574 575 596 595 575 576 597 596 + 576 577 598 597 577 578 599 598 578 579 600 599 + 579 580 601 600 580 581 602 601 581 582 603 602 + 582 583 604 603 583 584 605 604 584 585 606 605 + 585 586 607 606 586 587 608 607 588 589 610 609 + 589 590 611 610 590 591 612 611 591 592 613 612 + 592 593 614 613 593 594 615 614 594 595 616 615 + 595 596 617 616 596 597 618 617 597 598 619 618 + 598 599 620 619 599 600 621 620 600 601 622 621 + 601 602 623 622 602 603 624 623 603 604 625 624 + 604 605 626 625 605 606 627 626 606 607 628 627 + 607 608 629 628 609 610 631 630 610 611 632 631 + 611 612 633 632 612 613 634 633 613 614 635 634 + 614 615 636 635 615 616 637 636 616 617 638 637 + 617 618 639 638 618 619 640 639 619 620 641 640 + 620 621 642 641 621 622 643 642 622 623 644 643 + 623 624 645 644 624 625 646 645 625 626 647 646 + 626 627 648 647 627 628 649 648 628 629 650 649 + 630 631 652 651 631 632 653 652 632 633 654 653 + 633 634 655 654 634 635 656 655 635 636 657 656 + 636 637 658 657 637 638 659 658 638 639 660 659 + 639 640 661 660 640 641 662 661 641 642 663 662 + 642 643 664 663 643 644 665 664 644 645 666 665 + 645 646 667 666 646 647 668 667 647 648 669 668 + 648 649 670 669 649 650 671 670 651 652 673 672 + 652 653 674 673 653 654 675 674 654 655 676 675 + 655 656 677 676 656 657 678 677 657 658 679 678 + 658 659 680 679 659 660 681 680 660 661 682 681 + 661 662 683 682 662 663 684 683 663 664 685 684 + 664 665 686 685 665 666 687 686 666 667 688 687 + 667 668 689 688 668 669 690 689 669 670 691 690 + 670 671 692 691 672 673 694 693 673 674 695 694 + 674 675 696 695 675 676 697 696 676 677 698 697 + 677 678 699 698 678 679 700 699 679 680 701 700 + 680 681 702 701 681 682 703 702 682 683 704 703 + 683 684 705 704 684 685 706 705 685 686 707 706 + 686 687 708 707 687 688 709 708 688 689 710 709 + 689 690 711 710 690 691 712 711 691 692 713 712 + 693 694 715 714 694 695 716 715 695 696 717 716 + 696 697 718 717 697 698 719 718 698 699 720 719 + 699 700 721 720 700 701 722 721 701 702 723 722 + 702 703 724 723 703 704 725 724 704 705 726 725 + 705 706 727 726 706 707 728 727 707 708 729 728 + 708 709 730 729 709 710 731 730 710 711 732 731 + 711 712 733 732 712 713 734 733 714 715 736 735 + 715 716 737 736 716 717 738 737 717 718 739 738 + 718 719 740 739 719 720 741 740 720 721 742 741 + 721 722 743 742 722 723 744 743 723 724 745 744 + 724 725 746 745 725 726 747 746 726 727 748 747 + 727 728 749 748 728 729 750 749 729 730 751 750 + 730 731 752 751 731 732 753 752 732 733 754 753 + 733 734 755 754 735 736 757 756 736 737 758 757 + 737 738 759 758 738 739 760 759 739 740 761 760 + 740 741 762 761 741 742 763 762 742 743 764 763 + 743 744 765 764 744 745 766 765 745 746 767 766 + 746 747 768 767 747 748 769 768 748 749 770 769 + 749 750 771 770 750 751 772 771 751 752 773 772 + 752 753 774 773 753 754 775 774 754 755 776 775 + 756 757 778 777 757 758 779 778 758 759 780 779 + 759 760 781 780 760 761 782 781 761 762 783 782 + 762 763 784 783 763 764 785 784 764 765 786 785 + 765 766 787 786 766 767 788 787 767 768 789 788 + 768 769 790 789 769 770 791 790 770 771 792 791 + 771 772 793 792 772 773 794 793 773 774 795 794 + 774 775 796 795 775 776 797 796 777 778 799 798 + 778 779 800 799 779 780 801 800 780 781 802 801 + 781 782 803 802 782 783 804 803 783 784 805 804 + 784 785 806 805 785 786 807 806 786 787 808 807 + 787 788 809 808 788 789 810 809 789 790 811 810 + 790 791 812 811 791 792 813 812 792 793 814 813 + 793 794 815 814 794 795 816 815 795 796 817 816 + 796 797 818 817 798 799 820 819 799 800 821 820 + 800 801 822 821 801 802 823 822 802 803 824 823 + 803 804 825 824 804 805 826 825 805 806 827 826 + 806 807 828 827 807 808 829 828 808 809 830 829 + 809 810 831 830 810 811 832 831 811 812 833 832 + 812 813 834 833 813 814 835 834 814 815 836 835 + 815 816 837 836 816 817 838 837 817 818 839 838 + 819 820 841 840 820 821 842 841 821 822 843 842 + 822 823 844 843 823 824 845 844 824 825 846 845 + 825 826 847 846 826 827 848 847 827 828 849 848 + 828 829 850 849 829 830 851 850 830 831 852 851 + 831 832 853 852 832 833 854 853 833 834 855 854 + 834 835 856 855 835 836 857 856 836 837 858 857 + 837 838 859 858 838 839 860 859 + + + 4 8 12 16 20 24 28 32 36 40 44 48 + 52 56 60 64 68 72 76 80 84 88 92 96 + 100 104 108 112 116 120 124 128 132 136 140 144 + 148 152 156 160 164 168 172 176 180 184 188 192 + 196 200 204 208 212 216 220 224 228 232 236 240 + 244 248 252 256 260 264 268 272 276 280 284 288 + 292 296 300 304 308 312 316 320 324 328 332 336 + 340 344 348 352 356 360 364 368 372 376 380 384 + 388 392 396 400 404 408 412 416 420 424 428 432 + 436 440 444 448 452 456 460 464 468 472 476 480 + 484 488 492 496 500 504 508 512 516 520 524 528 + 532 536 540 544 548 552 556 560 564 568 572 576 + 580 584 588 592 596 600 604 608 612 616 620 624 + 628 632 636 640 644 648 652 656 660 664 668 672 + 676 680 684 688 692 696 700 704 708 712 716 720 + 724 728 732 736 740 744 748 752 756 760 764 768 + 772 776 780 784 788 792 796 800 804 808 812 816 + 820 824 828 832 836 840 844 848 852 856 860 864 + 868 872 876 880 884 888 892 896 900 904 908 912 + 916 920 924 928 932 936 940 944 948 952 956 960 + 964 968 972 976 980 984 988 992 996 1000 1004 1008 + 1012 1016 1020 1024 1028 1032 1036 1040 1044 1048 1052 1056 + 1060 1064 1068 1072 1076 1080 1084 1088 1092 1096 1100 1104 + 1108 1112 1116 1120 1124 1128 1132 1136 1140 1144 1148 1152 + 1156 1160 1164 1168 1172 1176 1180 1184 1188 1192 1196 1200 + 1204 1208 1212 1216 1220 1224 1228 1232 1236 1240 1244 1248 + 1252 1256 1260 1264 1268 1272 1276 1280 1284 1288 1292 1296 + 1300 1304 1308 1312 1316 1320 1324 1328 1332 1336 1340 1344 + 1348 1352 1356 1360 1364 1368 1372 1376 1380 1384 1388 1392 + 1396 1400 1404 1408 1412 1416 1420 1424 1428 1432 1436 1440 + 1444 1448 1452 1456 1460 1464 1468 1472 1476 1480 1484 1488 + 1492 1496 1500 1504 1508 1512 1516 1520 1524 1528 1532 1536 + 1540 1544 1548 1552 1556 1560 1564 1568 1572 1576 1580 1584 + 1588 1592 1596 1600 1604 1608 1612 1616 1620 1624 1628 1632 + 1636 1640 1644 1648 1652 1656 1660 1664 1668 1672 1676 1680 + 1684 1688 1692 1696 1700 1704 1708 1712 1716 1720 1724 1728 + 1732 1736 1740 1744 1748 1752 1756 1760 1764 1768 1772 1776 + 1780 1784 1788 1792 1796 1800 1804 1808 1812 1816 1820 1824 + 1828 1832 1836 1840 1844 1848 1852 1856 1860 1864 1868 1872 + 1876 1880 1884 1888 1892 1896 1900 1904 1908 1912 1916 1920 + 1924 1928 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 + 1972 1976 1980 1984 1988 1992 1996 2000 2004 2008 2012 2016 + 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 + 2068 2072 2076 2080 2084 2088 2092 2096 2100 2104 2108 2112 + 2116 2120 2124 2128 2132 2136 2140 2144 2148 2152 2156 2160 + 2164 2168 2172 2176 2180 2184 2188 2192 2196 2200 2204 2208 + 2212 2216 2220 2224 2228 2232 2236 2240 2244 2248 2252 2256 + 2260 2264 2268 2272 2276 2280 2284 2288 2292 2296 2300 2304 + 2308 2312 2316 2320 2324 2328 2332 2336 2340 2344 2348 2352 + 2356 2360 2364 2368 2372 2376 2380 2384 2388 2392 2396 2400 + 2404 2408 2412 2416 2420 2424 2428 2432 2436 2440 2444 2448 + 2452 2456 2460 2464 2468 2472 2476 2480 2484 2488 2492 2496 + 2500 2504 2508 2512 2516 2520 2524 2528 2532 2536 2540 2544 + 2548 2552 2556 2560 2564 2568 2572 2576 2580 2584 2588 2592 + 2596 2600 2604 2608 2612 2616 2620 2624 2628 2632 2636 2640 + 2644 2648 2652 2656 2660 2664 2668 2672 2676 2680 2684 2688 + 2692 2696 2700 2704 2708 2712 2716 2720 2724 2728 2732 2736 + 2740 2744 2748 2752 2756 2760 2764 2768 2772 2776 2780 2784 + 2788 2792 2796 2800 2804 2808 2812 2816 2820 2824 2828 2832 + 2836 2840 2844 2848 2852 2856 2860 2864 2868 2872 2876 2880 + 2884 2888 2892 2896 2900 2904 2908 2912 2916 2920 2924 2928 + 2932 2936 2940 2944 2948 2952 2956 2960 2964 2968 2972 2976 + 2980 2984 2988 2992 2996 3000 3004 3008 3012 3016 3020 3024 + 3028 3032 3036 3040 3044 3048 3052 3056 3060 3064 3068 3072 + 3076 3080 3084 3088 3092 3096 3100 3104 3108 3112 3116 3120 + 3124 3128 3132 3136 3140 3144 3148 3152 3156 3160 3164 3168 + 3172 3176 3180 3184 3188 3192 3196 3200 + + + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 + + + + +