diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3edb0b5 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,34 @@ +# Include any files or directories that you don't want to be copied to your +# container here (e.g., local build artifacts, temporary files, etc.). +# +# For more help, visit the .dockerignore file reference guide at +# https://docs.docker.com/engine/reference/builder/#dockerignore-file + +**/.DS_Store +**/__pycache__ +**/.venv +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/bin +**/charts +**/docker-compose* +**/compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7b53c99 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,56 @@ +# syntax=docker/dockerfile:1 + +# Comments are provided throughout this file to help you get started. +# If you need more help, visit the Dockerfile reference guide at +# https://docs.docker.com/engine/reference/builder/ + +ARG PYTHON_VERSION=3.10.14 +FROM python:${PYTHON_VERSION}-bullseye as base + +# Prevents Python from writing pyc files. +ENV PYTHONDONTWRITEBYTECODE=1 + +# Keeps Python from buffering stdout and stderr to avoid situations where +# the application crashes without emitting any logs due to buffering. +ENV PYTHONUNBUFFERED=1 + +WORKDIR /app + +# Create a non-privileged user that the app will run under. +# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user +ARG UID=10001 +RUN adduser \ + --disabled-password \ + --gecos "" \ + --home "/nonexistent" \ + --shell "/sbin/nologin" \ + --no-create-home \ + --uid "${UID}" \ + appuser + +RUN apt-get -y update +RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC \ + apt-get -y dist-upgrade + +RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC \ + apt-get -y install libeccodes-dev libhdf5-serial-dev pkg-config cmake g++-10 gcc-10 + +# Download dependencies as a separate step to take advantage of Docker's caching. +# Leverage a cache mount to /root/.cache/pip to speed up subsequent builds. +# Leverage a bind mount to requirements.txt to avoid having to copy them into +# into this layer. +RUN --mount=type=cache,target=/root/.cache/pip \ + --mount=type=bind,source=requirements.txt,target=requirements.txt \ + python -m pip install -r requirements.txt + +# Switch to the non-privileged user to run the application. +USER appuser + +# Copy the source code into the container. +COPY . . + +# Expose the port that the application listens on. +EXPOSE 8890 + +# Run the application. +CMD python -m example_forecast diff --git a/README.md b/README.md index cbe5d3b..21aedb5 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,17 @@ the composable model framework. Example PV model construction is shown below. The API for fit, predict, and metrics is reduced to specifying a start and end times for a given location. The model must construct feature data using column transforms. Having done so, forecasting as a service become trivial. +## Getting started + +Users can verify the code works with the example_forecast.py script by running `docker compose up --build` +The log output from the container will include feature and weather data as well as predicted values. The script +takes several minutes to run because the weather data is large. + +The dockerfile included in the project will run the example_forecast.py which demonstrates both the machine +learning model for AMI meter forecasting and the physics based PV model using PySam. Users can then choose between +their local working environment and containerized environment to extend and experiment with the time series models +library. + ## Installation This library is designed for use by technical engineers and data scientists. It takes advantage of the Python @@ -70,8 +81,6 @@ jupyter notebook --NotebookApp.ip=0.0.0.0 This will print a URL, which you can open in your browser. Then open the example notebook and execute the cells in the demonstration to get acquainted with the functionality. - - ## Usage Models can be composed of mixins for various estimators and forecast processes. These composable pieces can be put together in different ways to solve many problems. The RegularTimeSeriesModel is the @@ -159,11 +168,18 @@ using machine learning models like xgboost too. ```python pv_config = dict( - site_config_mapping="RESOURCE_SELF", - site_meter_mapping=None, - site_latlong_mapping="RESOURCE_SELF", - source_mode="12_hour_horizon", - lags=None, + lags=None, + site_config_mapping={ + "capybara": ["/app/pv_site.json"], + }, + site_latlong_mapping={ + "capybara": dict( + latitude=40.0, + longitude=-100.0, + ), + }, + site_meter_mapping=None, + source_mode="12_hour_horizon", ) class PVForecastModel( @@ -186,7 +202,6 @@ Engineers and data scientists commonly use an interactive web-based development An [example notebook](https://github.com/SETO2243/forecasting/blob/main/example.ipynb) is provided in this GitHub repository which demonstrates the core capabilities of the time series models library developed for the SETO project. - ## Input Data diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..3cd3898 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,16 @@ +# Comments are provided throughout this file to help you get started. +# If you need more help, visit the Docker compose reference guide at +# https://docs.docker.com/compose/compose-file/ + +# Here the instructions define your application as a service called "server". +# This service is built from the Dockerfile in the current directory. +# You can add other services your application may depend on here, such as a +# database or a cache. For examples, see the Awesome Compose repository: +# https://github.com/docker/awesome-compose +services: + server: + build: + context: . + ports: + - 8890:8890 + diff --git a/example_forecast.py b/example_forecast.py new file mode 100644 index 0000000..ea55b75 --- /dev/null +++ b/example_forecast.py @@ -0,0 +1,90 @@ +import logging +import numpy as np + +from time_series_models.time_series_models import RegularTimeSeriesModel +from time_series_models.processes import AmiHourlyForecast, PVForecast +from time_series_models.estimators import ( + XgbRegressor, + IdentityRegressor, +) + +logger = logging.getLogger(__name__) + + +def run_forecast_example(): + + logger.info( + "Starting forecast example for AMI meter forecast with XgBoost estimator!", + ) + + class XgbModel(AmiHourlyForecast, XgbRegressor, RegularTimeSeriesModel): + pass + + config = dict( + lags=np.array([24, 48, 168], dtype="timedelta64[h]"), + day_of_week=True, + harmonics=np.array([24, 168, 365 * 24], dtype="timedelta64[h]"), + met_vars=["t", "r2"], + met_horizon=12, + mapping=dict(p2ulv18716=dict(latitude=35.0, longitude=-75.0)), + ) + instance = XgbModel(**config) + + instance.fit("2021-01-15", "2021-01-31", "p2ulv18716") + + logger.info("Trained instance: %s", instance.model) + + features_df = instance.features_dataframe("2021-02-01", "2021-02-05", "p2ulv18716") + logger.info("Features data: %s", features_df) + + predicted_df = instance.predict_dataframe( + "2021-01-01", "2021-02-05", "p2ulv18716", range=True + ) + + logger.info("Predicted: %s", predicted_df) + + logger.info( + "Starting forecast example for PV physical forecast!", + ) + + pv_config = dict( + lags=None, + site_config_mapping={ + "capybara": ["/app/pv_site.json"], + }, + site_latlong_mapping={ + "capybara": dict( + latitude=40.0, + longitude=-100.0, + ), + }, + site_meter_mapping=None, + source_mode="12_hour_horizon", + ) + + class PVForecastModel( + PVForecast, + IdentityRegressor, + RegularTimeSeriesModel, + ): + pass + + pv_instance = PVForecastModel(**pv_config) + pv_instance.model + + pv_instance.fit("2021-01-15", "2021-01-16", "capybara") + + pv_hrrr_df = pv_instance.hrrr_fetcher.source_loader( + np.datetime64("2021-02-01"), np.datetime64("2021-02-05"), "capybara" + ) + logger.info("PV HRRR Data: %s", pv_hrrr_df) + + pv_df = pv_instance.predict_dataframe("2021-02-01", "2021-02-05", "capybara") + logger.info("pv predictions: %s", pv_df) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + run_forecast_example() + logging.info("All done!") + exit(0) diff --git a/pv_site.json b/pv_site.json new file mode 100644 index 0000000..5ff7e14 --- /dev/null +++ b/pv_site.json @@ -0,0 +1,9816 @@ +{ + "__camus_json_type__": "pv_physical_model.PySamPhysicalModel", + "__camus_json_data__": { + "class": "PvSamV1PhysicalModel", + "name": "camus", + "exported": { + "SolarResource": { + "albedo": [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + "albedo_spatial": [ + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2] + ], + "irrad_mode": 0, + "sky_model": 2, + "use_spatial_albedos": 0, + "use_wf_albedo": 1.0 + }, + "Losses": { + "acwiring_loss": 1, + "calculate_bifacial_electrical_mismatch": 1, + "calculate_rack_shading": 0, + "dcoptimizer_loss": 0, + "en_snow_model": 0, + "subarray1_dcwiring_loss": 2, + "subarray1_diodeconn_loss": 0.5, + "subarray1_electrical_mismatch": 0, + "subarray1_mismatch_loss": 2, + "subarray1_nameplate_loss": 0, + "subarray1_rack_shading": 0, + "subarray1_rear_soiling_loss": 0, + "subarray1_soiling": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "subarray1_tracking_loss": 0, + "subarray2_dcwiring_loss": 2, + "subarray2_diodeconn_loss": 0.5, + "subarray2_electrical_mismatch": 0, + "subarray2_mismatch_loss": 2, + "subarray2_nameplate_loss": 0, + "subarray2_rack_shading": 0, + "subarray2_rear_soiling_loss": 0, + "subarray2_soiling": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "subarray2_tracking_loss": 0, + "subarray3_dcwiring_loss": 2, + "subarray3_diodeconn_loss": 0.5, + "subarray3_electrical_mismatch": 0, + "subarray3_mismatch_loss": 2, + "subarray3_nameplate_loss": 0, + "subarray3_rack_shading": 0, + "subarray3_rear_soiling_loss": 0, + "subarray3_soiling": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "subarray3_tracking_loss": 0, + "subarray4_dcwiring_loss": 2, + "subarray4_diodeconn_loss": 0.5, + "subarray4_electrical_mismatch": 0, + "subarray4_mismatch_loss": 2, + "subarray4_nameplate_loss": 0, + "subarray4_rack_shading": 0, + "subarray4_rear_soiling_loss": 0, + "subarray4_soiling": [ + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + "subarray4_tracking_loss": 0, + "transformer_load_loss": 0, + "transformer_no_load_loss": 0, + "transmission_loss": 0 + }, + "Lifetime": {}, + "SystemDesign": { + "enable_mismatch_vmax_calc": 0, + "inverter_count": 3, + "subarray1_azimuth": 0, + "subarray1_backtrack": 0, + "subarray1_gcr": 0.3, + "subarray1_modules_per_string": 18, + "subarray1_monthly_tilt": [ + 40, + 40, + 40, + 20, + 20, + 20, + 20, + 20, + 20, + 40, + 40, + 40 + ], + "subarray1_mppt_input": 1, + "subarray1_nstrings": 320, + "subarray1_rotlim": 45, + "subarray1_slope_azm": 0, + "subarray1_slope_tilt": 0, + "subarray1_tilt": 0, + "subarray1_tilt_eq_lat": 0, + "subarray1_track_mode": 1, + "subarray2_azimuth": 180, + "subarray2_backtrack": 0, + "subarray2_enable": 0, + "subarray2_gcr": 0.3, + "subarray2_modules_per_string": 0, + "subarray2_monthly_tilt": [ + 40, + 40, + 40, + 20, + 20, + 20, + 20, + 20, + 20, + 40, + 40, + 40 + ], + "subarray2_mppt_input": 1, + "subarray2_nstrings": 0, + "subarray2_rotlim": 45, + "subarray2_slope_azm": 0, + "subarray2_slope_tilt": 0, + "subarray2_tilt": 20, + "subarray2_tilt_eq_lat": 0, + "subarray2_track_mode": 0, + "subarray3_azimuth": 180, + "subarray3_backtrack": 0, + "subarray3_enable": 0, + "subarray3_gcr": 0.3, + "subarray3_modules_per_string": 0, + "subarray3_monthly_tilt": [ + 40, + 40, + 40, + 20, + 20, + 20, + 20, + 20, + 20, + 40, + 40, + 40 + ], + "subarray3_mppt_input": 1, + "subarray3_nstrings": 0, + "subarray3_rotlim": 45, + "subarray3_slope_azm": 0, + "subarray3_slope_tilt": 0, + "subarray3_tilt": 20, + "subarray3_tilt_eq_lat": 0, + "subarray3_track_mode": 0, + "subarray4_azimuth": 180, + "subarray4_backtrack": 0, + "subarray4_enable": 0, + "subarray4_gcr": 0.3, + "subarray4_modules_per_string": 0, + "subarray4_monthly_tilt": [ + 40, + 40, + 40, + 20, + 20, + 20, + 20, + 20, + 20, + 40, + 40, + 40 + ], + "subarray4_mppt_input": 1, + "subarray4_nstrings": 0, + "subarray4_rotlim": 45, + "subarray4_slope_azm": 0, + "subarray4_slope_tilt": 0, + "subarray4_tilt": 20, + "subarray4_tilt_eq_lat": 0, + "subarray4_track_mode": 0, + "system_capacity": 1600.0 + }, + "Shading": { + "subarray1_shade_mode": 0, + "subarray2_shade_mode": 0, + "subarray3_shade_mode": 0, + "subarray4_shade_mode": 0 + }, + "Layout": { + "module_aspect_ratio": 1.7, + "subarray1_mod_orient": 0, + "subarray1_nmodx": 7, + "subarray1_nmody": 2, + "subarray2_mod_orient": 0, + "subarray2_nmodx": 9, + "subarray2_nmody": 2, + "subarray3_mod_orient": 0, + "subarray3_nmodx": 9, + "subarray3_nmody": 2, + "subarray4_mod_orient": 0, + "subarray4_nmodx": 9, + "subarray4_nmody": 2 + }, + "Module": { + "module_model": 0 + }, + "SimpleEfficiencyModuleModel": { + "spe_a": -3.56, + "spe_area": 1.95622, + "spe_b": -0.075, + "spe_bifacial_ground_clearance_height": 1, + "spe_bifacial_transmission_factor": 0.013, + "spe_bifaciality": 0.65, + "spe_dT": 3, + "spe_eff0": 15.6, + "spe_eff1": 15.6, + "spe_eff2": 15.6, + "spe_eff3": 15.6, + "spe_eff4": 15.6, + "spe_fd": 1, + "spe_is_bifacial": 0, + "spe_module_structure": 0, + "spe_rad0": 200, + "spe_rad1": 400, + "spe_rad2": 600, + "spe_rad3": 800, + "spe_rad4": 1000, + "spe_reference": 4, + "spe_temp_coeff": -0.41, + "spe_vmp": 36.8, + "spe_voc": 45 + }, + "CECPerformanceModelWithModuleDatabase": { + "cec_a_ref": 2.42033, + "cec_adjust": 4.86979, + "cec_alpha_sc": 0.002492, + "cec_area": 1.631, + "cec_array_cols": 10, + "cec_array_rows": 1, + "cec_backside_temp": 20, + "cec_beta_oc": -0.16975, + "cec_bifacial_ground_clearance_height": 1, + "cec_bifacial_transmission_factor": 0.013, + "cec_bifaciality": 0.65, + "cec_gamma_r": -0.31, + "cec_gap_spacing": 0.05, + "cec_heat_transfer": 0, + "cec_height": 0, + "cec_i_l_ref": 6.23681, + "cec_i_mp_ref": 5.85, + "cec_i_o_ref": 3.98831e-12, + "cec_i_sc_ref": 6.23, + "cec_is_bifacial": 0, + "cec_module_length": 1.631, + "cec_module_width": 1, + "cec_mounting_config": 0, + "cec_mounting_orientation": 0, + "cec_n_s": 96, + "cec_r_s": 0.499388, + "cec_r_sh_ref": 457.186, + "cec_standoff": 6, + "cec_t_noct": 46.4, + "cec_temp_corr_mode": 0, + "cec_transient_thermal_model_unit_mass": 11.0919, + "cec_v_mp_ref": 57.3, + "cec_v_oc_ref": 67.9 + }, + "CECPerformanceModelWithUserEnteredSpecifications": { + "sixpar_aisc": 0.004, + "sixpar_area": 1.956, + "sixpar_bifacial_ground_clearance_height": 1, + "sixpar_bifacial_transmission_factor": 0.013, + "sixpar_bifaciality": 0.65, + "sixpar_bvoc": -0.11, + "sixpar_celltech": 1, + "sixpar_gpmp": -0.41, + "sixpar_imp": 6, + "sixpar_is_bifacial": 0, + "sixpar_isc": 7, + "sixpar_mounting": 0, + "sixpar_nser": 60, + "sixpar_standoff": 6, + "sixpar_tnoct": 46, + "sixpar_transient_thermal_model_unit_mass": 11.0919, + "sixpar_vmp": 30, + "sixpar_voc": 37 + }, + "SandiaPVArrayPerformanceModelWithModuleDatabase": { + "snl_a": -3.5578, + "snl_a0": 0.9428, + "snl_a1": 0.0536, + "snl_a2": -0.01281, + "snl_a3": 0.001826, + "snl_a4": -0.0001048, + "snl_aimp": -0.0003, + "snl_aisc": 0.0004, + "snl_area": 1.65, + "snl_b": -0.1766, + "snl_b0": 1, + "snl_b1": -0.007861, + "snl_b2": 0.0009058, + "snl_b3": -3.496e-05, + "snl_b4": 5.473e-07, + "snl_b5": -3.058e-09, + "snl_bvmpo": -0.1314, + "snl_bvoco": -0.1263, + "snl_c0": 1.0061, + "snl_c1": -0.0061, + "snl_c2": -0.2585, + "snl_c3": -9.859055, + "snl_c4": 0, + "snl_c5": 0, + "snl_c6": 0, + "snl_c7": 0, + "snl_dtc": 2.55, + "snl_fd": 1, + "snl_impo": 8.0822, + "snl_isco": 8.5935, + "snl_ixo": 0, + "snl_ixxo": 0, + "snl_mbvmp": 0, + "snl_mbvoc": 0, + "snl_module_structure": 0, + "snl_n": 1.0686, + "snl_ref_a": -3.5578, + "snl_ref_b": -0.1766, + "snl_ref_dT": 2.55, + "snl_series_cells": 60, + "snl_transient_thermal_model_unit_mass": 11.0919, + "snl_vmpo": 29.2011, + "snl_voco": 36.8075 + }, + "IEC61853SingleDiodeModel": { + "sd11par_AMa0": 0.9417, + "sd11par_AMa1": 0.06516, + "sd11par_AMa2": -0.02022, + "sd11par_AMa3": 0.00219, + "sd11par_AMa4": -9.1e-05, + "sd11par_Egref": 0.737668, + "sd11par_Il": 1.18951, + "sd11par_Imp0": 1.05, + "sd11par_Io": 2.08522e-09, + "sd11par_Isc0": 1.18, + "sd11par_Vmp0": 64.6, + "sd11par_Voc0": 87, + "sd11par_alphaIsc": 0.000472001, + "sd11par_area": 0.72, + "sd11par_c1": 1930.15, + "sd11par_c2": 474.64, + "sd11par_c3": 1.48746, + "sd11par_d1": 13.5504, + "sd11par_d2": -0.0769735, + "sd11par_d3": 0.237327, + "sd11par_glass": 0, + "sd11par_mounting": 0, + "sd11par_n": 1.45071, + "sd11par_nser": 116, + "sd11par_standoff": 6, + "sd11par_tnoct": 44.9 + }, + "MermoudLejeuneSingleDiodeModel": {}, + "Inverter": { + "inv_cec_cg_eff_cec": 96.63619610631562, + "inv_cec_cg_paco": 3800, + "inv_ds_eff": 97.00805721753339, + "inv_ds_paco": 507000, + "inv_num_mppt": 1, + "inv_pd_eff": 95.55069999999999, + "inv_pd_paco": 4000, + "inv_snl_eff_cec": 96.75453339064892, + "inv_snl_paco": 507000, + "inverter_count": 3, + "inverter_model": 0, + "mppt_hi_inverter": 820, + "mppt_low_inverter": 545 + }, + "InverterCECDatabase": { + "inv_snl_c0": -1.81149e-08, + "inv_snl_c1": 1.11794e-05, + "inv_snl_c2": 0.000884631, + "inv_snl_c3": -0.000339117, + "inv_snl_paco": 507000, + "inv_snl_pdco": 522637, + "inv_snl_pnt": 88.78, + "inv_snl_pso": 2725.47, + "inv_snl_vdcmax": 820, + "inv_snl_vdco": 615, + "inv_tdc_cec_db": [ + [ + 1300, + 50, + -0.02, + 53, + -0.47 + ] + ] + }, + "InverterCECCoefficientGenerator": { + "inv_cec_cg_c0": -3.1751907490832255e-06, + "inv_cec_cg_c1": -5.1230526709923177e-05, + "inv_cec_cg_c2": 0.0009840460888636225, + "inv_cec_cg_c3": -0.0015077980392474678, + "inv_cec_cg_paco": 3800, + "inv_cec_cg_pdco": 3928.1140838222673, + "inv_cec_cg_pnt": 0.99, + "inv_cec_cg_psco": 19.45157582363053, + "inv_cec_cg_vdcmax": 600, + "inv_cec_cg_vdco": 398.4966666666666, + "inv_tdc_cec_cg": [ + [ + 1300, + 50, + -0.02, + 53, + -0.47 + ] + ] + }, + "InverterDatasheet": { + "inv_ds_eff": 97.00805721753339, + "inv_ds_paco": 507000, + "inv_ds_pnt": 88.78, + "inv_ds_pso": 2725.47, + "inv_ds_vdcmax": 820, + "inv_ds_vdco": 615, + "inv_tdc_ds": [ + [ + 1300, + 50, + -0.02, + 53, + -0.47 + ] + ] + }, + "InverterPartLoadCurve": { + "inv_pd_efficiency": [ + 0, + 0, + 34.42, + 55.2, + 65.59, + 71.82, + 75.97, + 78.94, + 81.17, + 82.9, + 84.28, + 85.42, + 86.36, + 87.16, + 87.84, + 88.44, + 88.95, + 89.41, + 89.82, + 90.18, + 90.51, + 90.81, + 91.08, + 91.32, + 91.55, + 91.75, + 91.95, + 92.12, + 92.29, + 92.44, + 92.58, + 92.72, + 92.84, + 92.96, + 93.07, + 93.17, + 93.27, + 93.37, + 93.45, + 93.54, + 93.62, + 93.69, + 93.76, + 93.83, + 93.9, + 93.96, + 94.02, + 94.08, + 94.13, + 94.18, + 94.23, + 94.28, + 94.33, + 94.37, + 94.42, + 94.46, + 94.5, + 94.54, + 94.57, + 94.61, + 94.64, + 94.68, + 94.71, + 94.74, + 94.77, + 94.8, + 94.83, + 94.86, + 94.89, + 94.91, + 94.94, + 94.96, + 94.98, + 95.01, + 95.03, + 95.05, + 95.07, + 95.09, + 95.11, + 95.13, + 95.15, + 95.17, + 95.19, + 95.21, + 95.23, + 95.24, + 95.26, + 95.28, + 95.29, + 95.31, + 95.32, + 95.34, + 95.35, + 95.36, + 95.38, + 95.39, + 95.4, + 95.42, + 95.43, + 95.44, + 95.45, + 95.47, + 95.48, + 95.49, + 95.5, + 95.51, + 95.52, + 95.53, + 95.54, + 95.55, + 95.56, + 95.57, + 95.58, + 95.59, + 95.6, + 95.61, + 95.62, + 95.63, + 95.64, + 95.64, + 95.65, + 95.66, + 95.67, + 95.68, + 95.68, + 95.69, + 95.7, + 95.71, + 95.71, + 95.72, + 95.73, + 95.73, + 95.74, + 95.75, + 95.75, + 95.76, + 95.77, + 95.77, + 95.78, + 95.78, + 95.79, + 95.8, + 95.8, + 95.81, + 95.81, + 95.82, + 95.82, + 95.83, + 95.83, + 95.84, + 95.84, + 95.85, + 95.85, + 95.86, + 95.86, + 95.87, + 95.87, + 95.88, + 95.88, + 95.89, + 95.89, + 95.89, + 95.9, + 95.9, + 95.91, + 95.91, + 95.91, + 95.92, + 95.92, + 95.93, + 95.93, + 95.93, + 95.94, + 95.94, + 95.94, + 95.95, + 95.95, + 95.96, + 95.96, + 95.96, + 95.97, + 95.97, + 95.97, + 95.98, + 95.98, + 95.98, + 95.98, + 95.99, + 95.99, + 95.99, + 96, + 96, + 96, + 96.01, + 96.01, + 96.01, + 96.01, + 96.02, + 96.02, + 96.02, + 96.02, + 96.03, + 96.03, + 96.03, + 96.03, + 96.04, + 96.04, + 96.04, + 96.04, + 96.05, + 96.05, + 96.05, + 96.05, + 96.06, + 96.06, + 96.06, + 96.06, + 96.06, + 96.07, + 96.07, + 96.07, + 96.07, + 96.07, + 96.08, + 96.08, + 96.08, + 96.08, + 96.08, + 96.09, + 96.09, + 96.09, + 96.09, + 96.09, + 96.09, + 96.1, + 96.1, + 96.1, + 96.1, + 96.1, + 96.1, + 96.11, + 96.11, + 96.11, + 96.11, + 96.11, + 96.11, + 96.12, + 96.12, + 96.12, + 96.12, + 96.12 + ], + "inv_pd_paco": 4000, + "inv_pd_partload": [ + 0, + 0.404, + 0.808, + 1.212, + 1.616, + 2.02, + 2.424, + 2.828, + 3.232, + 3.636, + 4.04, + 4.444, + 4.848, + 5.252, + 5.656, + 6.06, + 6.464, + 6.868, + 7.272, + 7.676, + 8.08, + 8.484, + 8.888, + 9.292, + 9.696, + 10.1, + 10.504, + 10.908, + 11.312, + 11.716, + 12.12, + 12.524, + 12.928, + 13.332, + 13.736, + 14.14, + 14.544, + 14.948, + 15.352, + 15.756, + 16.16, + 16.564, + 16.968, + 17.372, + 17.776, + 18.18, + 18.584, + 18.988, + 19.392, + 19.796, + 20.2, + 20.604, + 21.008, + 21.412, + 21.816, + 22.22, + 22.624, + 23.028, + 23.432, + 23.836, + 24.24, + 24.644, + 25.048, + 25.452, + 25.856, + 26.26, + 26.664, + 27.068, + 27.472, + 27.876, + 28.28, + 28.684, + 29.088, + 29.492, + 29.896, + 30.3, + 30.704, + 31.108, + 31.512, + 31.916, + 32.32, + 32.724, + 33.128, + 33.532, + 33.936, + 34.34, + 34.744, + 35.148, + 35.552, + 35.956, + 36.36, + 36.764, + 37.168, + 37.572, + 37.976, + 38.38, + 38.784, + 39.188, + 39.592, + 39.996, + 40.4, + 40.804, + 41.208, + 41.612, + 42.016, + 42.42, + 42.824, + 43.228, + 43.632, + 44.036, + 44.44, + 44.844, + 45.248, + 45.652, + 46.056, + 46.46, + 46.864, + 47.268, + 47.672, + 48.076, + 48.48, + 48.884, + 49.288, + 49.692, + 50.096, + 50.5, + 50.904, + 51.308, + 51.712, + 52.116, + 52.52, + 52.924, + 53.328, + 53.732, + 54.136, + 54.54, + 54.944, + 55.348, + 55.752, + 56.156, + 56.56, + 56.964, + 57.368, + 57.772, + 58.176, + 58.58, + 58.984, + 59.388, + 59.792, + 60.196, + 60.6, + 61.004, + 61.408, + 61.812, + 62.216, + 62.62, + 63.024, + 63.428, + 63.832, + 64.236, + 64.64, + 65.044, + 65.448, + 65.852, + 66.256, + 66.66, + 67.064, + 67.468, + 67.872, + 68.276, + 68.68, + 69.084, + 69.488, + 69.892, + 70.296, + 70.7, + 71.104, + 71.508, + 71.912, + 72.316, + 72.72, + 73.124, + 73.528, + 73.932, + 74.336, + 74.74, + 75.144, + 75.548, + 75.952, + 76.356, + 76.76, + 77.164, + 77.568, + 77.972, + 78.376, + 78.78, + 79.184, + 79.588, + 79.992, + 80.396, + 80.8, + 81.204, + 81.608, + 82.012, + 82.416, + 82.82, + 83.224, + 83.628, + 84.032, + 84.436, + 84.84, + 85.244, + 85.648, + 86.052, + 86.456, + 86.86, + 87.264, + 87.668, + 88.072, + 88.476, + 88.88, + 89.284, + 89.688, + 90.092, + 90.496, + 90.9, + 91.304, + 91.708, + 92.112, + 92.516, + 92.92, + 93.324, + 93.728, + 94.132, + 94.536, + 94.94, + 95.344, + 95.748, + 96.152, + 96.556, + 96.96, + 97.364, + 97.768, + 98.172, + 98.576, + 98.98, + 99.384, + 99.788, + 100.192, + 100.596, + 101 + ], + "inv_pd_pdco": 4186.259232009813, + "inv_pd_pnt": 0, + "inv_pd_vdcmax": 600, + "inv_pd_vdco": 310, + "inv_tdc_plc": [ + [ + 1300, + 50, + -0.02, + 53, + -0.47 + ] + ] + }, + "InverterMermoudLejeuneModel": {}, + "BatterySystem": { + "en_batt": 0 + }, + "Load": {}, + "BatteryCell": {}, + "BatteryDispatch": {}, + "SystemCosts": {}, + "FuelCell": {}, + "PriceSignal": {}, + "Revenue": {}, + "ElectricityRates": {}, + "GridLimits": { + "enable_interconnection_limit": 0, + "grid_curtailment": [ + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38, + 1e+38 + ], + "grid_interconnection_limit_kwac": 100000 + }, + "AdjustmentFactors": { + "constant": 5, + "dc_constant": 0 + }, + "Outputs": {} + }, + "latitude": 40.0, + "longitude": -100.0, + "elevation": 0, + "albedo": 0.4 + } +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index ea8036a..5f6f840 100644 --- a/requirements.txt +++ b/requirements.txt @@ -25,7 +25,7 @@ mypy==0.950 notebook==6.4.11 nrel-pysam==3.0.2 numba==0.55.2 -numcodecs==0.11.0 +numcodecs==0.13.0 numpy==1.22.3 openpyxl==3.0.7 pandas==1.4.2 diff --git a/time_series_models/data_fetchers/ami_fetcher.py b/time_series_models/data_fetchers/ami_fetcher.py index 4165854..a37a054 100644 --- a/time_series_models/data_fetchers/ami_fetcher.py +++ b/time_series_models/data_fetchers/ami_fetcher.py @@ -88,8 +88,8 @@ class AmiFetcher(Fetcher): """ # TODO: update GCS_BUCKET and GCS_PATH_FORMAT depending on where prod data land - GCS_BUCKET = None - GCS_PATH_FORMAT = "Arroyo_Hondo_AMI_data/{units:s}/{meter:s}_{units:s}.csv.gz" + GCS_BUCKET = "seto2243-forecasting" + GCS_PATH_FORMAT = "ami_validation/{meter:s}_{units:s}.csv.gz" # for testing only # TODO(Michael H): extract to Fetcher class? FILE_SYSTEM_URIS = {} diff --git a/time_series_models/data_fetchers/fetcher.py b/time_series_models/data_fetchers/fetcher.py index 2668a38..2589928 100644 --- a/time_series_models/data_fetchers/fetcher.py +++ b/time_series_models/data_fetchers/fetcher.py @@ -259,7 +259,7 @@ def gcs_buffer_loader(cls, path): @classmethod def get_gcs_client(cls): if not cls._GCS_CLIENT: - client = storage.Client() + client = storage.Client.create_anonymous_client() adapter = requests.adapters.HTTPAdapter( pool_connections=128, pool_maxsize=128, max_retries=3, pool_block=True ) diff --git a/time_series_models/data_fetchers/hrrr_fetcher.py b/time_series_models/data_fetchers/hrrr_fetcher.py index 4d48f32..07ddc74 100644 --- a/time_series_models/data_fetchers/hrrr_fetcher.py +++ b/time_series_models/data_fetchers/hrrr_fetcher.py @@ -73,7 +73,11 @@ def load_hrrr_data( with dask.config.set(scheduler="threading"): ds = xr.open_dataset( rpath_mapper(blob_path), - drop_variables=["heightAboveGround"], # Drop magic broken variable + drop_variables=[ + "heightAboveGround", + "isobaricInhPa", + "surface", + ], # Drop magic broken variable engine="zarr", backend_kwargs=dict(consolidated=False), chunks={"valid_time": 1}, @@ -170,11 +174,7 @@ def rpath_mapper(rpath: str | typing.Iterable[str]): # Source Mode names match suffix in GCS blobs # todo: for horizon mode, resolve underlying file formats and expose client to # 00horizon - 48horizon only? -SOURCE_MODES = ( - [f"{val:02}_hour_horizon" for val in range(0, 19)] - + [f"{val:02}-{val+5:02}_hour_horizon" for val in range(19, 44, 6)] - + ["18_hour_forecast", "48_hour_forecast"] -) +SOURCE_MODES = ["12_hour_horizon"] class HrrrFetcher(GriddedDataFetcher): @@ -195,7 +195,7 @@ class HrrrFetcher(GriddedDataFetcher): have enough gridded data products to look for good patterns. """ - HRRR_GCS_BUCKET = "gcp-public-data-weather" + HRRR_GCS_BUCKET = "seto2243-forecasting" # Must define storage in this class for location mappings LOCATION_MAPPING: dict = {} @@ -207,7 +207,7 @@ def __init__( location_mapping: dict | None = None, resource_type: str | None = None, resource_query: str | None = None, - source_mode: str = "48_hour_forecast", + source_mode: str = "12_hour_horizon", ): """ Initialize Fetcher base class and configure selector for variable selection or groupby operations. @@ -286,50 +286,7 @@ def select_blob(self, start: np.datetime64, end: np.datetime64): hour, ) - base = f"gcs://{self.HRRR_GCS_BUCKET}/high-resolution-rapid-refresh/version_2" - match self.source_mode: - case "18_hour_forecast": - if end - start > np.timedelta64(18, "h"): - raise RuntimeError( - f"Grid Point Fetcher configured with 18 hour model, " - f"but requested range is {end - start}" - ) - - return f"{base}/forecast_run/conus/hrrr.{year}{month:02}{day:02}/hrrr.t{hour:02}z.{self.model}.{self.source_mode}.zarr" - - case "48_hour_forecast": - if end - start > np.timedelta64(48, "h"): - raise RuntimeError( - f"Grid Point Fetcher configured with 48 hour model, " - f"but requested range is {end - start}" - ) - - return f"{base}/forecast_run/conus/hrrr.{year}{month:02}{day:02}/hrrr.t{math.floor(hour/6) * 6:02}z.{self.model}.{self.source_mode}.zarr" - - case _: - start_padded = start.astype("datetime64[M]") - np.timedelta64(1, "M") - end_padded = end.astype("datetime64[M]") + np.timedelta64(2, "M") - dates = np.arange(start_padded, end_padded, np.timedelta64(1, "M")) - dates = zip( - TimeUnitEnum("Y").as_unit(dates), - TimeUnitEnum("M").as_unit(dates), - ) - blobs = [] - fs = fsspec.filesystem("gcs", token=None) - for year, month in dates: - blob = f"{base}/monthly_horizon/conus/hrrr.{year}{month:02}/hrrr.{self.model}.{self.source_mode}.zarr" - if fs.exists(blob): - blobs.append(blob) - else: - logger.debug("Data for month %s doesn't exist", blob) - - if not blobs: - raise FileNotFoundError( - f"None of the requested monthly HRRR blobs could be found in {base}/monthly_horizon/conus/" - ) - - logger.debug("Loading hrrr for: %s", blobs) - return blobs + return f"gcs://{self.HRRR_GCS_BUCKET}/high-resolution-rapid-refresh/hrrr_12_hour_horizon_2021.json" def source_loader(self, start, end, *domain_locations): """ diff --git a/time_series_models/processes.py b/time_series_models/processes.py index b011ada..dd7c9ec 100644 --- a/time_series_models/processes.py +++ b/time_series_models/processes.py @@ -150,7 +150,7 @@ def __init__(self, lags: list | np.ndarray = None, **kwargs): # we don't want to interpolate missing labels -- these should be skipped during training and evaluation! self._energy_fetcher = AmiFetcher( location_mapper=lambda x: x, - units="watts", + units="energy", ) self._net_energy_pipeline = net_energy_pipeline(self.energy_fetcher) self._overfetched_range_pipeline = overfetched_range_pipeline( @@ -220,6 +220,8 @@ def make_preprocessor( day_of_week: bool = False, business_day: bool = False, harmonics: list | np.ndarray = None, + # mapping: typing.Callable | None = None, + mapping: dict | None = None, **kwargs, ): logger.info("creating lags %s", lags) @@ -246,10 +248,12 @@ def make_preprocessor( self._weather_fetcher_name, HrrrFetcher( location_mapper="RESOURCE_LOOKUP", + location_mapping=mapping, selector="select", selector_args={"variables": met_vars}, source_mode=f"{met_horizon}_hour_horizon", resource_type="meter/electrical", + resource_query="No-Op", ), [0], ) @@ -428,7 +432,7 @@ def __init__( # Optimization hack - don't bother trying to fetch the range when there is no mapping # Need to revisit once we have a mapping for some but not most PV systems # Set all the properties to point to the nan fetcher. - self._range_fetcher = None + self._range_fetcher = NanFetcher(None, None, None) self._overfetched_range_pipeline = ( self._range_fetcher # used in get_range and friends ) @@ -511,16 +515,16 @@ def make_preprocessor(self, lags=None, **kwargs): make_pv_pipeline(self.hrrr_fetcher, self._pv_builder), [0], ), - ( - "correlated_generation", - autoregressive_features_pipeline( - self.range_fetcher, - lags, - self.tstep, - **kwargs, - ), - [0], - ), + # ( + # "correlated_generation", + # autoregressive_features_pipeline( + # self.range_fetcher, + # lags, + # self.tstep, + # **kwargs, + # ), + # [0], + # ), ] # TODO add harmonics and other features diff --git a/time_series_models/transformers_pv.py b/time_series_models/transformers_pv.py index 85e1592..be9194b 100644 --- a/time_series_models/transformers_pv.py +++ b/time_series_models/transformers_pv.py @@ -94,6 +94,8 @@ def pv_function(X, pv_model_builder: PvModelBuilder): ) dataframe.index.name = "date_time" + logger.info("Feature DF: %s", dataframe) + pv_systems = pv_model_builder(location) if len(pv_systems) > 1: # Make a copy - pvsystem may do bad things to the dataframe