From 6adc7f675957abf96ddc51b59b3d60a67e361a15 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Sat, 14 Mar 2026 20:59:13 +0100 Subject: [PATCH 01/11] Update towards ISMIP7 --- README.md | 107 ++++++++++++++++++++--------------------- compliance_checker.py | 53 +++++++++++--------- experiments_ismip7.csv | 14 ++++++ ismip6_criteria.csv | 56 ++++++++++----------- ismip7_criteria.csv | 28 +++++++++++ 5 files changed, 152 insertions(+), 106 deletions(-) create mode 100644 experiments_ismip7.csv create mode 100644 ismip7_criteria.csv diff --git a/README.md b/README.md index f6bb878..684a614 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,52 @@ -# Ice Sheet Simulation compliance checker - -The script checks the compliance of a simulation dataset according criteria, which are related to: - -* naming conventions -* admissible numerical values, -* spatial definition of the grid which differs according to the ice sheet (AIS vs GIS), -* time recording dependent of the experiments. - -The compliance criteria of output variables are defined in a separate csv file. The compliance criteria of experiments are directly defined as a dictionnary in the python file. - -=> For ISMIP6 simulations, the criteria are following the conventions defined in the [ISMIP6 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections-Antarctica#Appendix_1_.E2.80.93_Output_grid_definition_and_interpolation). The associated csv file is [ismip6_criteria.csv](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/ismip6_criteria.csv) - -=> ISMIP6 2300 file name convention: check carrefully the section _A2.1 File name convention_ of the [ISMIP6 2300 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections2300-Antarctica) - -************************************************* - -### Python and dependencies - -The code has been developed with python 3.9 and the following modules: - -* os -* xarray -* cftime -* numpy -* pandas -* datetime -* tqdm - -=> Conda users can install the **isscheck** environnment with the YML file [isschecker_env.yml](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/isschecker_env.yml). - -************************************************* - -### Test the code - -1. Conda users: activate the isschecker environnement: `> conda activate isschecker`. - For others, be sure that the dependencies specified in the YML file [isschecker_env.yml] (https://github.com/jbbarre/ISM_SimulationChecker/blob/main/isschecker_env.yml) are installed. - -2. In a terminal, run the script: `> python compliance_checker.py`. A progression bar appears in the terminal and shows the progression. - -3. Without any changes, the script checks the `test` directory, which contains a single file. After processing the check, open the *compliance_checker_log.txt* file created in the `test` directory. The compliance checker raises errors because the test data is just a short extraction of a complete dataset. - -************************************************* - -### How to launch a compliance check ? - -1. In a terminal, run the script with the source path and experiment set: -`> ./compliance_checker.py --source-path ./test --experiment-set ismip6` - -2. Use `--experiment-set ismip6_ext` to test the ISMIP6 extension (2300) experiment set. - -3. The script creates a *compliance_checker_log.txt* file in the source path, which reports the errors and warnings. - - - +# Ice Sheet Simulation compliance checker + +The script checks the compliance of a simulation dataset according to criteria, which are related to: + +* naming conventions +* admissible numerical values, +* spatial definition of the grid (different for AIS vs GrIS), +* time recording dependent of the experiments. + +The compliance criteria of output variables and experiments are defined in a separate csv files. + +=> For ISMIP6 simulations, the criteria are following the conventions defined in the [ISMIP6 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections-Antarctica#Appendix_1_.E2.80.93_Output_grid_definition_and_interpolation). The associated csv file is [ismip6_criteria.csv](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/ismip6_criteria.csv) + +=> For ISMIP6 2300 file name convention: check carefully the section _A2.1 File name convention_ of the [ISMIP6 2300 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections2300-Antarctica) + +************************************************* + +### Python and dependencies + +The code has been developed with python 3.9 and the following modules: + +* os +* xarray +* cftime +* numpy +* pandas +* datetime +* tqdm + +=> Conda users can install the **isscheck** environnment with the YML file [isschecker_env.yml](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/isschecker_env.yml). + +************************************************* + +### Test the code + +1. Conda users: activate the isschecker environnement: `> conda activate isschecker`. + For others, be sure that the dependencies specified in the YML file [isschecker_env.yml] (https://github.com/jbbarre/ISM_SimulationChecker/blob/main/isschecker_env.yml) are installed. + +2. In a terminal, run the script: `> python compliance_checker.py`. A progression bar appears in the terminal and shows the progression. + +3. Without any changes, the script checks the `test` directory, which contains a single file. After processing the check, open the *compliance_checker_log.txt* file created in the `test` directory. The compliance checker raises errors because the test data is just a short extraction of a complete dataset. + +************************************************* + +### How to launch a compliance check ? + +1. In a terminal, run the script with the source path and experiment set: +`> ./compliance_checker.py --source-path ./test --experiment-set ismip6` + +2. Use `--experiment-set ismip6_ext` to test the ISMIP6 extension (2300) experiment set. + +3. The script creates a *compliance_checker_log.txt* file in the source path, which reports the errors and warnings. diff --git a/compliance_checker.py b/compliance_checker.py index a65b85a..dec31df 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -13,19 +13,21 @@ DEFAULT_SOURCE_PATH = "./test" DEFAULT_EXPERIMENT_SET = "ismip6" -EXPERIMENT_SET_CHOICES = ("ismip6", "ismip6_ext") +EXPERIMENT_SET_CHOICES = ("ismip6", "ismip6_ext", "ismip7") -CRITERIA_CSV_FILENAME = "ismip6_criteria.csv" +CRITERIA_CSV_FILENAME = "ismip7_criteria.csv" EXPERIMENTS_ISMIP6_CSV_FILENAME = "experiments_ismip6.csv" EXPERIMENTS_ISMIP6_EXT_CSV_FILENAME = "experiments_ismip6_ext.csv" +EXPERIMENTS_ISMIP7_CSV_FILENAME = "experiments_ismip7.csv" AIS_GRID_EXTENT = [-3040000, -3040000, 3040000, 3040000] -GIS_GRID_EXTENT = [-720000, -3450000, 960000, -570000] +GrIS_GRID_EXTENT = [-720000, -3450000, 960000, -570000] AIS_POSSIBLE_RESOLUTION = [1, 2, 4, 8, 16, 32] -GIS_POSSIBLE_RESOLUTION = [1, 2, 4, 5, 10, 20] +#GrIS_POSSIBLE_RESOLUTION = [1, 2, 4, 5, 10, 20] +GrIS_POSSIBLE_RESOLUTION = [1, 2, 4, 8, 16, 32] -TIME_STEP_MIN_DAYS = 360 -TIME_STEP_MAX_DAYS = 367 +TIME_STEP_MIN_DAYS = 365 +TIME_STEP_MAX_DAYS = 366 AVERAGE_YEAR_DAYS = 365 @@ -44,6 +46,9 @@ def main() -> None: experiments_ismip6 = _load_experiments_csv( os.path.join(workdir, EXPERIMENTS_ISMIP6_CSV_FILENAME) ) + experiments_ismip7 = _load_experiments_csv( + os.path.join(workdir, EXPERIMENTS_ISMIP7_CSV_FILENAME) + ) scalar_variables_ismip6 = [ "lim", @@ -64,6 +69,8 @@ def main() -> None: experiments = experiments_ismip6_ext elif experiment_set == "ismip6": experiments = experiments_ismip6 + elif experiment_set == "ismip7": + experiments = experiments_ismip7 else: raise ValueError( "Experiment set not recognized. Please choose between 'ismip6' and 'ismip6_ext'." @@ -97,7 +104,7 @@ def _get_commit_number() -> str: def _parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( - description="Check simulation NetCDF datasets for ISMIP6 compliance." + description="Check simulation NetCDF datasets for ISMIP compliance." ) parser.add_argument( "--source-path", @@ -108,7 +115,7 @@ def _parse_args() -> argparse.Namespace: "--experiment-set", choices=EXPERIMENT_SET_CHOICES, default=DEFAULT_EXPERIMENT_SET, - help="Experiment set rules to apply: ismip6 or ismip6_ext.", + help="Experiment set rules to apply: ismip6 or ismip6_ext or ismip7.", ) return parser.parse_args() @@ -466,6 +473,7 @@ def _process_single_file( model = file_name_split[3] _ = (group, model) file_extention = file_name_split[len(file_name_split) - 1][-2:] + print(considered_variable, region, group, model) ds = xr.open_dataset(os.path.join(source_path, xp, file)) file_variables = list(ds.data_vars) @@ -641,14 +649,14 @@ def _run_variable_checks( var_naming_errors += 1 return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors - if region.upper() not in ["AIS", "GIS"]: + if region not in ["AIS", "GrIS"]: log_file.write( "- ERROR: Region " + region - + " not recognized. It should be AIS or GIS. The compliance check has been interrupted for this variable.\n" + + " not recognized. It should be AIS or GrIS. The compliance check has been interrupted for this variable.\n" ) report_naming_issues.append( - "Compliance check ignored: region (AIS/GIS) not identified in the file " + "Compliance check ignored: region (AIS/GrIS) not identified in the file " + file_name + " due to wrong naming." ) @@ -659,8 +667,8 @@ def _run_variable_checks( grid_extent = AIS_GRID_EXTENT possible_resolution = AIS_POSSIBLE_RESOLUTION else: - grid_extent = GIS_GRID_EXTENT - possible_resolution = GIS_POSSIBLE_RESOLUTION + grid_extent = GrIS_GRID_EXTENT + possible_resolution = GrIS_POSSIBLE_RESOLUTION for ivar in file_variables: if ivar in ismip_var: @@ -714,7 +722,7 @@ def _run_variable_checks( ) var_num_errors += 1 else: - log_file.write(" - ERROR: The array only contains Nan values.\n") + log_file.write(" - ERROR: The array only contains missing values.\n") var_num_errors += 1 ( @@ -756,8 +764,7 @@ def _run_spatial_and_time_checks( Ybottomleft = int(min(coords["y"]).values.item()) Xtopright = int(max(coords["x"]).values.item()) Ytopright = int(max(coords["y"]).values.item()) - - if Xbottomleft == grid_extent[0] & Ybottomleft == grid_extent[1]: + if (Xbottomleft == grid_extent[0] and Ybottomleft == grid_extent[1]): log_file.write(" - Grid: Lowest left corner is well defined.\n") else: log_file.write( @@ -772,7 +779,7 @@ def _run_spatial_and_time_checks( + "] Expected\n" ) var_spatial_errors += 1 - if Xtopright == grid_extent[2] & Ytopright == grid_extent[3]: + if (Xtopright == grid_extent[2] and Ytopright == grid_extent[3]): log_file.write(" - Grid: Upper right corner is well defined.\n") else: log_file.write( @@ -781,9 +788,9 @@ def _run_spatial_and_time_checks( + "," + str(Ytopright) + "] is not correctly defined. [" - + str(grid_extent[0]) + + str(grid_extent[2]) + "," - + str(grid_extent[1]) + + str(grid_extent[3]) + "] Expected\n" ) var_spatial_errors += 1 @@ -887,7 +894,7 @@ def _run_time_checks( log_file.write( " - ERROR: the time step(" + str(time_step) - + ") should be comprised between [360,367].\n" + + ") should be comprised between [" + TIME_STEP_MIN_DAYS + " and " + TIME_STEP_MAX_DAYS+ "].\n" ) var_time_errors += 1 @@ -1022,9 +1029,9 @@ def _write_log_header( "************************************************************************************\n" ) log_file.write(f"Commit Number: {commit_num} \n") - log_file.write("verification criteria: ismip6_criteria.csv \n") + log_file.write("verification criteria: " + CRITERIA_CSV_FILENAME + "\n") log_file.write("date: " + today.strftime("%Y/%m/%d") + "\n") - log_file.write("source: https://github.com/jbbarre/ISM_SimulationChecker \n") + log_file.write("source: https://github.com/ismip/ISM_SimulationChecker \n") log_file.write(" \n") log_file.write( "------------------------------------------------------------------------------------\n" @@ -1046,7 +1053,7 @@ def _write_log_header( log_file.write( "====================================================================================\n" ) - log_file.write("Tips: Use Cltr+F to look for specific problems. \n") + log_file.write("Hint: Use Cltr+F to look for specific problems. \n") log_file.write(" \n") diff --git a/experiments_ismip7.csv b/experiments_ismip7.csv new file mode 100644 index 0000000..b47ba18 --- /dev/null +++ b/experiments_ismip7.csv @@ -0,0 +1,14 @@ +experiment;startinf;startsup;endinf;endsup;duration +historical;1960-01-01;1961-12-31;2014-06-30;2015-01-01;55 +exp01;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp02;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp03;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp04;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp05;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp06;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp07;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp08;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp09;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +exp10;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +ctrl;1979-06-30;1980-01-01;2100-06-30;2101-01-01;120 +ctrl_proj;2015-01-01;2016-01-02;2300-07-01;2301-01-01;286 diff --git a/ismip6_criteria.csv b/ismip6_criteria.csv index 2b30853..daf3077 100644 --- a/ismip6_criteria.csv +++ b/ismip6_criteria.csv @@ -1,28 +1,28 @@ -variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gis;max_value_gis -acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0001;0,0010 -base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 -dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 -hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 -libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 -libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 -licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 -lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 -ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 -litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 -lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 -orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 -sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 -sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 -sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 -strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;200000;0;200000 -topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-3000;4000 -xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 -zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 +variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gis;max_value_gis +acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0001;0,0010 +base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 +dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 +hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 +libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 +libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 +licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 +lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 +ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 +litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 +litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 +litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 +lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 +orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 +sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 +sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 +sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 +strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;200000;0;200000 +topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-3000;4000 +xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 +xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 +yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 +zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 diff --git a/ismip7_criteria.csv b/ismip7_criteria.csv new file mode 100644 index 0000000..5040fc3 --- /dev/null +++ b/ismip7_criteria.csv @@ -0,0 +1,28 @@ +variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris +acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0006;0,0010 +base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 +dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 +hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 +libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 +libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 +licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 +lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 +ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 +litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 +litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 +litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 +lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 +orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 +sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 +sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 +sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 +strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;300000;0;300000 +topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-4000;4000 +xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 +xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 +yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 +zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 From efdeecf6d1fb6d2fbba0ebee8e4f1ea8058a2fae Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Sun, 15 Mar 2026 21:12:11 +0100 Subject: [PATCH 02/11] Allow for scalar tests and remove ismip6 logic Focus on getting ISMIP7 tests up and running. Adding support for three options: "ismip7_scalars", "ismip7_vars", "ismip7", where the last is a combination of both. --- README.md | 7 +- compliance_checker.py | 340 +++++++++--------- criteria_ismip7.csv | 38 ++ criteria_ismip7_scalars.csv | 11 + ...7_criteria.csv => criteria_ismip7_vars.csv | 0 5 files changed, 232 insertions(+), 164 deletions(-) create mode 100644 criteria_ismip7.csv create mode 100644 criteria_ismip7_scalars.csv rename ismip7_criteria.csv => criteria_ismip7_vars.csv (100%) diff --git a/README.md b/README.md index 684a614..949319d 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ The script checks the compliance of a simulation dataset according to criteria, The compliance criteria of output variables and experiments are defined in a separate csv files. +=> For ISMIP7 simulations, the criteria are following the conventions defined on the [ISMIP7 webpage](https://www.ismip.org/). The associated csv file is [ismip7_criteria.csv](https://github.com/ismip/ISM_SimulationChecker/blob/main/ismip7_criteria.csv) + => For ISMIP6 simulations, the criteria are following the conventions defined in the [ISMIP6 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections-Antarctica#Appendix_1_.E2.80.93_Output_grid_definition_and_interpolation). The associated csv file is [ismip6_criteria.csv](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/ismip6_criteria.csv) => For ISMIP6 2300 file name convention: check carefully the section _A2.1 File name convention_ of the [ISMIP6 2300 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections2300-Antarctica) @@ -27,14 +29,15 @@ The code has been developed with python 3.9 and the following modules: * datetime * tqdm -=> Conda users can install the **isscheck** environnment with the YML file [isschecker_env.yml](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/isschecker_env.yml). +=> Conda users can install the **isscheck** environnment with the YML file [isschecker_env.yml](https://github.com/ismip/ISM_SimulationChecker/blob/main/isschecker_env.yml). +`> conda env create -f isschecker_env.yml` ************************************************* ### Test the code 1. Conda users: activate the isschecker environnement: `> conda activate isschecker`. - For others, be sure that the dependencies specified in the YML file [isschecker_env.yml] (https://github.com/jbbarre/ISM_SimulationChecker/blob/main/isschecker_env.yml) are installed. + For others, be sure that the dependencies specified in the YML file [isschecker_env.yml] (https://github.com/ismip/ISM_SimulationChecker/blob/main/isschecker_env.yml) are installed. 2. In a terminal, run the script: `> python compliance_checker.py`. A progression bar appears in the terminal and shows the progression. diff --git a/compliance_checker.py b/compliance_checker.py index dec31df..356cc28 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -12,23 +12,23 @@ DEFAULT_SOURCE_PATH = "./test" -DEFAULT_EXPERIMENT_SET = "ismip6" -EXPERIMENT_SET_CHOICES = ("ismip6", "ismip6_ext", "ismip7") +DEFAULT_EXPERIMENT_SET = "ismip7_scalars" +EXPERIMENT_SET_CHOICES = ("ismip7_scalars", "ismip7_vars", "ismip7", ) + +CRITERIA_ISMIP7_SCALARS_CSV_FILENAME = "criteria_ismip7_scalars.csv" +CRITERIA_ISMIP7_VARS_CSV_FILENAME = "criteria_ismip7_vars.csv" +CRITERIA_ISMIP7_CSV_FILENAME = "criteria_ismip7.csv" -CRITERIA_CSV_FILENAME = "ismip7_criteria.csv" -EXPERIMENTS_ISMIP6_CSV_FILENAME = "experiments_ismip6.csv" -EXPERIMENTS_ISMIP6_EXT_CSV_FILENAME = "experiments_ismip6_ext.csv" EXPERIMENTS_ISMIP7_CSV_FILENAME = "experiments_ismip7.csv" AIS_GRID_EXTENT = [-3040000, -3040000, 3040000, 3040000] GrIS_GRID_EXTENT = [-720000, -3450000, 960000, -570000] AIS_POSSIBLE_RESOLUTION = [1, 2, 4, 8, 16, 32] -#GrIS_POSSIBLE_RESOLUTION = [1, 2, 4, 5, 10, 20] GrIS_POSSIBLE_RESOLUTION = [1, 2, 4, 8, 16, 32] TIME_STEP_MIN_DAYS = 365 TIME_STEP_MAX_DAYS = 366 -AVERAGE_YEAR_DAYS = 365 +AVERAGE_YEAR_DAYS = 365.2425 def main() -> None: @@ -38,44 +38,28 @@ def main() -> None: workdir = os.getcwd() commit_num = _get_commit_number() - ismip_meta, ismip_var, mandatory_variables = _load_criteria(workdir) - - experiments_ismip6_ext = _load_experiments_csv( - os.path.join(workdir, EXPERIMENTS_ISMIP6_EXT_CSV_FILENAME) - ) - experiments_ismip6 = _load_experiments_csv( - os.path.join(workdir, EXPERIMENTS_ISMIP6_CSV_FILENAME) - ) experiments_ismip7 = _load_experiments_csv( os.path.join(workdir, EXPERIMENTS_ISMIP7_CSV_FILENAME) ) - - scalar_variables_ismip6 = [ - "lim", - "limnsw", - "iareagr", - "iareafl", - "tendacabf", - "tendlibmassbf", - "tendlibmassbffl", - "tendlicalvf", - "tendlifmassbf", - "tendligroundf", - ] - scalar_variables = scalar_variables_ismip6 - - # Set up the experiment list: extension (2300) or ISMIP6 (2100). - if experiment_set == "ismip6_ext": - experiments = experiments_ismip6_ext - elif experiment_set == "ismip6": - experiments = experiments_ismip6 + # Set up the experiment list and criteria + if experiment_set == "ismip7_scalars": + experiments = experiments_ismip7 + criteria_file = CRITERIA_ISMIP7_SCALARS_CSV_FILENAME + elif experiment_set == "ismip7_vars": + experiments = experiments_ismip7 + criteria_file = CRITERIA_ISMIP7_VARS_CSV_FILENAME elif experiment_set == "ismip7": experiments = experiments_ismip7 + criteria_file = CRITERIA_ISMIP7_CSV_FILENAME else: raise ValueError( - "Experiment set not recognized. Please choose between 'ismip6' and 'ismip6_ext'." + "Experiment set not recognized. Please choose between 'ismip7', 'ismip7_vars' and 'ismip7_scalars'." ) + + # read the criteria + ismip_meta, ismip_var, mandatory_variables = _load_criteria(workdir, criteria_file) + _run_compliance_checker( source_path=source_path, commit_num=commit_num, @@ -84,8 +68,7 @@ def main() -> None: variables=ismip_var, mandatory_variables=mandatory_variables, experiments=experiments, - experiments_ismip6_ext=experiments_ismip6_ext, - scalar_variables=scalar_variables, + criteria_file=criteria_file, ) @@ -115,15 +98,15 @@ def _parse_args() -> argparse.Namespace: "--experiment-set", choices=EXPERIMENT_SET_CHOICES, default=DEFAULT_EXPERIMENT_SET, - help="Experiment set rules to apply: ismip6 or ismip6_ext or ismip7.", + help="Experiment set rules to apply: ismip7 or ismip7_scalars.", ) return parser.parse_args() -def _load_criteria(workdir: str): +def _load_criteria(workdir: str, criteria_file: str): try: ismip = pd.read_csv( - os.path.join(workdir, CRITERIA_CSV_FILENAME), + os.path.join(workdir, criteria_file), delimiter=";", decimal=",", ) @@ -131,7 +114,7 @@ def _load_criteria(workdir: str): print( "ERROR: Unable to open the compliance criteria file (.csv required with ; as delimiter and , for decimal.). Is the path to the file correct ? " + workdir - + "ismip6_criteria_v0.csv" + + criteria_file ) raise @@ -166,10 +149,9 @@ def _run_compliance_checker( variables, mandatory_variables, experiments, - experiments_ismip6_ext, - scalar_variables, + criteria_file, ) -> None: - _ = (experiments_ismip6_ext, scalar_variables) + _ = (criteria_file) try: with open(os.path.join(source_path, "compliance_checker_log.txt"), "w") as f: @@ -179,7 +161,7 @@ def _run_compliance_checker( _ = files today = datetime.date.today() - _write_log_header(f, commit_num, source_path, today) + _write_log_header(f, commit_num, source_path, today, criteria_file) summary = _process_experiments( log_file=f, @@ -475,7 +457,12 @@ def _process_single_file( file_extention = file_name_split[len(file_name_split) - 1][-2:] print(considered_variable, region, group, model) - ds = xr.open_dataset(os.path.join(source_path, xp, file)) + # Suppress SerializationWarning with 'use_cftime=True' + # This is for dates outside the range supported by numpy.datetime64, + # which is approximately the years 1678 AD to 2262 AD + #ds = xr.open_dataset(os.path.join(source_path, xp, file)) + ds = xr.open_dataset(os.path.join(source_path, xp, file), use_cftime=True) + file_variables = list(ds.data_vars) if file_extention != "nc": @@ -549,6 +536,7 @@ def _process_single_file( } if considered_variable in variables: + print("###", "Running variable check") var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors = ( _run_variable_checks( log_file=log_file, @@ -626,6 +614,7 @@ def _run_variable_checks( var_spatial_errors = 0 var_time_errors = 0 + print("###", "in variable check") log_file.write(" \n") log_file.write("Experiment: " + experiment_name + " - File: " + file_name + "\n") log_file.write(" \n") @@ -633,22 +622,33 @@ def _run_variable_checks( header_ds = ds.to_dict(data=False) dim = set(list(header_ds["coords"].keys())) - if not set(["x", "y"]).issubset(dim): - log_file.write( - "- ERROR: Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing.\n" - ) - log_file.write( - " Only " - + str(list(header_ds["coords"].keys())) - + " has been detected.\n" - ) - report_naming_issues.append( - "Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing in " - + file_name - ) - var_naming_errors += 1 - return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors + index = ismip_var.index(considered_variable) + dim_meta = ismip_meta[index]["dim"] + isscalar = dim_meta == "t" # Switch for scalars + if isscalar: + # Do not complain about missing x,y for scalars + _ = (isscalar) + else: + if not set(["x", "y"]).issubset(dim): + log_file.write( + "- ERROR: Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing.\n" + ) + log_file.write( + " Only " + + str(list(header_ds["coords"].keys())) + + " has been detected.\n" + ) + report_naming_issues.append( + "Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing in " + + file_name + ) + var_naming_errors += 1 + + return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors + + + # print("###", "region name check") if region not in ["AIS", "GrIS"]: log_file.write( "- ERROR: Region " @@ -670,6 +670,8 @@ def _run_variable_checks( grid_extent = GrIS_GRID_EXTENT possible_resolution = GrIS_POSSIBLE_RESOLUTION + + # print("###", "var tests") for ivar in file_variables: if ivar in ismip_var: log_file.write("** Tested Variable: " + ivar + "\n") @@ -691,44 +693,47 @@ def _run_variable_checks( ) var_num_errors += 1 - if False in ds[ivar].isnull(): - if ( - ds[ivar].min(skipna=True).item() - >= ismip_meta[var_index[0]]["min_value_" + region.lower()] - ): - log_file.write(" - The minimum value successfully verified.\n") + if isscalar: + # Do not test regions for scalars + _ = (isscalar) + else: + + if False in ds[ivar].isnull(): + if ( + ds[ivar].min(skipna=True).item() + >= ismip_meta[var_index[0]]["min_value_" + region.lower()] + ): + log_file.write(" - The minimum value successfully verified.\n") + else: + log_file.write( + " - ERROR: The minimum value (" + + str(ds[ivar].min(skipna=True).values.item(0)) + + ") is out of range. Min value accepted: " + + str(ismip_meta[var_index[0]]["min_value_" + region.lower()]) + + "\n" + ) + var_num_errors += 1 + + if ( + ds[ivar].max(skipna=True).item() + <= ismip_meta[var_index[0]]["max_value_" + region.lower()] + ): + log_file.write(" - The maximum value successfully verified.\n") + else: + log_file.write( + " - ERROR: The maximum value (" + + str(ds[ivar].max(skipna=True).values.item(0)) + + ") is out of range. Max value accepted: " + + str(ismip_meta[var_index[0]]["max_value_" + region.lower()]) + + "\n" + ) + var_num_errors += 1 else: - log_file.write( - " - ERROR: The minimum value (" - + str(ds[ivar].min(skipna=True).values.item(0)) - + ") is out of range. Min value accepted: " - + str(ismip_meta[var_index[0]]["min_value_" + region.lower()]) - + "\n" - ) + log_file.write(" - ERROR: The array only contains missing values.\n") var_num_errors += 1 - if ( - ds[ivar].max(skipna=True).item() - <= ismip_meta[var_index[0]]["max_value_" + region.lower()] - ): - log_file.write(" - The maximum value successfully verified.\n") - else: - log_file.write( - " - ERROR: The maximum value (" - + str(ds[ivar].max(skipna=True).values.item(0)) - + ") is out of range. Max value accepted: " - + str(ismip_meta[var_index[0]]["max_value_" + region.lower()]) - + "\n" - ) - var_num_errors += 1 - else: - log_file.write(" - ERROR: The array only contains missing values.\n") - var_num_errors += 1 - - ( - var_spatial_errors, - var_time_errors, - ) = _run_spatial_and_time_checks( + + (var_spatial_errors, var_time_errors) = _run_spatial_and_time_checks( log_file=log_file, ds=ds, dim=dim, @@ -740,8 +745,10 @@ def _run_variable_checks( grid_resolution=grid_resolution, var_spatial_errors=var_spatial_errors, var_time_errors=var_time_errors, + isscalar=isscalar, ) + return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors @@ -757,75 +764,83 @@ def _run_spatial_and_time_checks( grid_resolution: int, var_spatial_errors: int, var_time_errors: int, + isscalar: bool, ): - log_file.write("SPATIAL Tests \n") - coords = ds.coords.to_dataset() - Xbottomleft = int(min(coords["x"]).values.item()) - Ybottomleft = int(min(coords["y"]).values.item()) - Xtopright = int(max(coords["x"]).values.item()) - Ytopright = int(max(coords["y"]).values.item()) - if (Xbottomleft == grid_extent[0] and Ybottomleft == grid_extent[1]): - log_file.write(" - Grid: Lowest left corner is well defined.\n") - else: - log_file.write( - " - ERROR: Lowest left corner of the grid [" - + str(Xbottomleft) - + "," - + str(Ybottomleft) - + "] is not correctly defined. [" - + str(grid_extent[0]) - + "," - + str(grid_extent[1]) - + "] Expected\n" - ) - var_spatial_errors += 1 - if (Xtopright == grid_extent[2] and Ytopright == grid_extent[3]): - log_file.write(" - Grid: Upper right corner is well defined.\n") - else: - log_file.write( - " - ERROR: Upper rigth corner of the grid [" - + str(Xtopright) - + "," - + str(Ytopright) - + "] is not correctly defined. [" - + str(grid_extent[2]) - + "," - + str(grid_extent[3]) - + "] Expected\n" - ) - var_spatial_errors += 1 - Xresolution = round((coords["x"][1].values - coords["x"][0].values) / 1000, 0) - Yresolution = round((coords["y"][1].values - coords["y"][0].values) / 1000, 0) - if Xresolution in set(possible_resolution) and Yresolution in set( - possible_resolution - ): - if Xresolution == grid_resolution and Yresolution == grid_resolution: + if isscalar: + # Do not test x,y for scalars + _ = (isscalar) + else: + + log_file.write("SPATIAL Tests \n") + coords = ds.coords.to_dataset() + Xbottomleft = int(min(coords["x"]).values.item()) + Ybottomleft = int(min(coords["y"]).values.item()) + Xtopright = int(max(coords["x"]).values.item()) + Ytopright = int(max(coords["y"]).values.item()) + if (Xbottomleft == grid_extent[0] and Ybottomleft == grid_extent[1]): + log_file.write(" - Grid: Lowest left corner is well defined.\n") + else: log_file.write( - " - The grid resolution (" - + str(Xresolution) - + ") was successfully verified.\n" + " - ERROR: Lowest left corner of the grid [" + + str(Xbottomleft) + + "," + + str(Ybottomleft) + + "] is not correctly defined. [" + + str(grid_extent[0]) + + "," + + str(grid_extent[1]) + + "] Expected\n" + ) + var_spatial_errors += 1 + if (Xtopright == grid_extent[2] and Ytopright == grid_extent[3]): + log_file.write(" - Grid: Upper right corner is well defined.\n") + else: + log_file.write( + " - ERROR: Upper rigth corner of the grid [" + + str(Xtopright) + + "," + + str(Ytopright) + + "] is not correctly defined. [" + + str(grid_extent[2]) + + "," + + str(grid_extent[3]) + + "] Expected\n" ) + var_spatial_errors += 1 + + Xresolution = round((coords["x"][1].values - coords["x"][0].values) / 1000, 0) + Yresolution = round((coords["y"][1].values - coords["y"][0].values) / 1000, 0) + if Xresolution in set(possible_resolution) and Yresolution in set( + possible_resolution + ): + if Xresolution == grid_resolution and Yresolution == grid_resolution: + log_file.write( + " - The grid resolution (" + + str(Xresolution) + + ") was successfully verified.\n" + ) + else: + log_file.write( + " - ERROR: The grid resolution ( " + + str(Xresolution) + + " or " + + str(Yresolution) + + ") is different of " + + str(grid_resolution) + + "declared in the file name.\n" + ) + var_spatial_errors += 1 else: log_file.write( - " - ERROR: The grid resolution ( " + " - Error: x: " + str(Xresolution) - + " or " + + ",y: " + str(Yresolution) - + ") is different of " - + str(grid_resolution) - + "declared in the file name.\n" + + " is not an authorized grid resolution.\n" ) var_spatial_errors += 1 - else: - log_file.write( - " - Error: x: " - + str(Xresolution) - + ",y: " - + str(Yresolution) - + " is not an authorized grid resolution.\n" - ) - var_spatial_errors += 1 + var_time_errors = _run_time_checks( log_file=log_file, @@ -858,7 +873,7 @@ def _run_time_checks( end_exp = max(ds["time"]).values.astype("datetime64[D]") avgyear = AVERAGE_YEAR_DAYS duration_days = end_exp - start_exp - duration_years = duration_days.astype("timedelta64[Y]") / np.timedelta64(1, "Y") + duration_years = iteration # TODO, get from date objects instead _ = duration_years index_exp = [dic["experiment"] for dic in experiments].index(experiment_name) @@ -898,8 +913,9 @@ def _run_time_checks( ) var_time_errors += 1 - duration_days = pd.to_timedelta(time_step * iteration, "D") - duration_years = round(pd.to_numeric(duration_days.days / avgyear)) + # TODO revise the time check logic + #duration_days = pd.to_timedelta(time_step * iteration, "D") + #duration_years = round(pd.to_numeric(duration_days.days / avgyear)) if duration_years == experiments[index_exp]["duration"]: log_file.write(" - Experiment lasts " + str(duration_years) + " years.\n") dateformat_start_exp = datetime.datetime( @@ -1017,7 +1033,7 @@ def _strictly_increasing(values) -> bool: def _write_log_header( - log_file, commit_num: str, source_path: str, today: datetime.date + log_file, commit_num: str, source_path: str, today: datetime.date, criteria_file: str, ) -> None: log_file.write( "************************************************************************************\n" @@ -1029,7 +1045,7 @@ def _write_log_header( "************************************************************************************\n" ) log_file.write(f"Commit Number: {commit_num} \n") - log_file.write("verification criteria: " + CRITERIA_CSV_FILENAME + "\n") + log_file.write("verification criteria: " + criteria_file + "\n") log_file.write("date: " + today.strftime("%Y/%m/%d") + "\n") log_file.write("source: https://github.com/ismip/ISM_SimulationChecker \n") log_file.write(" \n") @@ -1077,7 +1093,7 @@ def _insert_synthesis( contents.insert(iline, str(exp_counter) + " experiments checked.\n") iline += 1 contents.insert( - iline, str(file_counter) + " files checked (Scalar files are ignored).\n" + iline, str(file_counter) + " files checked.\n" ) iline += 2 contents.insert(iline, str(total_errors) + " error(s) detected.\n") diff --git a/criteria_ismip7.csv b/criteria_ismip7.csv new file mode 100644 index 0000000..a6b0ae7 --- /dev/null +++ b/criteria_ismip7.csv @@ -0,0 +1,38 @@ +variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris +acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0006;0,0010 +base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 +dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 +hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 +libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 +libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 +licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 +lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 +ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 +litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 +litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 +litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 +lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 +orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 +sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 +sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 +sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 +strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;300000;0;300000 +topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-4000;4000 +xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 +xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 +yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 +zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 +zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 +lim;t;ST;Total ice mass;land_ice_mass;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +limnsw;t;ST;Mass above floatation;land_ice_mass_not_displacing_sea_water;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +iareagr;t;ST;Grounded ice area;grounded_ice_sheet_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +iareafl;t;ST;Floating ice area;floating_ice_shelf_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendacabf;t;FL;Total SMB flux;tendency_of_land_ice_mass_due_to_surface_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlibmassbfgr;t;FL;Total BMB flux;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlibmassbffl;t;FL;Total BMB flux beneath floating ice;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlicalvf;t;FL;Total calving flux;tendency_of_land_ice_mass_due_to_calving;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlifmassbf;t;FL;Total calving and ice front melting flux;tendency_of_land_ice_mass_due_to_ice_front_melting;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendligroundf;t;FL;Total groudning line flux;;;kg s-1;1;0.0;1;0.0;1 diff --git a/criteria_ismip7_scalars.csv b/criteria_ismip7_scalars.csv new file mode 100644 index 0000000..d2f50c8 --- /dev/null +++ b/criteria_ismip7_scalars.csv @@ -0,0 +1,11 @@ +variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris +lim;t;ST;Total ice mass;land_ice_mass;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +limnsw;t;ST;Mass above floatation;land_ice_mass_not_displacing_sea_water;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +iareagr;t;ST;Grounded ice area;grounded_ice_sheet_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +iareafl;t;ST;Floating ice area;floating_ice_shelf_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendacabf;t;FL;Total SMB flux;tendency_of_land_ice_mass_due_to_surface_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlibmassbfgr;t;FL;Total BMB flux;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlibmassbffl;t;FL;Total BMB flux beneath floating ice;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlicalvf;t;FL;Total calving flux;tendency_of_land_ice_mass_due_to_calving;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendlifmassbf;t;FL;Total calving and ice front melting flux;tendency_of_land_ice_mass_due_to_ice_front_melting;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 +tendligroundf;t;FL;Total groudning line flux;;;kg s-1;1;0.0;1;0.0;1 diff --git a/ismip7_criteria.csv b/criteria_ismip7_vars.csv similarity index 100% rename from ismip7_criteria.csv rename to criteria_ismip7_vars.csv From 9fa31c0113866acf1b0cd0f6b5f7c93f7433f627 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Sun, 26 Apr 2026 20:54:51 +0200 Subject: [PATCH 03/11] add script to write a test dataset test/generate_test_files.py refactor checker to isolate tests as separate functions update to latest ISMIP7 data request --- Models/.gitignore | 3 + README.md | 32 +- compliance_checker.py | 791 +++++++----------- conventions/ISMIP7_variable_request.xlsx | Bin 0 -> 12398 bytes criteria_ismip7.csv | 2 +- ...ismip7_vars.csv => criteria_ismip7_xyt.csv | 2 +- experiments_ismip6.csv | 17 - experiments_ismip6_ext.csv | 16 - experiments_ismip7.csv | 14 +- gdfs/gdf_ISMIP7_AIS_02000m.txt | 16 + gdfs/gdf_ISMIP7_AIS_04000m.txt | 16 + gdfs/gdf_ISMIP7_AIS_08000m.txt | 16 + gdfs/gdf_ISMIP7_AIS_16000m.txt | 16 + gdfs/gdf_ISMIP7_AIS_32000m.txt | 16 + gdfs/gdf_ISMIP7_GrIS_01000m.txt | 16 + gdfs/gdf_ISMIP7_GrIS_02000m.txt | 16 + gdfs/gdf_ISMIP7_GrIS_04000m.txt | 16 + gdfs/gdf_ISMIP7_GrIS_05000m.txt | 16 + gdfs/gdf_ISMIP7_GrIS_08000m.txt | 16 + gdfs/gdf_ISMIP7_GrIS_16000m.txt | 16 + ismip6_criteria.csv | 28 - test/README.md | 70 ++ test/compliance_checker_log.ref.txt | 59 -- test/generate_test_files.py | 749 +++++++++++++++++ 24 files changed, 1332 insertions(+), 627 deletions(-) create mode 100644 Models/.gitignore create mode 100644 conventions/ISMIP7_variable_request.xlsx rename criteria_ismip7_vars.csv => criteria_ismip7_xyt.csv (98%) delete mode 100644 experiments_ismip6.csv delete mode 100644 experiments_ismip6_ext.csv create mode 100644 gdfs/gdf_ISMIP7_AIS_02000m.txt create mode 100644 gdfs/gdf_ISMIP7_AIS_04000m.txt create mode 100644 gdfs/gdf_ISMIP7_AIS_08000m.txt create mode 100644 gdfs/gdf_ISMIP7_AIS_16000m.txt create mode 100644 gdfs/gdf_ISMIP7_AIS_32000m.txt create mode 100644 gdfs/gdf_ISMIP7_GrIS_01000m.txt create mode 100644 gdfs/gdf_ISMIP7_GrIS_02000m.txt create mode 100644 gdfs/gdf_ISMIP7_GrIS_04000m.txt create mode 100644 gdfs/gdf_ISMIP7_GrIS_05000m.txt create mode 100644 gdfs/gdf_ISMIP7_GrIS_08000m.txt create mode 100644 gdfs/gdf_ISMIP7_GrIS_16000m.txt delete mode 100644 ismip6_criteria.csv create mode 100644 test/README.md delete mode 100644 test/compliance_checker_log.ref.txt create mode 100644 test/generate_test_files.py diff --git a/Models/.gitignore b/Models/.gitignore new file mode 100644 index 0000000..b23cdd8 --- /dev/null +++ b/Models/.gitignore @@ -0,0 +1,3 @@ +/* +!*/ +!.gitignore diff --git a/README.md b/README.md index 949319d..503c542 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,6 @@ The compliance criteria of output variables and experiments are defined in a sep => For ISMIP7 simulations, the criteria are following the conventions defined on the [ISMIP7 webpage](https://www.ismip.org/). The associated csv file is [ismip7_criteria.csv](https://github.com/ismip/ISM_SimulationChecker/blob/main/ismip7_criteria.csv) -=> For ISMIP6 simulations, the criteria are following the conventions defined in the [ISMIP6 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections-Antarctica#Appendix_1_.E2.80.93_Output_grid_definition_and_interpolation). The associated csv file is [ismip6_criteria.csv](https://github.com/jbbarre/ISM_SimulationChecker/blob/main/ismip6_criteria.csv) - -=> For ISMIP6 2300 file name convention: check carefully the section _A2.1 File name convention_ of the [ISMIP6 2300 wiki](https://www.climate-cryosphere.org/wiki/index.php?title=ISMIP6-Projections2300-Antarctica) - ************************************************* ### Python and dependencies @@ -32,24 +28,30 @@ The code has been developed with python 3.9 and the following modules: => Conda users can install the **isscheck** environnment with the YML file [isschecker_env.yml](https://github.com/ismip/ISM_SimulationChecker/blob/main/isschecker_env.yml). `> conda env create -f isschecker_env.yml` + ************************************************* -### Test the code +### How to launch a compliance check -1. Conda users: activate the isschecker environnement: `> conda activate isschecker`. - For others, be sure that the dependencies specified in the YML file [isschecker_env.yml] (https://github.com/ismip/ISM_SimulationChecker/blob/main/isschecker_env.yml) are installed. +1. Conda users: activate the isschecker environment: `> conda activate isschecker`. -2. In a terminal, run the script: `> python compliance_checker.py`. A progression bar appears in the terminal and shows the progression. +2. Run the checker with the path to your CORE directory and an experiment set: + ``` + python compliance_checker.py --source-path ./Models/GrIS/ISMIP7/SYNTH1/CORE --experiment-set ismip7_xyt + ``` + Use `--experiment-set ismip7_scalars` for scalar-only variables, or `ismip7` for both. -3. Without any changes, the script checks the `test` directory, which contains a single file. After processing the check, open the *compliance_checker_log.txt* file created in the `test` directory. The compliance checker raises errors because the test data is just a short extraction of a complete dataset. +3. The script creates a `compliance_checker_log.txt` file in the source path reporting all errors and warnings. -************************************************* -### How to launch a compliance check ? +************************************************* -1. In a terminal, run the script with the source path and experiment set: -`> ./compliance_checker.py --source-path ./test --experiment-set ismip6` +### Generate synthetic test files -2. Use `--experiment-set ismip6_ext` to test the ISMIP6 extension (2300) experiment set. +`test/generate_test_files.py` creates ISMIP7-style NetCDF test files with synthetic data. See [test/README.md](test/README.md) for full options and examples. -3. The script creates a *compliance_checker_log.txt* file in the source path, which reports the errors and warnings. +Quick start: +```bash +conda activate isschecker +python test/generate_test_files.py --grid GrIS_16000m --scenario ctrl --xyt --nyears 286 --start-year 2015 +``` diff --git a/compliance_checker.py b/compliance_checker.py index 356cc28..feffb06 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -4,19 +4,18 @@ import subprocess import argparse -import cftime import numpy as np import pandas as pd import xarray as xr from tqdm import tqdm -DEFAULT_SOURCE_PATH = "./test" +DEFAULT_SOURCE_PATH = "./Models/GrIS/ISMIP7/SYNTH1/CORE" DEFAULT_EXPERIMENT_SET = "ismip7_scalars" -EXPERIMENT_SET_CHOICES = ("ismip7_scalars", "ismip7_vars", "ismip7", ) +EXPERIMENT_SET_CHOICES = ("ismip7_scalars", "ismip7_xyt", "ismip7") CRITERIA_ISMIP7_SCALARS_CSV_FILENAME = "criteria_ismip7_scalars.csv" -CRITERIA_ISMIP7_VARS_CSV_FILENAME = "criteria_ismip7_vars.csv" +CRITERIA_ISMIP7_XYT_CSV_FILENAME = "criteria_ismip7_xyt.csv" CRITERIA_ISMIP7_CSV_FILENAME = "criteria_ismip7.csv" EXPERIMENTS_ISMIP7_CSV_FILENAME = "experiments_ismip7.csv" @@ -28,7 +27,13 @@ TIME_STEP_MIN_DAYS = 365 TIME_STEP_MAX_DAYS = 366 -AVERAGE_YEAR_DAYS = 365.2425 + +# ISMIP7 CORE file naming convention: +# {var}_{region}_{project}_{submission}_{modelid}_{forcing}_{forcingid}_{experiment}_{configid}_{startyear}-{endyear}.nc +ISMIP7_FILENAME_PARTS = 10 +ISMIP7_FILENAME_VAR_IDX = 0 +ISMIP7_FILENAME_REGION_IDX = 1 +ISMIP7_FILENAME_EXPERIMENT_IDX = 7 def main() -> None: @@ -41,31 +46,27 @@ def main() -> None: experiments_ismip7 = _load_experiments_csv( os.path.join(workdir, EXPERIMENTS_ISMIP7_CSV_FILENAME) ) - # Set up the experiment list and criteria if experiment_set == "ismip7_scalars": experiments = experiments_ismip7 criteria_file = CRITERIA_ISMIP7_SCALARS_CSV_FILENAME - elif experiment_set == "ismip7_vars": + elif experiment_set == "ismip7_xyt": experiments = experiments_ismip7 - criteria_file = CRITERIA_ISMIP7_VARS_CSV_FILENAME + criteria_file = CRITERIA_ISMIP7_XYT_CSV_FILENAME elif experiment_set == "ismip7": experiments = experiments_ismip7 criteria_file = CRITERIA_ISMIP7_CSV_FILENAME else: raise ValueError( - "Experiment set not recognized. Please choose between 'ismip7', 'ismip7_vars' and 'ismip7_scalars'." + "Experiment set not recognized. Please choose between 'ismip7', 'ismip7_xyt' and 'ismip7_scalars'." ) - - # read the criteria + ismip_meta, ismip_var, mandatory_variables = _load_criteria(workdir, criteria_file) - _run_compliance_checker( source_path=source_path, commit_num=commit_num, ismip_meta=ismip_meta, ismip_var=ismip_var, - variables=ismip_var, mandatory_variables=mandatory_variables, experiments=experiments, criteria_file=criteria_file, @@ -92,7 +93,7 @@ def _parse_args() -> argparse.Namespace: parser.add_argument( "--source-path", default=DEFAULT_SOURCE_PATH, - help="Path to the directory containing experiment subdirectories.", + help="Path to the directory containing the CORE NetCDF files.", ) parser.add_argument( "--experiment-set", @@ -146,57 +147,40 @@ def _run_compliance_checker( commit_num: str, ismip_meta, ismip_var, - variables, mandatory_variables, experiments, criteria_file, ) -> None: - _ = (criteria_file) - try: with open(os.path.join(source_path, "compliance_checker_log.txt"), "w") as f: print("-> Checking " + source_path) print() - experiment_directories, files = _files_and_subdirectories(source_path) - _ = files today = datetime.date.today() - _write_log_header(f, commit_num, source_path, today, criteria_file) + experiment_groups = _group_files_by_experiment(source_path) + summary = _process_experiments( log_file=f, source_path=source_path, - experiment_directories=experiment_directories, + experiment_groups=experiment_groups, mandatory_variables=mandatory_variables, experiments=experiments, - variables=variables, ismip_var=ismip_var, ismip_meta=ismip_meta, ) - exp_counter = summary["exp_counter"] - file_counter = summary["file_counter"] - total_errors = summary["total_errors"] - total_warnings = summary["total_warnings"] - total_naming_errors = summary["total_naming_errors"] - total_num_errors = summary["total_num_errors"] - total_spatial_errors = summary["total_spatial_errors"] - total_time_errors = summary["total_time_errors"] - total_file_errors = summary["total_file_errors"] - report_naming_issues = summary["report_naming_issues"] - _insert_synthesis( source_path=source_path, - exp_counter=exp_counter, - file_counter=file_counter, - total_errors=total_errors, - total_file_errors=total_file_errors, - total_naming_errors=total_naming_errors, - total_num_errors=total_num_errors, - total_spatial_errors=total_spatial_errors, - total_time_errors=total_time_errors, - total_warnings=total_warnings, - report_naming_issues=report_naming_issues, + exp_counter=summary["exp_counter"], + file_counter=summary["file_counter"], + total_errors=summary["total_errors"], + total_file_errors=summary["total_file_errors"], + total_naming_errors=summary["total_naming_errors"], + total_num_errors=summary["total_num_errors"], + total_spatial_errors=summary["total_spatial_errors"], + total_time_errors=summary["total_time_errors"], + report_naming_issues=summary["report_naming_issues"], ) except TypeError as err: @@ -206,17 +190,28 @@ def _run_compliance_checker( ) +def _group_files_by_experiment(source_path: str) -> dict: + groups = {} + for f in sorted(os.listdir(source_path)): + if not f.endswith(".nc"): + continue + parts = f.split("_") + exp_name = parts[ISMIP7_FILENAME_EXPERIMENT_IDX] if len(parts) == ISMIP7_FILENAME_PARTS else "_unknown" + if exp_name not in groups: + groups[exp_name] = [] + groups[exp_name].append(f) + return groups + + def _process_experiments( log_file, source_path: str, - experiment_directories, + experiment_groups: dict, mandatory_variables, experiments, - variables, ismip_var, ismip_meta, ): - total_warnings = 0 total_naming_errors = 0 total_num_errors = 0 total_spatial_errors = 0 @@ -226,16 +221,16 @@ def _process_experiments( file_counter = 0 exp_counter = 0 - for xp in experiment_directories: + for experiment_name, exp_files in experiment_groups.items(): exp_counter += 1 exp_summary = _process_single_experiment( log_file=log_file, source_path=source_path, - xp=xp, + experiment_name=experiment_name, + exp_files=exp_files, mandatory_variables=mandatory_variables, experiments=experiments, - variables=variables, ismip_var=ismip_var, ismip_meta=ismip_meta, report_naming_issues=report_naming_issues, @@ -266,7 +261,6 @@ def _process_experiments( "exp_counter": exp_counter, "file_counter": file_counter, "total_errors": total_errors, - "total_warnings": total_warnings, "total_naming_errors": total_naming_errors, "total_num_errors": total_num_errors, "total_spatial_errors": total_spatial_errors, @@ -279,50 +273,26 @@ def _process_experiments( def _process_single_experiment( log_file, source_path: str, - xp: str, + experiment_name: str, + exp_files: list, mandatory_variables, experiments, - variables, ismip_var, ismip_meta, report_naming_issues, ): - exp_dir, exp_files = _files_and_subdirectories(os.path.join(source_path, xp)) - _ = exp_dir - exp_files = list(filter(lambda file: file.split(".")[-1] == "nc", exp_files)) - - exp_errors = 0 exp_naming_errors = 0 exp_num_errors = 0 exp_spatial_errors = 0 exp_time_errors = 0 exp_file_errors = 0 - exp_warnings = 0 - exp_naming_warnings = 0 - exp_num_warnings = 0 - exp_spatial_warnings = 0 - exp_time_warnings = 0 + temp_mandatory_var = list(mandatory_variables) for i in exp_files: - file_name_split = i.split("_") - variable = file_name_split[0] - temp_mandatory_var = mandatory_variables - if variable in mandatory_variables: + variable = i.split("_")[ISMIP7_FILENAME_VAR_IDX] + if variable in temp_mandatory_var: temp_mandatory_var.remove(variable) - experiment_chain = xp.split("_") - if len(experiment_chain) == 2: - experiment_name = "_".join(experiment_chain[:-1]) - grid_resolution = int(experiment_chain[-1]) - else: - experiment_name = xp - grid_resolution = 0 - print( - "Error in the naming of the experiment ", - xp, - ". Should be similar to expXXX_RES", - ) - file_counter = 0 if experiment_name in [dic["experiment"] for dic in experiments]: log_file.write("\n ") @@ -333,13 +303,13 @@ def _process_single_experiment( if not temp_mandatory_var: log_file.write( "Mandatory variables Test: " - + xp + + experiment_name + " : all mandatory variables exist. \n" ) else: log_file.write( "ERROR: In experiment " - + xp + + experiment_name + ", these mandatory variable(s) is (are) missing: " + str(temp_mandatory_var) + "\n" @@ -351,33 +321,18 @@ def _process_single_experiment( file_summary = _process_single_file( log_file=log_file, source_path=source_path, - xp=xp, file=file, experiment_name=experiment_name, - grid_resolution=grid_resolution, - variables=variables, ismip_var=ismip_var, ismip_meta=ismip_meta, experiments=experiments, report_naming_issues=report_naming_issues, ) - exp_naming_errors = exp_naming_errors + file_summary["var_naming_errors"] - exp_num_errors = exp_num_errors + file_summary["var_num_errors"] - exp_spatial_errors = exp_spatial_errors + file_summary["var_spatial_errors"] - exp_time_errors = exp_time_errors + file_summary["var_time_errors"] - exp_errors = ( - exp_time_errors - + exp_spatial_errors - + exp_num_errors - + exp_naming_errors - + exp_file_errors - ) - exp_num_warnings = exp_num_warnings + file_summary["var_num_warnings"] - exp_spatial_warnings = ( - exp_spatial_warnings + file_summary["var_spatial_warnings"] - ) - exp_time_warnings = exp_time_warnings + file_summary["var_time_warnings"] + exp_naming_errors += file_summary["var_naming_errors"] + exp_num_errors += file_summary["var_num_errors"] + exp_spatial_errors += file_summary["var_spatial_errors"] + exp_time_errors += file_summary["var_time_errors"] else: log_file.write("\n ") @@ -393,20 +348,19 @@ def _process_single_experiment( + ". \n" ) exp_naming_errors += 1 - exp_errors = ( - exp_time_errors - + exp_spatial_errors - + exp_num_errors - + exp_naming_errors - + exp_file_errors - ) report_naming_issues.append( "Compliance check ignored : experiment " + experiment_name + " not in the experiments list." ) - _ = (exp_warnings, exp_naming_warnings) + exp_errors = ( + exp_time_errors + + exp_spatial_errors + + exp_num_errors + + exp_naming_errors + + exp_file_errors + ) return { "file_counter": file_counter, "experiment_name": experiment_name, @@ -422,76 +376,51 @@ def _process_single_experiment( def _process_single_file( log_file, source_path: str, - xp: str, file: str, experiment_name: str, - grid_resolution: int, - variables, ismip_var, ismip_meta, experiments, report_naming_issues, ): - var_errors = 0 - var_warnings = 0 var_naming_errors = 0 var_num_errors = 0 var_spatial_errors = 0 var_time_errors = 0 - var_warnings = 0 - var_warnings = 0 - var_naming_warnings = 0 - var_num_warnings = 0 - var_spatial_warnings = 0 - var_time_warnings = 0 - - split_path = os.path.normpath(file).split(os.sep) - file_name = split_path[-1] + + file_name = os.path.basename(file) file_name_split = file_name.split("_") - considered_variable = file_name_split[0] - region = file_name_split[1] - group = file_name_split[2] - model = file_name_split[3] - _ = (group, model) - file_extention = file_name_split[len(file_name_split) - 1][-2:] - print(considered_variable, region, group, model) - - # Suppress SerializationWarning with 'use_cftime=True' - # This is for dates outside the range supported by numpy.datetime64, - # which is approximately the years 1678 AD to 2262 AD - #ds = xr.open_dataset(os.path.join(source_path, xp, file)) - ds = xr.open_dataset(os.path.join(source_path, xp, file), use_cftime=True) - - file_variables = list(ds.data_vars) + considered_variable = file_name_split[ISMIP7_FILENAME_VAR_IDX] + region = file_name_split[ISMIP7_FILENAME_REGION_IDX] - if file_extention != "nc": - log_file.write( - " !! " - + file_name - + " is not a NETCDF file. The compliance check is ignored." - + "\n" - ) + try: + ds = xr.open_dataset(os.path.join(source_path, file), use_cftime=True) + except (ValueError, TypeError) as e: + log_file.write(" - ERROR: Cannot open " + file_name + ": " + str(e) + "\n") + var_naming_errors += 1 return { "var_naming_errors": var_naming_errors, "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, - "var_num_warnings": var_num_warnings, - "var_spatial_warnings": var_spatial_warnings, - "var_time_warnings": var_time_warnings, } + file_variables = list(ds.data_vars) - if int(len(file_name_split)) != 5: + # ISMIP7 CORE naming convention: + # var_region_project_submission_modelid_forcing_forcingid_experiment_configid_startyear-endyear.nc + if len(file_name_split) != ISMIP7_FILENAME_PARTS: log_file.write( " - ERROR: the file name " + file_name - + " do not follow the naming convention.\n" + + " does not follow the naming convention (expected " + + str(ISMIP7_FILENAME_PARTS) + + " underscore-separated fields).\n" ) report_naming_issues.append( "Compliance check ignored: file " + file_name - + " do not follow the naming convention." + + " does not follow the naming convention." ) var_naming_errors += 1 return { @@ -499,19 +428,16 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, - "var_num_warnings": var_num_warnings, - "var_spatial_warnings": var_spatial_warnings, - "var_time_warnings": var_time_warnings, } - experiment_varname = file_name_split[4][:-3] + experiment_varname = file_name_split[ISMIP7_FILENAME_EXPERIMENT_IDX] if experiment_varname != experiment_name: log_file.write( " - ERROR: in the file name " + file_name + ", the experiment name (" + experiment_varname - + ") do not match the directory name: " + + ") does not match the expected experiment: " + experiment_name + ".\n" ) @@ -520,7 +446,7 @@ def _process_single_file( + file_name + ", the experiment name (" + experiment_varname - + ") do not match the directory name: " + + ") does not match the expected experiment: " + experiment_name + ".\n" ) @@ -530,13 +456,9 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, - "var_num_warnings": var_num_warnings, - "var_spatial_warnings": var_spatial_warnings, - "var_time_warnings": var_time_warnings, } - if considered_variable in variables: - print("###", "Running variable check") + if considered_variable in ismip_var: var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors = ( _run_variable_checks( log_file=log_file, @@ -544,7 +466,6 @@ def _process_single_file( file_name=file_name, considered_variable=considered_variable, experiment_name=experiment_name, - grid_resolution=grid_resolution, file_variables=file_variables, region=region, ismip_var=ismip_var, @@ -554,16 +475,7 @@ def _process_single_file( ) ) - var_errors = ( - var_errors - + var_naming_errors - + var_num_errors - + var_spatial_errors - + var_time_errors - ) - var_warnings = ( - var_warnings + var_num_warnings + var_spatial_warnings + var_time_warnings - ) + var_errors = var_naming_errors + var_num_errors + var_spatial_errors + var_time_errors log_file.write("\n") log_file.write("----------------------------------------------------------\n") @@ -571,17 +483,10 @@ def _process_single_file( experiment_name + " - " + considered_variable + " - File:" + file_name + "\n" ) if var_errors > 0: - log_file.write( - str(var_errors) + " error(s). Please review before sharing." + "\n" - ) - else: - log_file.write("No errors. Good job !" + "\n") - if var_warnings > 0: - log_file.write( - str(var_warnings) + " warning(s). Please review before sharing." + "\n" - ) + log_file.write(str(var_errors) + " error(s). Please review before sharing.\n") else: - log_file.write("No warnings." + "\n") + log_file.write("No errors. Good job !\n") + log_file.write("No warnings.\n") log_file.write("----------------------------------------------------------\n") return { @@ -589,66 +494,32 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, - "var_num_warnings": var_num_warnings, - "var_spatial_warnings": var_spatial_warnings, - "var_time_warnings": var_time_warnings, } -def _run_variable_checks( +def _check_naming( log_file, - ds, file_name: str, - considered_variable: str, - experiment_name: str, - grid_resolution: int, - file_variables, region: str, - ismip_var, - ismip_meta, - experiments, - report_naming_issues, -): - var_naming_errors = 0 - var_num_errors = 0 - var_spatial_errors = 0 - var_time_errors = 0 - - print("###", "in variable check") - log_file.write(" \n") - log_file.write("Experiment: " + experiment_name + " - File: " + file_name + "\n") - log_file.write(" \n") - - header_ds = ds.to_dict(data=False) - dim = set(list(header_ds["coords"].keys())) + dim: set, + isscalar: bool, + report_naming_issues: list, +) -> int: + errors = 0 - index = ismip_var.index(considered_variable) - dim_meta = ismip_meta[index]["dim"] - isscalar = dim_meta == "t" # Switch for scalars + if not isscalar and not {"x", "y"}.issubset(dim): + log_file.write( + "- ERROR: Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing.\n" + ) + log_file.write( + " Only " + str(list(dim)) + " has been detected.\n" + ) + report_naming_issues.append( + "Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing in " + + file_name + ) + return errors + 1 - if isscalar: - # Do not complain about missing x,y for scalars - _ = (isscalar) - else: - if not set(["x", "y"]).issubset(dim): - log_file.write( - "- ERROR: Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing.\n" - ) - log_file.write( - " Only " - + str(list(header_ds["coords"].keys())) - + " has been detected.\n" - ) - report_naming_issues.append( - "Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing in " - + file_name - ) - var_naming_errors += 1 - - return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors - - - # print("###", "region name check") if region not in ["AIS", "GrIS"]: log_file.write( "- ERROR: Region " @@ -660,262 +531,198 @@ def _run_variable_checks( + file_name + " due to wrong naming." ) - var_naming_errors += 1 - return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors - - if region == "AIS": - grid_extent = AIS_GRID_EXTENT - possible_resolution = AIS_POSSIBLE_RESOLUTION - else: - grid_extent = GrIS_GRID_EXTENT - possible_resolution = GrIS_POSSIBLE_RESOLUTION - - - # print("###", "var tests") - for ivar in file_variables: - if ivar in ismip_var: - log_file.write("** Tested Variable: " + ivar + "\n") - log_file.write(" \n") - var_index = [k for k in range(len(ismip_var)) if ismip_var[k] == ivar] + errors += 1 - log_file.write("NUMERICAL Tests \n") - if ds[ivar].attrs["units"] == ismip_meta[var_index[0]]["units"]: - log_file.write( - " - The unit is correct: " + ds[ivar].attrs["units"] + "\n" - ) - else: - log_file.write( - " - ERROR: The unit of the variable is " - + ds[ivar].attrs["units"] - + " and should be " - + ismip_meta[var_index[0]]["units"] - + " \n" - ) - var_num_errors += 1 - - if isscalar: - # Do not test regions for scalars - _ = (isscalar) - else: - - if False in ds[ivar].isnull(): - if ( - ds[ivar].min(skipna=True).item() - >= ismip_meta[var_index[0]]["min_value_" + region.lower()] - ): - log_file.write(" - The minimum value successfully verified.\n") - else: - log_file.write( - " - ERROR: The minimum value (" - + str(ds[ivar].min(skipna=True).values.item(0)) - + ") is out of range. Min value accepted: " - + str(ismip_meta[var_index[0]]["min_value_" + region.lower()]) - + "\n" - ) - var_num_errors += 1 - - if ( - ds[ivar].max(skipna=True).item() - <= ismip_meta[var_index[0]]["max_value_" + region.lower()] - ): - log_file.write(" - The maximum value successfully verified.\n") - else: - log_file.write( - " - ERROR: The maximum value (" - + str(ds[ivar].max(skipna=True).values.item(0)) - + ") is out of range. Max value accepted: " - + str(ismip_meta[var_index[0]]["max_value_" + region.lower()]) - + "\n" - ) - var_num_errors += 1 - else: - log_file.write(" - ERROR: The array only contains missing values.\n") - var_num_errors += 1 - - - (var_spatial_errors, var_time_errors) = _run_spatial_and_time_checks( - log_file=log_file, - ds=ds, - dim=dim, - region=region, - experiments=experiments, - experiment_name=experiment_name, - grid_extent=grid_extent, - possible_resolution=possible_resolution, - grid_resolution=grid_resolution, - var_spatial_errors=var_spatial_errors, - var_time_errors=var_time_errors, - isscalar=isscalar, - ) - - - return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors + return errors -def _run_spatial_and_time_checks( +def _check_numerical( log_file, ds, - dim, + ivar: str, + ismip_meta: list, + var_index: int, region: str, - experiments, - experiment_name: str, - grid_extent, - possible_resolution, - grid_resolution: int, - var_spatial_errors: int, - var_time_errors: int, isscalar: bool, -): +) -> int: + errors = 0 - if isscalar: - # Do not test x,y for scalars - _ = (isscalar) + log_file.write("NUMERICAL Tests \n") + + if ds[ivar].attrs["units"] == ismip_meta[var_index]["units"]: + log_file.write(" - The unit is correct: " + ds[ivar].attrs["units"] + "\n") else: - - log_file.write("SPATIAL Tests \n") - coords = ds.coords.to_dataset() - Xbottomleft = int(min(coords["x"]).values.item()) - Ybottomleft = int(min(coords["y"]).values.item()) - Xtopright = int(max(coords["x"]).values.item()) - Ytopright = int(max(coords["y"]).values.item()) - if (Xbottomleft == grid_extent[0] and Ybottomleft == grid_extent[1]): - log_file.write(" - Grid: Lowest left corner is well defined.\n") - else: - log_file.write( - " - ERROR: Lowest left corner of the grid [" - + str(Xbottomleft) - + "," - + str(Ybottomleft) - + "] is not correctly defined. [" - + str(grid_extent[0]) - + "," - + str(grid_extent[1]) - + "] Expected\n" - ) - var_spatial_errors += 1 - if (Xtopright == grid_extent[2] and Ytopright == grid_extent[3]): - log_file.write(" - Grid: Upper right corner is well defined.\n") - else: - log_file.write( - " - ERROR: Upper rigth corner of the grid [" - + str(Xtopright) - + "," - + str(Ytopright) - + "] is not correctly defined. [" - + str(grid_extent[2]) - + "," - + str(grid_extent[3]) - + "] Expected\n" - ) - var_spatial_errors += 1 - - Xresolution = round((coords["x"][1].values - coords["x"][0].values) / 1000, 0) - Yresolution = round((coords["y"][1].values - coords["y"][0].values) / 1000, 0) - if Xresolution in set(possible_resolution) and Yresolution in set( - possible_resolution - ): - if Xresolution == grid_resolution and Yresolution == grid_resolution: + log_file.write( + " - ERROR: The unit of the variable is " + + ds[ivar].attrs["units"] + + " and should be " + + ismip_meta[var_index]["units"] + + " \n" + ) + errors += 1 + + if not isscalar: + if False in ds[ivar].isnull(): + if ( + ds[ivar].min(skipna=True).item() + >= ismip_meta[var_index]["min_value_" + region.lower()] + ): + log_file.write(" - The minimum value successfully verified.\n") + else: log_file.write( - " - The grid resolution (" - + str(Xresolution) - + ") was successfully verified.\n" + " - ERROR: The minimum value (" + + str(ds[ivar].min(skipna=True).values.item(0)) + + ") is out of range. Min value accepted: " + + str(ismip_meta[var_index]["min_value_" + region.lower()]) + + "\n" ) + errors += 1 + + if ( + ds[ivar].max(skipna=True).item() + <= ismip_meta[var_index]["max_value_" + region.lower()] + ): + log_file.write(" - The maximum value successfully verified.\n") else: log_file.write( - " - ERROR: The grid resolution ( " - + str(Xresolution) - + " or " - + str(Yresolution) - + ") is different of " - + str(grid_resolution) - + "declared in the file name.\n" + " - ERROR: The maximum value (" + + str(ds[ivar].max(skipna=True).values.item(0)) + + ") is out of range. Max value accepted: " + + str(ismip_meta[var_index]["max_value_" + region.lower()]) + + "\n" ) - var_spatial_errors += 1 + errors += 1 else: - log_file.write( - " - Error: x: " - + str(Xresolution) - + ",y: " - + str(Yresolution) - + " is not an authorized grid resolution.\n" - ) - var_spatial_errors += 1 + log_file.write(" - ERROR: The array only contains missing values.\n") + errors += 1 + return errors - var_time_errors = _run_time_checks( - log_file=log_file, - ds=ds, - dim=dim, - experiments=experiments, - experiment_name=experiment_name, - var_time_errors=var_time_errors, - ) - return var_spatial_errors, var_time_errors +def _check_spatial( + log_file, + ds, + grid_extent: list, + possible_resolution: list, +) -> int: + errors = 0 + + log_file.write("SPATIAL Tests \n") + coords = ds.coords.to_dataset() + Xbottomleft = int(min(coords["x"]).values.item()) + Ybottomleft = int(min(coords["y"]).values.item()) + Xtopright = int(max(coords["x"]).values.item()) + Ytopright = int(max(coords["y"]).values.item()) + + if Xbottomleft == grid_extent[0] and Ybottomleft == grid_extent[1]: + log_file.write(" - Grid: Lowest left corner is well defined.\n") + else: + log_file.write( + " - ERROR: Lowest left corner of the grid [" + + str(Xbottomleft) + "," + str(Ybottomleft) + + "] is not correctly defined. [" + + str(grid_extent[0]) + "," + str(grid_extent[1]) + + "] Expected\n" + ) + errors += 1 -def _run_time_checks( + if Xtopright == grid_extent[2] and Ytopright == grid_extent[3]: + log_file.write(" - Grid: Upper right corner is well defined.\n") + else: + log_file.write( + " - ERROR: Upper rigth corner of the grid [" + + str(Xtopright) + "," + str(Ytopright) + + "] is not correctly defined. [" + + str(grid_extent[2]) + "," + str(grid_extent[3]) + + "] Expected\n" + ) + errors += 1 + + Xresolution = round((coords["x"][1].values - coords["x"][0].values) / 1000, 0) + Yresolution = round((coords["y"][1].values - coords["y"][0].values) / 1000, 0) + if Xresolution in set(possible_resolution) and Yresolution in set(possible_resolution): + log_file.write( + " - The grid resolution (" + + str(int(Xresolution)) + + " km) was successfully verified.\n" + ) + else: + log_file.write( + " - ERROR: resolution x=" + + str(Xresolution) + + " km, y=" + + str(Yresolution) + + " km is not an authorized grid resolution. Allowed: " + + str(possible_resolution) + + " km\n" + ) + errors += 1 + + return errors + + +def _check_time( log_file, ds, - dim, - experiments, + dim: set, + experiments: list, experiment_name: str, - var_time_errors: int, -): +) -> int: + errors = 0 + log_file.write("TIME Tests \n") - if not (set(["t"]).issubset(dim) or set(["time"]).issubset(dim)): + if not ({"t"}.issubset(dim) or {"time"}.issubset(dim)): log_file.write( " - ERROR: The time dimensions is missing. Time Tests have been ignored.\n" ) - return var_time_errors + 1 + return errors + 1 - iteration = len(ds.coords["time"]) start_exp = min(ds["time"]).values.astype("datetime64[D]") end_exp = max(ds["time"]).values.astype("datetime64[D]") - avgyear = AVERAGE_YEAR_DAYS - duration_days = end_exp - start_exp - duration_years = iteration # TODO, get from date objects instead - _ = duration_years + duration_years = end_exp.item().year - start_exp.item().year + 1 index_exp = [dic["experiment"] for dic in experiments].index(experiment_name) if not ( np.issubdtype(start_exp.dtype, np.datetime64) - & np.issubdtype(start_exp.dtype, np.datetime64) + & np.issubdtype(end_exp.dtype, np.datetime64) ): log_file.write( - " - ERROR: the time format of the Netcdf file is not recognized.Time Tests have been ignored.\n" + " - ERROR: the time format of the Netcdf file is not recognized. Time Tests have been ignored.\n" ) - return var_time_errors + 1 + return errors + 1 if not _strictly_increasing(ds.coords["time"]): log_file.write( " - ERROR: the time serie is not monotonous. Time segments have probably been concatenate in a wrong order.\n" ) - return var_time_errors + 1 + return errors + 1 - if isinstance(ds["time"].values[1] - ds["time"].values[0], datetime.timedelta): - time_step = (ds["time"].values[1] - ds["time"].values[0]).days - else: - if isinstance(ds["time"].values[1] - ds["time"].values[0], np.timedelta64): + if len(ds["time"].values) > 1: + if isinstance(ds["time"].values[1] - ds["time"].values[0], datetime.timedelta): + time_step = (ds["time"].values[1] - ds["time"].values[0]).days + elif isinstance(ds["time"].values[1] - ds["time"].values[0], np.timedelta64): time_step = np.timedelta64( - ds["time"].values[1] - ds["time"].values[0], - "D", + ds["time"].values[1] - ds["time"].values[0], "D" ) / np.timedelta64(1, "D") else: - time_step = ds["time"].values[1] - ds["time"].values[10] + time_step = ds["time"].values[1] - ds["time"].values[0] - if TIME_STEP_MIN_DAYS <= time_step <= TIME_STEP_MAX_DAYS: - log_file.write(" - Time step: " + str(time_step) + " days" + "\n") + if TIME_STEP_MIN_DAYS <= time_step <= TIME_STEP_MAX_DAYS: + log_file.write(" - Time step: " + str(time_step) + " days\n") + else: + log_file.write( + " - ERROR: the time step (" + + str(time_step) + + ") should be comprised between [" + + str(TIME_STEP_MIN_DAYS) + + " and " + + str(TIME_STEP_MAX_DAYS) + + "].\n" + ) + errors += 1 else: - log_file.write( - " - ERROR: the time step(" - + str(time_step) - + ") should be comprised between [" + TIME_STEP_MIN_DAYS + " and " + TIME_STEP_MAX_DAYS+ "].\n" - ) - var_time_errors += 1 + log_file.write(" - Only one time step present; time step check skipped.\n") - # TODO revise the time check logic - #duration_days = pd.to_timedelta(time_step * iteration, "D") - #duration_years = round(pd.to_numeric(duration_days.days / avgyear)) if duration_years == experiments[index_exp]["duration"]: log_file.write(" - Experiment lasts " + str(duration_years) + " years.\n") dateformat_start_exp = datetime.datetime( @@ -943,7 +750,7 @@ def _run_time_checks( + experiments[index_exp]["startsup"].strftime("%Y-%m-%d") + "\n" ) - var_time_errors += 1 + errors += 1 dateformat_end_exp = datetime.datetime( end_exp.item().year, @@ -970,9 +777,9 @@ def _run_time_checks( + experiments[index_exp]["endsup"].strftime("%Y-%m-%d") + "\n" ) - var_time_errors += 1 + errors += 1 else: - end_date = start_exp + np.timedelta64(experiments[2]["duration"] * 365, "D") + end_date = start_exp + np.timedelta64(experiments[index_exp]["duration"] * 365, "D") log_file.write( " - ERROR: the experiment lasts " + str(duration_years) @@ -987,9 +794,61 @@ def _run_time_checks( + end_date.item().strftime("%Y-%m-%d") + "\n" ) - var_time_errors += 1 + errors += 1 + + return errors + - return var_time_errors +def _run_variable_checks( + log_file, + ds, + file_name: str, + considered_variable: str, + experiment_name: str, + file_variables, + region: str, + ismip_var, + ismip_meta, + experiments, + report_naming_issues, +): + var_naming_errors = 0 + var_num_errors = 0 + var_spatial_errors = 0 + var_time_errors = 0 + + log_file.write(" \n") + log_file.write("Experiment: " + experiment_name + " - File: " + file_name + "\n") + log_file.write(" \n") + + header_ds = ds.to_dict(data=False) + dim = set(list(header_ds["coords"].keys())) + + index = ismip_var.index(considered_variable) + isscalar = ismip_meta[index]["dim"] == "t" + + n_err = _check_naming(log_file, file_name, region, dim, isscalar, report_naming_issues) + var_naming_errors += n_err + if n_err > 0: + return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors + + grid_extent = AIS_GRID_EXTENT if region == "AIS" else GrIS_GRID_EXTENT + possible_resolution = AIS_POSSIBLE_RESOLUTION if region == "AIS" else GrIS_POSSIBLE_RESOLUTION + + for ivar in file_variables: + if ivar in ismip_var: + log_file.write("** Tested Variable: " + ivar + "\n") + log_file.write(" \n") + var_index = [k for k in range(len(ismip_var)) if ismip_var[k] == ivar][0] + + var_num_errors += _check_numerical(log_file, ds, ivar, ismip_meta, var_index, region, isscalar) + + if not isscalar: + var_spatial_errors += _check_spatial(log_file, ds, grid_extent, possible_resolution) + + var_time_errors += _check_time(log_file, ds, dim, experiments, experiment_name) + + return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors def _print_experiment_summary(experiment_name: str, exp_errors: int) -> None: @@ -1017,17 +876,6 @@ def _print_total_summary(source_path: str, total_errors: int) -> None: print("-------------------------------------------------------------------------") -def _files_and_subdirectories(path: str): - files = [] - directories = [] - for f in os.listdir(path): - if os.path.isfile(os.path.join(path, f)): - files.append(f) - elif os.path.isdir(os.path.join(path, f)): - directories.append(f) - return directories, files - - def _strictly_increasing(values) -> bool: return all(x < y for x, y in zip(values, values[1:])) @@ -1083,7 +931,6 @@ def _insert_synthesis( total_num_errors: int, total_spatial_errors: int, total_time_errors: int, - total_warnings: int, report_naming_issues, ) -> None: with open(os.path.join(source_path, "compliance_checker_log.txt"), "r") as f: @@ -1092,33 +939,21 @@ def _insert_synthesis( iline = 11 contents.insert(iline, str(exp_counter) + " experiments checked.\n") iline += 1 - contents.insert( - iline, str(file_counter) + " files checked.\n" - ) + contents.insert(iline, str(file_counter) + " files checked.\n") iline += 2 contents.insert(iline, str(total_errors) + " error(s) detected.\n") iline += 1 - contents.insert( - iline, " - Mandatory variables: " + str(total_file_errors) + " error(s)\n" - ) + contents.insert(iline, " - Mandatory variables: " + str(total_file_errors) + " error(s)\n") iline += 1 - contents.insert( - iline, " - Naming Tests : " + str(total_naming_errors) + " error(s)\n" - ) + contents.insert(iline, " - Naming Tests : " + str(total_naming_errors) + " error(s)\n") iline += 1 - contents.insert( - iline, " - Numerical Tests : " + str(total_num_errors) + " error(s)\n" - ) + contents.insert(iline, " - Numerical Tests : " + str(total_num_errors) + " error(s)\n") iline += 1 - contents.insert( - iline, " - Spatial Tests : " + str(total_spatial_errors) + " error(s)\n" - ) + contents.insert(iline, " - Spatial Tests : " + str(total_spatial_errors) + " error(s)\n") iline += 1 - contents.insert( - iline, " - Time Tests : " + str(total_time_errors) + " error(s)\n" - ) + contents.insert(iline, " - Time Tests : " + str(total_time_errors) + " error(s)\n") iline += 2 - contents.insert(iline, str(total_warnings) + " warning(s) detected.\n") + contents.insert(iline, "0 warning(s) detected.\n") iline += 2 if total_naming_errors > 0: contents.insert(iline, "Naming tests errors report: \n") diff --git a/conventions/ISMIP7_variable_request.xlsx b/conventions/ISMIP7_variable_request.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..92a42d4f8ad2a7b2fe521693813de112779a840a GIT binary patch literal 12398 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 D{lhyj literal 0 HcmV?d00001 diff --git a/criteria_ismip7.csv b/criteria_ismip7.csv index a6b0ae7..da30a7d 100644 --- a/criteria_ismip7.csv +++ b/criteria_ismip7.csv @@ -1,6 +1,6 @@ variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0006;0,0010 -base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 +base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-4000;4000 dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 diff --git a/criteria_ismip7_vars.csv b/criteria_ismip7_xyt.csv similarity index 98% rename from criteria_ismip7_vars.csv rename to criteria_ismip7_xyt.csv index 5040fc3..1ce2bca 100644 --- a/criteria_ismip7_vars.csv +++ b/criteria_ismip7_xyt.csv @@ -1,6 +1,6 @@ variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0006;0,0010 -base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 +base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-4000;4000 dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 diff --git a/experiments_ismip6.csv b/experiments_ismip6.csv deleted file mode 100644 index 18cc78f..0000000 --- a/experiments_ismip6.csv +++ /dev/null @@ -1,17 +0,0 @@ -experiment;startinf;startsup;endinf;endsup;duration -hist;1979-06-30;1980-01-01;2014-06-30;2015-01-01;35 -ctrl;1979-06-30;1980-01-01;2100-06-30;2101-01-01;120 -ctrl_proj;2015-01-01;2016-01-02;2100-07-01;2101-01-01;86 -exp01;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp02;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp03;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp04;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp05;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp06;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp07;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp08;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp09;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp10;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp11;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp12;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 -exp13;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 diff --git a/experiments_ismip6_ext.csv b/experiments_ismip6_ext.csv deleted file mode 100644 index 51fcde5..0000000 --- a/experiments_ismip6_ext.csv +++ /dev/null @@ -1,16 +0,0 @@ -experiment;startinf;startsup;endinf;endsup;duration -ctrlAE;2015-01-01;2016-01-02;2300-07-01;2301-01-01;286 -expAE01;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE02;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE03;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE04;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE05;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE06;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE07;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE08;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE09;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE10;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE11;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE12;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE13;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -expAE14;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 diff --git a/experiments_ismip7.csv b/experiments_ismip7.csv index b47ba18..16f073e 100644 --- a/experiments_ismip7.csv +++ b/experiments_ismip7.csv @@ -1,14 +1,4 @@ experiment;startinf;startsup;endinf;endsup;duration historical;1960-01-01;1961-12-31;2014-06-30;2015-01-01;55 -exp01;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp02;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp03;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp04;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp05;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp06;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp07;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp08;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp09;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -exp10;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -ctrl;1979-06-30;1980-01-01;2100-06-30;2101-01-01;120 -ctrl_proj;2015-01-01;2016-01-02;2300-07-01;2301-01-01;286 +ctrl;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +ssp370;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 diff --git a/gdfs/gdf_ISMIP7_AIS_02000m.txt b/gdfs/gdf_ISMIP7_AIS_02000m.txt new file mode 100644 index 0000000..a9200f1 --- /dev/null +++ b/gdfs/gdf_ISMIP7_AIS_02000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Antarctica EPSG:3031 +# +gridtype = projection +xsize = 3041 +ysize = 3041 +xunits = "meter" +yunits = "meter" +xfirst = -3040000 +yfirst = -3040000 +xinc = 2000 +yinc = 2000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=0 +lat_ts=71 +lat_0=-90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_AIS_04000m.txt b/gdfs/gdf_ISMIP7_AIS_04000m.txt new file mode 100644 index 0000000..86f7f0f --- /dev/null +++ b/gdfs/gdf_ISMIP7_AIS_04000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Antarctica EPSG:3031 +# +gridtype = projection +xsize = 1521 +ysize = 1521 +xunits = "meter" +yunits = "meter" +xfirst = -3040000 +yfirst = -3040000 +xinc = 4000 +yinc = 4000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=0 +lat_ts=71 +lat_0=-90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_AIS_08000m.txt b/gdfs/gdf_ISMIP7_AIS_08000m.txt new file mode 100644 index 0000000..076a520 --- /dev/null +++ b/gdfs/gdf_ISMIP7_AIS_08000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Antarctica EPSG:3031 +# +gridtype = projection +xsize = 761 +ysize = 761 +xunits = "meter" +yunits = "meter" +xfirst = -3040000 +yfirst = -3040000 +xinc = 8000 +yinc = 8000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=0 +lat_ts=71 +lat_0=-90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_AIS_16000m.txt b/gdfs/gdf_ISMIP7_AIS_16000m.txt new file mode 100644 index 0000000..bebd6ae --- /dev/null +++ b/gdfs/gdf_ISMIP7_AIS_16000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Antarctica EPSG:3031 +# +gridtype = projection +xsize = 381 +ysize = 381 +xunits = "meter" +yunits = "meter" +xfirst = -3040000 +yfirst = -3040000 +xinc = 16000 +yinc = 16000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=0 +lat_ts=71 +lat_0=-90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_AIS_32000m.txt b/gdfs/gdf_ISMIP7_AIS_32000m.txt new file mode 100644 index 0000000..2daeaf2 --- /dev/null +++ b/gdfs/gdf_ISMIP7_AIS_32000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Antarctica EPSG:3031 +# +gridtype = projection +xsize = 191 +ysize = 191 +xunits = "meter" +yunits = "meter" +xfirst = -3040000 +yfirst = -3040000 +xinc = 32000 +yinc = 32000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=0 +lat_ts=71 +lat_0=-90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_GrIS_01000m.txt b/gdfs/gdf_ISMIP7_GrIS_01000m.txt new file mode 100644 index 0000000..5ab820d --- /dev/null +++ b/gdfs/gdf_ISMIP7_GrIS_01000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Greenland EPSG:3413 +# +gridtype = projection +xsize = 1681 +ysize = 2881 +xunits = "meter" +yunits = "meter" +xfirst = -720000 +yfirst = -3450000 +xinc = 1000 +yinc = 1000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=-45 +lat_ts=70 +lat_0=90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_GrIS_02000m.txt b/gdfs/gdf_ISMIP7_GrIS_02000m.txt new file mode 100644 index 0000000..18eff11 --- /dev/null +++ b/gdfs/gdf_ISMIP7_GrIS_02000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Greenland EPSG:3413 +# +gridtype = projection +xsize = 841 +ysize = 1441 +xunits = "meter" +yunits = "meter" +xfirst = -720000 +yfirst = -3450000 +xinc = 2000 +yinc = 2000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=-45 +lat_ts=70 +lat_0=90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_GrIS_04000m.txt b/gdfs/gdf_ISMIP7_GrIS_04000m.txt new file mode 100644 index 0000000..f4e0bac --- /dev/null +++ b/gdfs/gdf_ISMIP7_GrIS_04000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Greenland EPSG:3413 +# +gridtype = projection +xsize = 421 +ysize = 721 +xunits = "meter" +yunits = "meter" +xfirst = -720000 +yfirst = -3450000 +xinc = 4000 +yinc = 4000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=-45 +lat_ts=70 +lat_0=90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_GrIS_05000m.txt b/gdfs/gdf_ISMIP7_GrIS_05000m.txt new file mode 100644 index 0000000..e28a980 --- /dev/null +++ b/gdfs/gdf_ISMIP7_GrIS_05000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Greenland EPSG:3413 +# +gridtype = projection +xsize = 337 +ysize = 577 +xunits = "meter" +yunits = "meter" +xfirst = -720000 +yfirst = -3450000 +xinc = 5000 +yinc = 5000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=-45 +lat_ts=70 +lat_0=90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_GrIS_08000m.txt b/gdfs/gdf_ISMIP7_GrIS_08000m.txt new file mode 100644 index 0000000..93b3edb --- /dev/null +++ b/gdfs/gdf_ISMIP7_GrIS_08000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Greenland EPSG:3413 +# +gridtype = projection +xsize = 211 +ysize = 361 +xunits = "meter" +yunits = "meter" +xfirst = -720000 +yfirst = -3450000 +xinc = 8000 +yinc = 8000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=-45 +lat_ts=70 +lat_0=90 +x_0=0 +y_0=0" diff --git a/gdfs/gdf_ISMIP7_GrIS_16000m.txt b/gdfs/gdf_ISMIP7_GrIS_16000m.txt new file mode 100644 index 0000000..b20a330 --- /dev/null +++ b/gdfs/gdf_ISMIP7_GrIS_16000m.txt @@ -0,0 +1,16 @@ +# +# ISMIP7 grid description file +# Greenland EPSG:3413 +# +gridtype = projection +xsize = 106 +ysize = 181 +xunits = "meter" +yunits = "meter" +xfirst = -720000 +yfirst = -3450000 +xinc = 16000 +yinc = 16000 +grid_mapping = crs +grid_mapping_name = polar_stereographic +proj_params = "+proj=stere +lon_0=-45 +lat_ts=70 +lat_0=90 +x_0=0 +y_0=0" diff --git a/ismip6_criteria.csv b/ismip6_criteria.csv deleted file mode 100644 index daf3077..0000000 --- a/ismip6_criteria.csv +++ /dev/null @@ -1,28 +0,0 @@ -variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gis;max_value_gis -acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0001;0,0010 -base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-3000;4000 -dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 -hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 -libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 -libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 -licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 -lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 -ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 -litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 -lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 -orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 -sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 -sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 -sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 -strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;200000;0;200000 -topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-3000;4000 -xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 -zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000..8e59f56 --- /dev/null +++ b/test/README.md @@ -0,0 +1,70 @@ +# ISMIP7 NetCDF generator + +`test/generate_test_files.py` creates ISMIP7-style NetCDF test files with synthetic data, one file per variable, following the naming convention and grid definitions used by the compliance checker. + +Files are written to `Models/{GrIS|AIS}/ISMIP7/SYNTH1/CORE/`. + +## Usage + +```bash +conda activate isschecker +python test/generate_test_files.py [OPTIONS] +``` + +## Key options + +| Option | Default | Description | +|--------|---------|-------------| +| `--grid` | `GrIS_16000m` | Grid to use (run `--list-grids` to see all available) | +| `--scenario` | `ctrl` | Experiment name written into filenames and the time axis | +| `--start-year` | `2015` | First year of the time axis | +| `--nyears` | `5` | Number of annual time steps | +| `--xyt` | off | Include x,y,t (3D) variables | +| `--scalars` | off | Include scalar (time-only) variables | +| `--include-non-mandatory` | off | Also generate non-mandatory variables | +| `--ism-member-id` | `m001` | ISM ensemble member id (written into filenames) | +| `--esm-id` | `CESM2-WACCM` | ESM id (written into filenames) | +| `--forcing-member-id` | `f001` | Forcing ensemble member id (written into filenames) | +| `--set-counter` | `C001` | Set counter id (written into filenames) | +| `--list-grids` | — | List all available grids and exit | + +## Examples + +```bash +# List available grids +python test/generate_test_files.py --list-grids + +# Generate 286-year GrIS ctrl files (x,y,t variables) +python test/generate_test_files.py --grid GrIS_16000m --scenario ctrl \ + --xyt --nyears 286 --start-year 2015 + +# Generate 286-year AIS ssp370 files +python test/generate_test_files.py --grid AIS_08000m --scenario ssp370 \ + --xyt --nyears 286 --start-year 2015 + +# Generate scalar-only variables +python test/generate_test_files.py --grid GrIS_16000m --scenario ctrl \ + --scalars --nyears 286 --start-year 2015 + +# Generate both 3D and scalar variables, including non-mandatory ones +python test/generate_test_files.py --grid GrIS_16000m --scenario ctrl \ + --xyt --scalars --include-non-mandatory --nyears 286 --start-year 2015 +``` + +## Implemented conventions + +- CF-1.7 as baseline. +- Time encoding: `days since 1850-01-01`, `calendar='standard'`. + - State (ST) variables: snapshot at year end (Dec 31). + - Flux (FL) variables: mid-year (Jul 1) with bounds from Jan 1 to Jan 1 next year. +- Single precision (`float32`) for all variables and time. +- `_FillValue` and `missing_value` set to NetCDF4 default `f4` fill value. +- `time` is an unlimited (record) dimension. +- `x` and `y` are 1-D coordinate variables in metres. +- CRS set per domain: GrIS → `EPSG:3413`, AIS → `EPSG:3031`. + +## Notes + +- Variable metadata is read from `conventions/ISMIP7_variable_request.xlsx`; grid definitions from the top-level `gdfs/` directory. +- `group`, `model`, `contact_name`, and `contact_email` are hardcoded in `create_netcdf_file()` to synthetic defaults — edit there to customise. +- Generated files are synthetic and intended for testing the compliance checker, not for scientific use. diff --git a/test/compliance_checker_log.ref.txt b/test/compliance_checker_log.ref.txt deleted file mode 100644 index dbdd3db..0000000 --- a/test/compliance_checker_log.ref.txt +++ /dev/null @@ -1,59 +0,0 @@ -************************************************************************************ -************* Ice Sheet Model Simulations - Compliance Checker ************* -************************************************************************************ -Commit Number: 'f932fbf' -verification criteria: ismip6_criteria.csv -date: 2022/09/12 -source: https://github.com/jbbarre/ISM_SimulationChecker - ------------------------------------------------------------------------------------- -Verified directory: ./test ------------------------------------------------------------------------------------- -1 experiments checked. -1 files checked (Scalar files are ignored). - -12 error(s) detected. - - Mandatory variables: 12 error(s) - - Naming Tests : 0 error(s) - - Numerical Tests : 0 error(s) - - Spatial Tests : 0 error(s) - - Time Tests : 0 error(s) - -0 warning(s) detected. - - -==================================================================================== -================ DETAILED RESULTS ================ -==================================================================================== -Tips: Use Cltr+F to look for specific problems. - - - ********************************************************** - ** Experiment: exp05 - ********************************************************** - - ERROR: In experiment exp05_32, these mandatory variable(s) is (are) missing: ['acabf', 'base', 'libmassbfgr', 'lithk', 'orog', 'sftflf', 'sftgif', 'sftgrf', 'strbasemag', 'topg', 'xvelmean', 'yvelmean'] - -Experiment: exp05 - File: libmassbffl_AIS_IMAU_IMAUICE1_exp05.nc - -** Tested Variable: libmassbffl - -NUMERICAL Tests - - The unit is correct: kg m-2 s-1 - - The minimum value successfully verified. - - The maximum value successfully verified. -SPATIAL Tests - - Grid: Lowest left corner is well defined. - - Grid: Upper right corner is well defined. - - The grid resolution (32.0) was successfully verified. -TIME Tests - - Time step: 366.0 days - - Experiment lasts 86 years. - - Experiment starts correctly on 2015-07-01. - - Experiment ends correctly on 2100-07-01. - ----------------------------------------------------------- -exp05 - libmassbffl - File:libmassbffl_AIS_IMAU_IMAUICE1_exp05.nc -No errors. Good job ! -No warnings. ----------------------------------------------------------- diff --git a/test/generate_test_files.py b/test/generate_test_files.py new file mode 100644 index 0000000..b0be90d --- /dev/null +++ b/test/generate_test_files.py @@ -0,0 +1,749 @@ +#!/usr/bin/env python3 +""" +NetCDF file generator for ISMIP7 ice sheet simulation data. + +This script generates NetCDF files with variables and metadata following +ISMIP7 conventions as defined in the criteria CSV files and grid definitions. +""" +import re +import numpy as np +import xarray as xr +from datetime import datetime +from pathlib import Path +import netCDF4 + + +def get_available_grids(conventions_dir): + """ + Get available grid definitions from gdfs directory. + + Parameters + ---------- + conventions_dir : str + Path to conventions directory + + Returns + ------- + dict + Dictionary with grid info: {'GrIS': [...], 'AIS': [...]} + """ + # Grid definitions moved to project root `gdfs` directory + gdf_dir = Path(conventions_dir).parent / 'gdfs' + grids = {'GrIS': [], 'AIS': []} + + if not gdf_dir.exists(): + return grids + + for file in sorted(gdf_dir.glob('gdf_ISMIP7_*.txt')): + # Extract grid type and resolution from filename + # e.g., gdf_ISMIP7_GrIS_16000m.txt + match = re.search(r'gdf_ISMIP7_(GrIS|AIS)_(\d+[a-z]+)', file.name) + if match: + grid_type = match.group(1) + resolution = match.group(2) + grids[grid_type].append(resolution) + + return grids + + +def parse_grid_file(gdf_file): + """ + Parse ISMIP7 grid definition file. + + Parameters + ---------- + gdf_file : str + Path to grid definition file + + Returns + ------- + dict + Dictionary with grid parameters (xsize, ysize, xfirst, yfirst, xinc, yinc, etc.) + """ + grid_params = {} + + with open(gdf_file, 'r') as f: + for line in f: + line = line.strip() + if line.startswith('#') or not line or '=' not in line: + continue + + key, value = line.split('=', 1) + key = key.strip() + value = value.strip().strip('"') + + try: + # Try to convert to int or float + if '.' in value: + grid_params[key] = float(value) + else: + grid_params[key] = int(value) + except ValueError: + grid_params[key] = value + + return grid_params + + +def read_variable_criteria(excel_file, include_non_mandatory=False): + """ + Read variable criteria from Excel file. + + Parameters + ---------- + excel_file : str + Path to the Excel file + include_non_mandatory : bool + Whether to include non-mandatory variables + + Returns + ------- + dict + Dictionary with variable information + """ + import pandas as pd + + variables = {} + + # Read the Excel file + df = pd.read_excel(excel_file, sheet_name='ISM') + + # Filter out rows that don't have variable names + df = df.dropna(subset=['Variable Name']) + + # Filter mandatory variables if requested + if not include_non_mandatory: + df = df[df['Mandatory (yes/no)'].str.lower() == 'yes'] + + for idx, row in df.iterrows(): + var_name = row['Variable Name'] + # Parse dimensions from Dim column + dim_str = row['Dim'] + if dim_str == 'x,y,t': + dimensions = ['x', 'y', 't'] + elif dim_str == 't': + dimensions = ['t'] + else: + dimensions = ['x', 'y', 't'] # Default + + variables[var_name] = { + 'dimensions': dimensions, + 'type': row['Type'], + 'description': row['long_name'], # Use long_name from Excel + 'standard_name': row['standard_name'] if pd.notna(row['standard_name']) else '', + 'units': str(row['units']) if pd.notna(row['units']) else '', + 'mandatory': row['Mandatory (yes/no)'].lower() == 'yes', + } + + # Collect any min_/max_ columns (case-insensitive) from the Excel sheet + # Normalize keys to lowercase (e.g., 'min_gris', 'max_ais') and store + for col in df.columns: + try: + lc = str(col).lower() + except Exception: + continue + if lc.startswith('min_') or lc.startswith('max_'): + try: + val = row[col] + if pd.isna(val): + parsed = None + else: + parsed = float(val) + except Exception: + parsed = None + variables[var_name][lc] = parsed + + return variables + + +def generate_synthetic_data(shape, min_val, max_val, dtype=np.float32): + """ + Generate synthetic data within specified range. + + Parameters + ---------- + shape : tuple + Shape of the output array + min_val : float + Minimum value + max_val : float + Maximum value + dtype : type + Data type for the array + + Returns + ------- + np.ndarray + Random data within the specified range + """ + data = np.random.uniform(min_val, max_val, shape).astype(dtype) + return data + + +def create_netcdf_file(output_file, grid_name='GrIS_16000m', scenario='ctrl', start_year=2015, nyears=5, + conventions_dir=None, include_non_mandatory=False, include_scalars=False, + include_xyt=False, + ism_member_id='m001', esm_id='CESM2-WACCM', forcing_member_id='f001', set_counter='C001'): + """ + Create NetCDF files with ISMIP7 variables (one file per variable). + + Parameters + ---------- + output_file : str + Output file path (if None, will use default based on grid type) + grid_name : str + Grid name (e.g., 'GrIS_16000m', 'AIS_16000m') + scenario : str + Scenario name (default: 'ctrl') + start_year : int + First calendar year for the output time axis (default: 2015) + nyears : int + Number of years in the output (default: 5) + conventions_dir : str + Path to conventions directory containing gfds + include_non_mandatory : bool + Whether to include non-mandatory variables + include_scalars : bool + Whether to include scalar time-series variables + include_xyt : bool + Whether to include non-scalar x,y,t variables (3D). Set to False to skip x,y,t variables. + """ + + group='ISMIP7' + model='SYNTH1' + contact_names='Your Name' + contact_emails='your@email.org' + + # Determine conventions directory + if conventions_dir is None: + # Try to find conventions directory relative to this script + script_dir = Path(__file__).parent.parent + conventions_dir = script_dir / 'conventions' + + conventions_dir = Path(conventions_dir) + + # Parse grid name to get grid type and resolution + match = re.match(r'(GrIS|AIS)_(.+)', grid_name) + if not match: + raise ValueError(f"Invalid grid name: {grid_name}. Expected format: GrIS_16000m or AIS_16000m") + + grid_type, resolution = match.groups() + + # Choose CRS per domain: GrIS -> EPSG:3413, AIS -> EPSG:3031 + if grid_type == 'GrIS': + domain_crs = 'EPSG:3413' + else: + domain_crs = 'EPSG:3031' + + # Determine output directory + models_dir = Path(__file__).parent.parent / 'Models' + if grid_type == 'AIS': + output_dir = models_dir / 'AIS' / group / model / 'CORE' + else: # GrIS + output_dir = models_dir / 'GrIS' / group / model / 'CORE' + + output_dir.mkdir(parents=True, exist_ok=True) + + # Load grid definition + gdf_file = conventions_dir.parent / 'gdfs' / f'gdf_ISMIP7_{grid_type}_{resolution}.txt' + if not gdf_file.exists(): + raise FileNotFoundError(f"Grid definition file not found: {gdf_file}") + + grid_params = parse_grid_file(str(gdf_file)) + + nx = grid_params['xsize'] + ny = grid_params['ysize'] + xfirst = grid_params['xfirst'] + yfirst = grid_params['yfirst'] + xinc = grid_params['xinc'] + yinc = grid_params['yinc'] + + # Read variable criteria from Excel file + excel_file = conventions_dir / 'ISMIP7_variable_request.xlsx' + if not excel_file.exists(): + print(f"Warning: {excel_file} not found") + variables = {} + else: + variables = read_variable_criteria(str(excel_file), include_non_mandatory) + + # Create coordinate arrays + x = np.arange(nx, dtype=np.float32) * xinc + xfirst + y = np.arange(ny, dtype=np.float32) * yinc + yfirst + + # Create time coordinates - will be set per variable type later + # ST (State) variables: end of year (e.g., 0.999, 1.999, ...) + # FL (Flux) variables: middle of year (e.g., 0.5, 1.5, ...) with bounds + + # Select min/max values based on grid type + val_key_min = f'min_value_{grid_type.lower()}' + val_key_max = f'max_value_{grid_type.lower()}' + + # Fill value for single-precision floats (ISMIP7 recommends netCDF4 default f4) + fillval = netCDF4.default_fillvals['f4'] + + # contact defaults are provided via function signature + + # Create variables with x-y-t dimensions + xyt_vars = {var: info for var, info in variables.items() + if info['dimensions'] == ['x', 'y', 't']} + + # Create scalar time-series variables (t dimension only) + scalar_vars = {var: info for var, info in variables.items() + if info['dimensions'] == ['t']} + + # Compute time range string for filename + time_range = f"{start_year}-{start_year + nyears - 1}" + + # Create filename template following required pattern: + # ________.nc + domain_id = grid_type + source_id = group + ism_id = model + experiment_id = scenario + filename_template = ( + f"{domain_id}_{source_id}_{ism_id}_{ism_member_id}_{esm_id}_{forcing_member_id}_" + f"{experiment_id}_{set_counter}_{time_range}.nc" + ) + + # Create separate file for each variable + created_files = [] + + # Process x-y-t variables (3D). Can be enabled via `include_xyt`. + if include_xyt: + for var_name, var_info in xyt_vars.items(): + var_type = var_info['type'] + + # Select appropriate time coordinate (days since 1850, calendar: standard) + origin = datetime(1850, 1, 1).date() + if var_type == 'ST': + # End of year (Dec 31) + time_days = [] + time_bounds = None + for i in range(nyears): + year = start_year + i + dt = datetime(year, 12, 31).date() + time_days.append(float((dt - origin).days)) + time_coord = np.array(time_days, dtype=np.float32) + elif var_type == 'FL': + # Middle of year (Jul 1) and bounds from Jan 1 to Jan 1 next year + time_days = [] + time_bounds = np.zeros((nyears, 2), dtype=np.float32) + for i in range(nyears): + year = start_year + i + mid = datetime(year, 7, 1).date() + t0 = datetime(year, 1, 1).date() + t1 = datetime(year + 1, 1, 1).date() + time_days.append(float((mid - origin).days)) + time_bounds[i, 0] = float((t0 - origin).days) + time_bounds[i, 1] = float((t1 - origin).days) + time_coord = np.array(time_days, dtype=np.float32) + else: + # Default to state variable timing (end of year) + time_days = [] + time_bounds = None + for i in range(nyears): + year = start_year + i + dt = datetime(year, 12, 31).date() + time_days.append(float((dt - origin).days)) + time_coord = np.array(time_days, dtype=np.float32) + + # Determine min/max for this variable (per-grid if available) + min_val = var_info.get(val_key_min) + max_val = var_info.get(val_key_max) + if min_val is None and max_val is None: + min_val = -1e6 + max_val = 1e6 + else: + if min_val is None: + min_val = max_val - 1.0 + if max_val is None: + max_val = min_val + 1.0 + if min_val >= max_val: + max_val = min_val + 1.0 + + data = generate_synthetic_data((nyears, ny, nx), min_val, max_val) + + # Create data array with metadata + data_vars = { + var_name: ( + ('time', 'y', 'x'), + data.astype(np.float32), + { + 'long_name': var_info['description'], + 'units': var_info['units'], + 'standard_name': var_info['standard_name'], + 'missing_value': fillval, + } + ) + } + + # Add time bounds for flux variables (units: days since 1850) + if time_bounds is not None: + data_vars[f'time_bounds'] = ( + ('time', 'bounds'), + time_bounds.astype(np.float32), + { + 'long_name': 'time bounds', + 'units': 'days since 1850-01-01', + } + ) + # The 'time' coordinate is created in `coords`, so we attach the + # 'bounds' attribute to the Dataset's time coordinate after + # constructing the Dataset (see below). + + # Create xarray Dataset + coords = { + 'x': ('x', x, {'long_name': 'x-coordinate', 'units': 'm'}), + 'y': ('y', y, {'long_name': 'y-coordinate', 'units': 'm'}), + 'time': ('time', time_coord, {'long_name': 'time', 'units': 'days since 1850-01-01', 'calendar': 'standard'}), + } + + ds = xr.Dataset(data_vars, coords=coords) + + # If time bounds were created, attach the bounds attribute to the time coordinate + if time_bounds is not None: + ds['time'].attrs['bounds'] = 'time_bounds' + + # Add grid mapping information if available + grid_mapping_attrs = {} + if 'proj_params' in grid_params: + grid_mapping_attrs['proj_params'] = grid_params['proj_params'] + if 'grid_mapping_name' in grid_params: + grid_mapping_attrs['grid_mapping_name'] = grid_params['grid_mapping_name'] + + # Add global attributes + ds.attrs.update({ + 'title': f'ISMIP7 synthetic data - {var_name}', + 'history': f'Generated on {datetime.now().isoformat()}', + 'Conventions': 'CF-1.7', + 'grid_type': grid_type, + 'grid_resolution': resolution, + 'group': group, + 'model': model, + 'contact_name': contact_names, + 'contact_email': contact_emails, + 'crs': domain_crs, + }) + + # Add grid mapping attributes to global attributes + ds.attrs.update(grid_mapping_attrs) + + # Create filename + filename = f"{var_name}_{filename_template}" + output_path = output_dir / filename + + # Prepare encoding to comply with conventions (single precision, fill values, unlimited time) + encoding = {} + encoding[var_name] = {'dtype': 'f4', '_FillValue': fillval} + encoding['time'] = {'dtype': 'f4', '_FillValue': fillval} + # time bounds are stored under the fixed name 'time_bounds' + if 'time_bounds' in data_vars: + encoding['time_bounds'] = {'dtype': 'f4', '_FillValue': fillval} + + ds.to_netcdf(output_path, unlimited_dims=('time',), encoding=encoding) + created_files.append(str(output_path)) + else: + print(f"Skipping x,y,t variables (include_xyt=False); {len(xyt_vars)} variables not written") + + # Process scalar variables + if include_scalars: + for var_name, var_info in scalar_vars.items(): + var_type = var_info['type'] + + # Select appropriate time coordinate (days since 1850) + origin = datetime(1850, 1, 1).date() + if var_type == 'ST': + time_days = [] + time_bounds = None + for i in range(nyears): + year = start_year + i + dt = datetime(year, 12, 31).date() + time_days.append(float((dt - origin).days)) + time_coord = np.array(time_days, dtype=np.float32) + elif var_type == 'FL': + time_days = [] + time_bounds = np.zeros((nyears, 2), dtype=np.float32) + for i in range(nyears): + year = start_year + i + mid = datetime(year, 7, 1).date() + t0 = datetime(year, 1, 1).date() + t1 = datetime(year + 1, 1, 1).date() + time_days.append(float((mid - origin).days)) + time_bounds[i, 0] = float((t0 - origin).days) + time_bounds[i, 1] = float((t1 - origin).days) + time_coord = np.array(time_days, dtype=np.float32) + else: + time_days = [] + time_bounds = None + for i in range(nyears): + year = start_year + i + dt = datetime(year, 12, 31).date() + time_days.append(float((dt - origin).days)) + time_coord = np.array(time_days, dtype=np.float32) + + # Determine min/max for this scalar variable (per-grid if available) + min_val = var_info.get(val_key_min) + max_val = var_info.get(val_key_max) + if min_val is None and max_val is None: + min_val = -1e12 + max_val = 1e12 + else: + if min_val is None: + min_val = max_val - 1.0 + if max_val is None: + max_val = min_val + 1.0 + if min_val >= max_val: + max_val = min_val + 1.0 + + # Generate synthetic 1D data + data = generate_synthetic_data((nyears,), min_val, max_val).astype(np.float32) # Wide range for scalar data + # Create data array with metadata + data_vars = { + var_name: ( + ('time',), + data, + { + 'long_name': var_info['description'], + 'units': var_info['units'], + 'standard_name': var_info['standard_name'], + 'missing_value': fillval, + } + ) + } + if time_bounds is not None: + data_vars[f'time_bounds'] = ( + ('time', 'bounds'), + time_bounds.astype(np.float32), + { + 'long_name': 'time bounds', + 'units': 'days since 1850-01-01', + } + ) + # The 'time' coordinate is created in `coords`, so attach the + # bounds attribute to the Dataset's time coordinate after + # constructing the Dataset (see below). + + # Create xarray Dataset + coords = { + 'time': ('time', time_coord, {'long_name': 'time', 'units': 'days since 1850-01-01', 'calendar': 'standard'}), + } + + ds = xr.Dataset(data_vars, coords=coords) + # If time bounds were created, attach the bounds attribute to the time coordinate + if time_bounds is not None: + ds['time'].attrs['bounds'] = 'time_bounds' + + # Add global attributes (include mandatory ISMIP7 attributes) + ds.attrs.update({ + 'title': f'ISMIP7 synthetic data - {var_name}', + 'history': f'Generated on {datetime.now().isoformat()}', + 'Conventions': 'CF-1.7', + 'grid_type': grid_type, + 'grid_resolution': resolution, + 'nt': nyears, + 'group': group, + 'model': model, + 'scenario': scenario, + 'contact_name': contact_names, + 'contact_email': contact_emails, + 'crs': domain_crs, + }) + + # Create filename + filename = f"{var_name}_{filename_template}" + output_path = output_dir / filename + + # Prepare encoding for scalars + encoding = {var_name: {'dtype': 'f4', '_FillValue': fillval}, + 'time': {'dtype': 'f4', '_FillValue': fillval}} + if f'time_bounds' in data_vars: + encoding[f'time_bounds'] = {'dtype': 'f4', '_FillValue': fillval} + + ds.to_netcdf(output_path, unlimited_dims=('time',), encoding=encoding) + created_files.append(str(output_path)) + + print(f"Created {len(created_files)} files in {output_dir}") + print(f" Grid: {grid_name} ({nx} x {ny})") + print(f" Years: {nyears}") + + + return created_files + + +def create_multiple_files(output_dir=None, n_files=3, conventions_dir=None, + start_year=2015, contact_names='Your Name', contact_emails='your@email.org', + include_xyt=True, include_non_mandatory=False): + """ + Create multiple NetCDF files for testing (one file per variable per grid). + + Parameters + ---------- + output_dir : str + Output directory (if None, uses default Models structure) + n_files : int + Number of files to generate per grid + conventions_dir : str + Path to conventions directory + """ + + if conventions_dir is None: + # Try to find conventions directory relative to this script + script_dir = Path(__file__).parent.parent + conventions_dir = script_dir / 'conventions' + + # Get available grids + grids = get_available_grids(str(conventions_dir)) + + total_files = 0 + + # Create files for both Antarctica (AIS) and Greenland (GrIS) + for grid_type in ['GrIS', 'AIS']: + if grid_type not in grids or not grids[grid_type]: + print(f"No {grid_type} grids found") + continue + + # Use the first n_files available grids + for i, resolution in enumerate(grids[grid_type][:n_files]): + grid_name = f'{grid_type}_{resolution}' + + created_files = create_netcdf_file( + None, # Use default output path + grid_name=grid_name, + nyears=5, # Default 5 years for testing + start_year=start_year, + conventions_dir=conventions_dir, + include_scalars=(i == 0), + include_xyt=include_xyt, + include_non_mandatory=include_non_mandatory, + ) + total_files += len(created_files) + + print(f"Total files created: {total_files}") + + +if __name__ == '__main__': + import argparse + + # Get available grids + script_dir = Path(__file__).parent.parent + conventions_dir = script_dir / 'conventions' + available_grids = get_available_grids(str(conventions_dir)) + + # Create list of available grid choices, excluding some high-resolution entries + grid_choices = [] + for grid_type in ['GrIS', 'AIS']: + if grid_type in available_grids: + for resolution in available_grids[grid_type]: + name = f'{grid_type}_{resolution}' + grid_choices.append(name) + + parser = argparse.ArgumentParser( + description='Generate ISMIP7 NetCDF files with synthetic data' + ) + parser.add_argument( + '--grid', + default='GrIS_16000m', + choices=grid_choices, + help=f'Grid definition to use (default: GrIS_16000m). Available: {", ".join(grid_choices[:5])}...' + ) + parser.add_argument( + '--start-year', + type=int, + default=2015, + help='First calendar year for the output time axis (default: 2015)' + ) + parser.add_argument( + '--nyears', + type=int, + default=5, + help='Number of years in the output (default: 5)' + ) + parser.add_argument( + '--scenario', + default='ctrl', + help='Scenario name (default: ctrl)' + ) + parser.add_argument( + '--scalars', + action='store_true', + help='Include scalar time-series variables' + ) + parser.add_argument( + '--xyt', + action='store_true', + help='Write x,y,t variables' + ) + parser.add_argument( + '--include-non-mandatory', + action='store_true', + help='Include non-mandatory variables from the ISM Excel variable list' + ) + parser.add_argument( + '--multiple', + action='store_true', + help='Generate multiple test files with all available grids' + ) + parser.add_argument( + '--conventions-dir', + default=str(conventions_dir), + help=f'Path to conventions directory (default: {conventions_dir})' + ) + parser.add_argument( + '--ism-member-id', + default='m001', + help='ISM ensemble member id (default: m001)' + ) + parser.add_argument( + '--esm-id', + default='CESM2-WACCM', + help='ESM id (default: CESM2-WACCM)' + ) + parser.add_argument( + '--forcing-member-id', + default='f001', + help='Forcing ensemble member id (default: f001)' + ) + parser.add_argument( + '--set-counter', + default='C001', + help='Set counter id (default: C001)' + ) + parser.add_argument( + '--list-grids', + action='store_true', + help='List all available grids and exit' + ) + + args = parser.parse_args() + + # Handle list grids option + if args.list_grids: + print("\nAvailable grids:\n") + for grid_type in ['GrIS', 'AIS']: + if grid_type in available_grids: + print(f"{grid_type}:") + for resolution in available_grids[grid_type]: + print(f" - {grid_type}_{resolution}") + print() + exit(0) + + if args.multiple: + create_multiple_files(conventions_dir=args.conventions_dir, + start_year=args.start_year, + include_xyt=args.xyt, + include_non_mandatory=args.include_non_mandatory) + else: + create_netcdf_file( + None, # Use default output path + grid_name=args.grid, + scenario=args.scenario, + start_year=args.start_year, + nyears=args.nyears, + conventions_dir=args.conventions_dir, + include_scalars=args.scalars, + include_xyt=args.xyt, + include_non_mandatory=args.include_non_mandatory, + ism_member_id=args.ism_member_id, + esm_id=args.esm_id, + forcing_member_id=args.forcing_member_id, + set_counter=args.set_counter, + ) From d377d27d485786f3d938d09014fb0e089aab803b Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Mon, 27 Apr 2026 09:24:59 +0200 Subject: [PATCH 04/11] Use ISMIP7 data request Excel file for criteria; rename experiment_set to variable_list --- compliance_checker.py | 82 +++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/compliance_checker.py b/compliance_checker.py index feffb06..6006791 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -11,12 +11,10 @@ DEFAULT_SOURCE_PATH = "./Models/GrIS/ISMIP7/SYNTH1/CORE" -DEFAULT_EXPERIMENT_SET = "ismip7_scalars" -EXPERIMENT_SET_CHOICES = ("ismip7_scalars", "ismip7_xyt", "ismip7") +DEFAULT_VARIABLE_LIST = "ismip7_scalars" +VARIABLE_LIST_CHOICES = ("ismip7_scalars", "ismip7_xyt", "ismip7") -CRITERIA_ISMIP7_SCALARS_CSV_FILENAME = "criteria_ismip7_scalars.csv" -CRITERIA_ISMIP7_XYT_CSV_FILENAME = "criteria_ismip7_xyt.csv" -CRITERIA_ISMIP7_CSV_FILENAME = "criteria_ismip7.csv" +VARIABLE_REQUEST_XLSX = os.path.join("conventions", "ISMIP7_variable_request.xlsx") EXPERIMENTS_ISMIP7_CSV_FILENAME = "experiments_ismip7.csv" @@ -39,28 +37,14 @@ def main() -> None: args = _parse_args() source_path = args.source_path - experiment_set = args.experiment_set + variable_list = args.variable_list workdir = os.getcwd() commit_num = _get_commit_number() experiments_ismip7 = _load_experiments_csv( os.path.join(workdir, EXPERIMENTS_ISMIP7_CSV_FILENAME) ) - if experiment_set == "ismip7_scalars": - experiments = experiments_ismip7 - criteria_file = CRITERIA_ISMIP7_SCALARS_CSV_FILENAME - elif experiment_set == "ismip7_xyt": - experiments = experiments_ismip7 - criteria_file = CRITERIA_ISMIP7_XYT_CSV_FILENAME - elif experiment_set == "ismip7": - experiments = experiments_ismip7 - criteria_file = CRITERIA_ISMIP7_CSV_FILENAME - else: - raise ValueError( - "Experiment set not recognized. Please choose between 'ismip7', 'ismip7_xyt' and 'ismip7_scalars'." - ) - - ismip_meta, ismip_var, mandatory_variables = _load_criteria(workdir, criteria_file) + ismip_meta, ismip_var, mandatory_variables = _load_criteria(workdir, variable_list) _run_compliance_checker( source_path=source_path, @@ -68,8 +52,8 @@ def main() -> None: ismip_meta=ismip_meta, ismip_var=ismip_var, mandatory_variables=mandatory_variables, - experiments=experiments, - criteria_file=criteria_file, + experiments=experiments_ismip7, + criteria_file=VARIABLE_REQUEST_XLSX, ) @@ -96,32 +80,52 @@ def _parse_args() -> argparse.Namespace: help="Path to the directory containing the CORE NetCDF files.", ) parser.add_argument( - "--experiment-set", - choices=EXPERIMENT_SET_CHOICES, - default=DEFAULT_EXPERIMENT_SET, - help="Experiment set rules to apply: ismip7 or ismip7_scalars.", + "--variable-list", + choices=VARIABLE_LIST_CHOICES, + default=DEFAULT_VARIABLE_LIST, + help="Variable list to apply: ismip7 or ismip7_scalars.", ) return parser.parse_args() -def _load_criteria(workdir: str, criteria_file: str): +def _load_criteria(workdir: str, variable_list: str): + excel_path = os.path.join(workdir, VARIABLE_REQUEST_XLSX) try: - ismip = pd.read_csv( - os.path.join(workdir, criteria_file), - delimiter=";", - decimal=",", - ) + df = pd.read_excel(excel_path, sheet_name="ISM") except IOError: print( - "ERROR: Unable to open the compliance criteria file (.csv required with ; as delimiter and , for decimal.). Is the path to the file correct ? " - + workdir - + criteria_file + "ERROR: Unable to open the variable request file. Is the path correct? " + + excel_path ) raise - ismip_meta = ismip.to_dict("records") - ismip_var = [dic["variable"] for dic in ismip_meta] - ismip_mandatory_var = ismip["variable"][ismip.mandatory == 1].tolist() + df = df.dropna(subset=["Variable Name"]) + + if variable_list == "ismip7_xyt": + df = df[df["Dim"] == "x,y,t"] + elif variable_list == "ismip7_scalars": + df = df[df["Dim"] == "t"] + + ismip_meta = [] + for _, row in df.iterrows(): + entry = { + "variable": row["Variable Name"], + "dim": str(row["Dim"]), + "units": str(row["units"]) if pd.notna(row["units"]) else "", + "mandatory": 1 if str(row["Mandatory (yes/no)"]).lower() == "yes" else 0, + } + for col in df.columns: + lc = str(col).lower() + if lc.startswith("min_") or lc.startswith("max_"): + try: + val = row[col] + entry[lc] = None if pd.isna(val) else float(val) + except Exception: + entry[lc] = None + ismip_meta.append(entry) + + ismip_var = [d["variable"] for d in ismip_meta] + ismip_mandatory_var = [d["variable"] for d in ismip_meta if d["mandatory"] == 1] return ismip_meta, ismip_var, ismip_mandatory_var From a7ff50f61e230e54ad7ee12950ebbd27c6adaae2 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Mon, 27 Apr 2026 09:32:33 +0200 Subject: [PATCH 05/11] remove criteria files after refactoring to read excel --- criteria_ismip7.csv | 38 ------------------ criteria_ismip7_scalars.csv | 11 ----- criteria_ismip7_xyt.csv | 28 ------------- .../libmassbffl_AIS_IMAU_IMAUICE1_exp05.nc | Bin 12554000 -> 0 bytes 4 files changed, 77 deletions(-) delete mode 100644 criteria_ismip7.csv delete mode 100644 criteria_ismip7_scalars.csv delete mode 100644 criteria_ismip7_xyt.csv delete mode 100644 test/exp05_32/libmassbffl_AIS_IMAU_IMAUICE1_exp05.nc diff --git a/criteria_ismip7.csv b/criteria_ismip7.csv deleted file mode 100644 index da30a7d..0000000 --- a/criteria_ismip7.csv +++ /dev/null @@ -1,38 +0,0 @@ -variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris -acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0006;0,0010 -base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-4000;4000 -dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 -hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 -libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 -libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 -licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 -lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 -ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 -litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 -lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 -orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 -sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 -sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 -sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 -strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;300000;0;300000 -topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-4000;4000 -xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 -zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 -lim;t;ST;Total ice mass;land_ice_mass;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -limnsw;t;ST;Mass above floatation;land_ice_mass_not_displacing_sea_water;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -iareagr;t;ST;Grounded ice area;grounded_ice_sheet_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -iareafl;t;ST;Floating ice area;floating_ice_shelf_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendacabf;t;FL;Total SMB flux;tendency_of_land_ice_mass_due_to_surface_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlibmassbfgr;t;FL;Total BMB flux;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlibmassbffl;t;FL;Total BMB flux beneath floating ice;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlicalvf;t;FL;Total calving flux;tendency_of_land_ice_mass_due_to_calving;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlifmassbf;t;FL;Total calving and ice front melting flux;tendency_of_land_ice_mass_due_to_ice_front_melting;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendligroundf;t;FL;Total groudning line flux;;;kg s-1;1;0.0;1;0.0;1 diff --git a/criteria_ismip7_scalars.csv b/criteria_ismip7_scalars.csv deleted file mode 100644 index d2f50c8..0000000 --- a/criteria_ismip7_scalars.csv +++ /dev/null @@ -1,11 +0,0 @@ -variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris -lim;t;ST;Total ice mass;land_ice_mass;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -limnsw;t;ST;Mass above floatation;land_ice_mass_not_displacing_sea_water;;kg;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -iareagr;t;ST;Grounded ice area;grounded_ice_sheet_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -iareafl;t;ST;Floating ice area;floating_ice_shelf_area;;m^2;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendacabf;t;FL;Total SMB flux;tendency_of_land_ice_mass_due_to_surface_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlibmassbfgr;t;FL;Total BMB flux;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlibmassbffl;t;FL;Total BMB flux beneath floating ice;tendency_of_land_ice_mass_due_to_basal_mass_balance;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlicalvf;t;FL;Total calving flux;tendency_of_land_ice_mass_due_to_calving;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendlifmassbf;t;FL;Total calving and ice front melting flux;tendency_of_land_ice_mass_due_to_ice_front_melting;;kg s-1;1;0.0;10000000000000000000000000;0.0;10000000000000000000000000 -tendligroundf;t;FL;Total groudning line flux;;;kg s-1;1;0.0;1;0.0;1 diff --git a/criteria_ismip7_xyt.csv b/criteria_ismip7_xyt.csv deleted file mode 100644 index 1ce2bca..0000000 --- a/criteria_ismip7_xyt.csv +++ /dev/null @@ -1,28 +0,0 @@ -variable;dim;type;variable_name;standard_name;alias_name;units;mandatory;min_value_ais;max_value_ais;min_value_gris;max_value_gris -acabf;x-y-t;FL;Surface mass balance flux;land_ice_surface_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0001;0,0010;-0,0006;0,0010 -base;x-y-t;ST;Base elevation;base_altitude;;m;1;-4000;4000;-4000;4000 -dlithkdt;x-y-t;FL;Ice thickness imbalance;tendency_of_land_ice_thickness;;m s-1;0;-0,0001000000;0,000100000;-0,0001000000;0,000100000 -hfgeoubed;x-y-t;FL;Geothermal heat flux;upward_geothermal_heat_flux_in_land_ice;upward_geothermal_heat_flux_at_ground_level;W m-2;0;0,0;0,3;0,0;0,3 -libmassbffl;x-y-t;FL;Basal mass balance flux beneath floating ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0040;0,0010;-0,0040;0,0010 -libmassbfgr;x-y-t;FL;Basal mass balance flux beneath grounded ice;land_ice_basal_specific_mass_balance_flux;;kg m-2 s-1;1;-0,0003;0,0000;-0,0003;0,0000 -licalvf;x-y-t;FL;Calving flux;land_ice_specific_mass_flux_due_to_calving;;kg m-2 s-1;0;0;100000000000;0;100000000000 -lifmassbf;x-y-t;FL;Ice front melt and calving flux;land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting;;kg m-2 s-1;0;0;100000000000;0;100000000000 -ligroundf;x-y-t;FL;Grounding line flux;land_ice_specific_mass_flux_at_grounding_line;;kg m-2 s-1;0;100000;100000000000;100000;100000000000 -litempbotfl;x-y-t;ST;Basal temperature beneath floating ice shelf;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litempbotgr;x-y-t;ST;Basal temperature beneath grounded ice sheet;temperature_at_base_of_ice_sheet_model;land_ice_basal_temperature;K;0;183;274;183;274 -litemptop;x-y-t;ST;Surface temperature;temperature_at_top_of_ice_sheet_model;temperature_at_ground_level_in_snow_or_firn;K;0;183;274;183;274 -lithk;x-y-t;ST;Ice thickness;land_ice_thickness;;m;1;0;5000;0;5000 -orog;x-y-t;ST;Surface elevation;surface_altitude;;m;1;0;4500;0;4500 -sftflf;x-y-t;ST;Floating ice sheet area fraction;floating_ice_shelf_area_fraction;floating_ice_sheet_area_fraction;1;1;0;1;0;1 -sftgif;x-y-t;ST;Land ice area fraction;land_ice_area_fraction;;1;1;0;1;0;1 -sftgrf;x-y-t;ST;Grounded ice sheet area fraction;grounded_ice_sheet_area_fraction;;1;1;0;1;0;1 -strbasemag;x-y-t;ST;Basal drag;land_ice_basal_drag;magnitude_of_land_ice_basal_drag;Pa;1;0;300000;0;300000 -topg;x-y-t;ST;Bedrock elevation;bedrock_altitude;;m;1;-7000;4000;-4000;4000 -xvelbase;x-y-t;ST;Basal velocity in x;land_ice_basal_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -xvelmean;x-y-t;ST;Mean velocity in x;land_ice_vertical_mean_x_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -xvelsurf;x-y-t;ST;Surface velocity in x;land_ice_surface_x_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelbase;x-y-t;ST;Basal velocity in y;land_ice_basal_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -yvelmean;x-y-t;ST;Mean velocity in y;land_ice_vertical_mean_y_velocity;;m s-1;1;-0,000400;0,000400;-0,000800;0,000800 -yvelsurf;x-y-t;ST;Surface velocity in y;land_ice_surface_y_velocity;;m s-1;0;-0,000400;0,000400;-0,000800;0,000800 -zvelbase;x-y-t;ST;Basal velocity in z;land_ice_basal_upward_velocity;;m s-1;0;-0,00000500;0,00000500;-0,00000800;0,00000800 -zvelsurf;x-y-t;ST;Surface velocity in z;land_ice_surface_upward_velocity;;m s-1;0;-0,00000400;0,00000400;-0,00000800;0,00000800 diff --git a/test/exp05_32/libmassbffl_AIS_IMAU_IMAUICE1_exp05.nc b/test/exp05_32/libmassbffl_AIS_IMAU_IMAUICE1_exp05.nc deleted file mode 100644 index 0cf4a690cfc2a06124a39bcc9c95513ab07874d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12554000 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

-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

)fk3PTnj_{KZ3zue%B6cSq1bv@z8&NJm^~b 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�&oAXC=2Xi<3<@~aDR7P^Z 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%0AhpIg?ceFvfI4 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
u~e@WZZsYEyg|`jd8Dd zj7yHi*aj0ZayWepk?t8Ol6yw@>ToqL>|94n)6*FA?pjNV7;qEAf$ea5PxPm~|}E}Vk?&7IL-{v!tOHNjAgg*n=z*gO_Dj%|oR z9b2Kl$~*M)zKDLc7v$`xrDUB?NJ~8UZFB!|4gP0#3w|SGgo$?df42Yoa!l^91b4Pp zM@(yg@uCN~<p*)(gEy-$3v4SJ7vIKKc%}L%;bU=$~YS{{EZ) z)t`TREA)N40Dbn2L!ZeXF>of`FJ27uKWB4m4EOj}hwt?-$=kxlxP0BKhmVe^o*m_lX$w1Ha?m!!4izw}qXmX8YmfdPQ_*|O`7iVTYxKD=7kv*6MSr=+==0h2 zd#%45Cr0Bst?B65s{wlUH2i))ZRc(7=Z@?=z@2{5gu9~Om^=UOn~vOKWlhdB(I% zxxO|=?+e2X=}*vmp@7~|`skyN=<}ic&&I&5bN|9MDYen*KS8B)t1{Sq_^RG_@@HWjUhn8||F3pDl4)zcm=q zX%I$idHl0FRQ~UI|5uuDeD7D>rb`Z-)hJJH$&Cfvifd7vU4xIDXIZUZwUecNe2m}W zqVflizF&hknH4@dbO>L$w8qa0gYlEfCHy?RIleZ3RgiHo(We0>9J+&X)81ihv^U1C zZeNgosLelfgA>vQ=4is%`gZ=dzN+WDoON3MQ?tD4fmfmi;hVj!gwiR>LYZSAlnGs& z*S0zJFfeT;#-%4=!mtobm}`ger=l=E>R;D_a_ZBvV6h_IicdGZ;Wz*<)l1Be#<+d& z8r*(W9iu;8#Mn1AFuv{%jQ6+r@?SSU{ZQTFiz{hc^xERyo+ojq!Z3`tP{+tiJ20k| z(U)@_b&S)kjB)-~Fm7$0zWq+IDf-xyR812;XlE9;?-&%^5fcYZzyoQjxLavB#*6!4 z)axLOS*(q*V?JQ);pG^6`xPd%$k*=<#cenBFPnMBg4Z3(j;%OxQ_td#G0tAv0=K-r zgnLix;jsqeaF5Pgj9NSoqwm^c%+cK#+jlF*E-}F9tbrIhg?@+3=k>Vajvw`3_&ETh z8>-`xc_VR$^PX%yaf`-Xj8&Y5F(2vqE#f_2_jK~ZL!Gl3;*FOK_)%_(lFi5bsQgcs zq3a%lKRG^)UHCcdPix34sweVIG@I~>pWpLU5^84KlQ3}8Y1Id}<8o{h#no#odJ%F# zwOr{5Ic2nz{@9n~81gMHgz;_71Na(GoW*zCUW<)Z&53`sr(1$|pGpaiQ!mDM1;>)C z5BVHEg!f8tSNxpu3 z>POS;IPsO^my56UeJ8HBzY@hw^5aG^DqM{C%?&>A(R=THWnaZYp7bo7o}?e?M+^`H z!~iis3=jjv05L!e6dwa>A7{-@s2MboG%h}k)kWzuN#Ekrw=mkqKdiS=*}1}JwWK}O z3)2s^mCX23Tz(#x_`YLOcRW*D*O8{ zh&!oRCEl_8!vw|3%M!ME7*ULiF2?G*dwfXGqSLb|v{ZZ9)O-;^D2efah;2JX6UUVnjd&*#wO`do#JP1a#0rC%jj>)i zW>C{&2kG=*oeGO4O!d+r*2H=TYiUZq>G~hX`oiKV#hJVL$n;f~v(E3V*`T$Z*mUh9 zq+9NEBb^GrPJAO5Tjo`58=Dz&jx9AdW5btpWsAxx6?JdNw!VTtHR)eibA1TlJu`W*zeIFldQllelHcadL@~mxsgzF^UY0~nnZCd7z zkD{&@aX;4Tx{+UCC5_xDsZmFmxKRd3Jsty#hX?S`=FcGH>O zkb6wYc^mhn>@@D>Ck>`(S(~Yr)L`m10;?i!=WdFxxlrYanR)Pi>)7#gZd{X>oG6Yz z$M?^)2X5~!w$91_XLSm4AC!;T0SaCp*_*{X+1Z&xSVZywW_#^E)3lnK83%W^)wg9< zOsu7WAyc}wozpZ;%qpX$e6l8wzOa>sr?TQ=gVQf&trz5yeW-d0%Erxv$}@eTs_JY| ztna{H-f97g4d{6pbU#97&wga17GoyotmAHX*6Bgh@0r)H7?yAEsbh)0ec6U7&%TYf zJE$SsKf<1!e_5Vos5XOg)ha=aJrkheQ6pH=aQF9d&^8^<^P2$(>1)J1mUu8-HjK5N zb}Os@)_2V&>o)FLMlZ}NRlm1Nkp9aZI-L3R&RncxU{;;%OTA|SRrEql67X+uw&lq4sjQwF{=iWNct-7^7@XATo#^So3 ze_3AN6XLjb+V8mVvdY}Wdk?v*TDqJhHJqEe-kwt!@k)Qea?m@VSW5Q;Z=&0#)JENu z8{gis#|6GV!y1=d#pWNH!MsZ#^Bvfcxu(ryj^+K>O5TQTdlC%}`)B?vCfY~L{wW6Z zbP^r(EwMjm)V(5iq0D=xlJbnHT{PvyrD2?n^CPb0*dYB@x*ob8eY$C9#Mj7-GxJ~O zlJiSB%{KX`WyQ{-#=I|+_X(?mUD(n=GuXO^l^|^J zMOfzgHY;wH`1(@T`p=dyX1*er#L@ds=^BpAuHpQQzhBu0{kOaZ(~OP3(w5rLvAwV} zz^}j8xUlCy@zXpc28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYK zhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$^!1^t9?yqNk;6iJn&P3(fQV zih}Nx106qz0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP- zfEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR z28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO>W? z0FHkfmc3t`cIZa-ZDD!0)wP+7{bAScHAb#%1q^Q?1=9`!=l;ukyeE&gqn^^LBZNm13YdLktiD!~iis3=jjv z05L!e6b%M&L^TKUvS@foKIY9wv|2WdG|QW2q}M-sfwM_HXkW{RH2Fsp(t@-g28e;; zzyO@}a4HUYQjRpAzh?k;b~pUKjJAmrVt^PR28aP-fEXyM48Xg)@kKQ^%8TYLF+dCu z1OG4p7hyEKt`*2vulu|(>mrUdjS?sLHpu zwx0n`$_>DE?rC|^rXb=F2bwz<#5gp@zmN0M^o3^9foGJtlaHUUlw~a@xEzGceGlFn>VZe;$FSzSI(U9m29K*1VD-e+;I`^DxVd+Q)fTQf z^-&bd#o-Q`MKQ0!l+#!Czujwr%j+A#^)AQqBX&5FngOR1v>@U96xjLj2!sJbz(o)6 zUOx`Jnk)y;L4&~q)xo_|0JuHu2yWHB&VycS@?-46(uX)PcwAwLwJ664R~!)@?O&al zBRo%)h5cJu>@-JJm12Z5M+djRU*T3-%@)f|U5)@WL>PS120~uU@u?i)DsE;u9~xi%mg# z{t!t2dH@n}7(_qp2V38)hcJ^=SZ_EO0!Fxk&+ZFr5}x5)XGGMI+sOzqn)DtZ2FDDSMGk-Uu3r`qwdXV*x06LUi*Ty=TqTw z{W*|k{S+>Q{)<0|-*p$_X9mKaM@QfwdcxVL1@LHNO6C}l9(4jzL$|#M?;gS^Bnyz6Qy+zS3E%XlCz>IEe1 z3V`DsHp8_kQ!~ec{=R*B%KGaHsqUk39UJcDT^mw{<=OXx2Vq21kb&?PX>^H-L+%c5`5 z&w&%yt{g0GKC?pHeR``b#wZSb3NzZS7Y3M)m1V9FwdyEHnp}t7o#$kY17h<dk!EHn{<8Huwme)PiB-r<1VWtPKP%JPE!t7lP+tCs^Hb1UNlf0FDc*!gA>u zm|x}rOm`m!qd%y?pf%f}yT)iRxbB(Ne^FkFn?h~H2z?WA`+X?NdFFR+((YcB^lR1_ zEM0I(RqC=}i1cp7(EJ`Fdw;O5tRIB%Zy@~24A>m-ICCFt24mQKWgKiZ@`NqD=R-t$ zgs@Zt27Ar!4^<(h4*9Sc7_k`7IZ^7x!5ODM~faSOSVScnRSnP3xF)8(6 z$R#NlmUsaMf(7Ue(9S+Kt^fY{a8c3_{;J)BR}@OZ>DLhjkr#L`t^xid;vi`FHVFD4 zfuK62VeOhj5L~M{Y_MMl8`hXX@VZ1;uecA^Dr-T&9vkrMdKA3-bpwx27T`8|8#v9s z4vsx{!tx{wn18Ml%ox=f#?|@)!#=KtUZ)>G+nQUUd5uZXuUSYz&N;=eSnb1m zBxLY2cKz#_@v`s}R<@o3E>ms6-NpqxVIg>JHw15+&fv3i5cqYw2L3bs!2i^C@SoBg z{KnXV&&96bb;|^+A`j}baI&818wO|8WUk%o@rQ1A;opY1^7nh3F9<(j*|90$ zP~{G+yx9(%_t}GML81zd&bw#wGF{yoh6KG-3Nx3^#mh#8|XY@D6j=>p!q99&|7L=5INBp zg>xPl)C%@7sOI<7pwj(avh)y!s;`AH=>{;nR9jedb|%;^MsRRISP}RUR+ZTSPE7`a zv)W8>z6s!BI0;1clEy><7DY+VeXqxd^wT7sq4pI^S>?YJYay?Y#7m| zGfeE51heaugawhdu=L?@uwC{F?BY9sz4uvgFth}R~HH^4r18rZE^ z0?U(~Vac#6Fh4mG=5%WhQ-hOW%;{BNylw#WiR=#T?>K?>`J14z?hUBxYk|i6CbG^+ z-uoA~k836hiN^9CXFu&%vq+_@U!O!?Y#~_AF)1|Gz@_8@k?PwtMOnpb3Iu1NCzvofnYi31z4JH z1xxpBU>Q>vES=}WoQKn4c8DI#bP0#){w-m0(jpiawgyZmw}xR#>d@C)1-eF71@?3f zG!ArNF9&qcH#a+)eca-_E{X;NigW%y%AJq?$o;7NPnE%x*Rx^r$_SXO{s1N`I>6)- z;V|h;6PRSw1SYmU0^_G{g)x#jV5WW+OmvN4aMNL6R678=8TNp-hhw32ZF^9&IRs_Y zzkQDsEjD%eQ@PN%^7|Qs_Zh$3pqfSpdGZKGeK`T6?uanTr3sAc*%wANSPCPbSA~(@ zUq2%p+XE*3r^B#&A`JGf1N~C{pywkU=u-6~w5?_i`ssH-tBozd#f9>e6U8Eba{ydQ z4KdKJt07O`z`!ONFtDQ%4A@!+1~dtQ{x_FF|DztzfBQ!0-@PvM+ z0UcuX0j5YmCv+#Y+G_(^L+Z&>J`{`maWAi)fT7zA=+VFwx>=Nmu8ZG7*M_H|D>neT z+PFj44QIZtJ45HB4CttP721|a22S}Rv?_lX)DLSwH}3-b%p$M)QCzv3YofhzMS0W; z4C23D*kAM!xQ}1i_I?Abln$`F^#QI927df4fGbsjd;S1)W352T=qBi{8Y7Q+P)xbw zkaYS-Cup@Y9-2*G3{BpoL6dum(Db7=O< z_o~}_*7`^!8{gm)bA9)L?bO&0y4MeqCx6Bh(!F4Gmo{yBLlRYKO01vT6s~ODv)qou zqnLM{3#5O+=wH-z7TYYHfx&xb$YY+;J=;R0tHxVP+g%tXE%RuWw6sGDd5n`{lCQal zY1_Bu#uKr#{?Odi`xAA98ul^LgB6{n-iwu_V@J0C6EPI0F-6}4bBjX0!iiQ5gv9dn zJr?@Tdal2-FZ%e()&2cnorhS;I|eIEdMsRtoA#@HP&@hhTP|xqM3<<=vL2%#`p3%s zlu@yBP}W#tmxc4Q*0V41`mqVww`sk2@t)bx*#D02XZjSEed1_UTd~K8Z-4*A@(#1aiYNEr>&PL6Ie*mtMCUW~S@(Z_))jl% zcN1A^O|icFMzO+`O89nNq5iF#@Y%9GHcoda%yXAwFTUqszvI2|{^&rgJ9Qy8o<-L= z>Dd22kNv;Hn!L3YcGf75Rjw#uHN#@{-UWH{f#NCnzg<|ePc&Ar`yj+e$CCa9uRm%2 z=QI~Sq&Z@_Bs$-x^POUKzLR;(5zYpF#tJDd>G<>Kjz6S5X-^Cg0|m)|u<}g*f*g;= zBEE?MVt^R<^9%@2MoY+tKktLQdVo`Q)xf!@USeQEk$X0?@ZkP*L1Dy2dDWic`g8LV zI}Z-Wp;hA1ctIq3KK}Mz%cACo^ufC~MJ*@F=lACfRu!jVGb=mn_4EZUI-7xO&!myA zzppE4SU5Bk_H{DE(w|DAe#2onV^C%Ct#J58KK-6g`X?qnk&cT!AT&>zDr}P`qr%ZJ z()9N@IKd@h%1}^m;fQwmmFjX4P;L-{jvn^62+Gf-T97AyxeZyxD%3FXwQW z^!z;Ol5d5}H}dQE{o-49>&$~S{Z>1N?>UOqha}|}XLx@0V?2NN zFkUQ`ikC~P;?3E8^Q&*_C+~BC?|S+R-}hbyY4>C8L`Cn;V!4-Zv+E<)xV}64cJ_6# z?E2ecNqCOW;~CzuzlUkpuHw0J(=gTi1g5&xz|>E5@ch^=cxh-yJkY2}-b=}@2d)2@ ztHPj*sNj2FEZJ)}esnr5mU#UNKdlHB71CDZCU(5O(-AL@Xo#s=VR&ZgNIZSa9?w`@ z!<0FD@a)4!x#@%I6kc|Uf_M0`dpmr(yEZ<_D2*BVWANoD+uY`bsfz9JKr$>AG>U0Gao>VNnPXt08;=R8y)o{>T$J9p zhg+9_&S`9voD0CXWzLvzRtFQCPsM#1vvBXn3Ano=Q&B|NhoZi!!kTc*cj#M!^H`oWN>-WaCgh~f7G|1R6!`W{C6 zN1=3jb&QWy!bHn@xND*(N?%EFXTW&GFT=Cy(lY;f=esQFM!No^D<1jeCU!dbH?z6X z2Dc}j!c8}naZ|gY7-rTE!`i>aO_pbIQ>}Rz`t~A*jvkAl;ny(q)fx=z7lfPCu4DM! za~OV56}PQhg3)}3tZ{J9#u$tmbqTjTRl@MM!!W#?C2kU3vi8&RAFoJ@+-o7E&*_>Q zy~MeP{6zhLT%T`a+-@H6=?#=_osBWE?J#nLH*UTdi{UR8V|a%W7?wI7L+(_;P>W3% zR<$dJz5a;d+RZUy)z`llOaF7f{Oi2<3pcG*#jqh?+dNUgh<)^Z@f_|e=El#Q>PQmz zy=HMELvz|+9Lq(!r+NDQ7N#6njK?DdOtR{Wht`k5y-TN~IBhk?_B@4AD|_J<$Fmrg zwiQF}dSYnAGz?qpgPRt#!tkTY7`C<4_Znk}qCRf$eT2czbHDzt^8J3=&fW2j4_oty zkJ{$QW1FY^&f}P+8{05yEf*WuRjPWpt@QX1K^i=DaMr%!z7$u@9G_baFnpUOUYg19 zl9mFVZyteXp19+Y6cH0XoxlX;_J~@0a7X!r7~!}YL!QN9Xr~Dn`g}2lZOHLAVi@do z4g(MD#sG`O7*I7Jx3N&Yug_Xqv~FOg4!ldt-u#9kbNDEec6@x?XMXSHro5oMi0`Pr z8ah3XWD}M>m8?7yDUF<=B9uGYhkLDZqqyrQt}17d7Y*>ZLsd+N?wAy$(03 zowwAuUj^yD?K4Tk-2E-h(g|1VOhHWShKG8Z;R#P)JRNcnlgn+zWX-O4=8FoR9_D~Y zlm31$0dAf4^*WDu12@Iwc+K-rv<165qjq5P= z)hIku_rt5u5}rD3?7VLeWsyL?J?-H$1gAaP~C#_ znY8|Wt#Mv|MOuQrb8J?|vC zM0&|O9_s(sm?7PMT{rA?J_zSEHbaY-WioZd6}MNQyKNivc&|yi{<^NkQ9H>BhwGVn zOVzx8_#IBRd&miS(*@h4f4eU!Z*fsPg=g+@!nDVn{VGi^IQjs0k(-t29rLc+miZsv zmE|KlT;~9^|GX8{K5Wk_qh;aon7sP0S20fSRJaQ19Cu@jH`Bar!#!y!G6(5cW~5V} zjZ9q5ybsVbw!R($6$=z)}p4n?GWapzsL6t`vNYmfbl=PE- z{e(!b{h2;-YvV?ARLeg8l*&#))y`Fnbjexx5U zKnxHA!~iis3=jjv05Kpt2B6{nPtf4y-_O+`t@B@NI4~xPbj^QV^FvcmTRa|G?B5O= zD<d||R^YMFle4~4HX#U98{DIE>PC+||V1TA3pgW!itp}f>x%*1;Nxpm{ zKl0ZPkVrD1*ND#0y?YvT)CcHjyBApMV_?vfw9a3xNl*FH6KtZsy{ir;q^oB71D$VL zK&R9m=0hdx= zV0De_;4w}K)+qJ__r2eKt0u1+vMxvd^9};0@j9M0(;A&q%pl(IgtJRm<+Pv5bH__j z(+L7QF9y$5!@#Fxcko%=47^XzmggKwA9W)5(#M*4d%ABTYV)k-cmp|6z(Gyq`RVFJgSpMLTT>ocpKh1&m91N)o^HYLg z+NGOd(f?9byViHjChIotSw=6+DpkL?N|64`9Xg!(^v+zYV_;UD>`T380af%uO%n9V z3(ncgv#+z&$4fI`-Ir`#6>}CI6vHGfDzc;jy6jqimCSljZEO@Yw)z6=(}!noN9)A1 ztQdepy7yt+n>a9DassBM)&l9d@vRqiS*JTf^P-;C{p0$I8)oSz9yj8QYEI(<7l(3@ zUM}3GXC|DR+XHUkJ~K`Mz4X_QRM*$C{-C$l;6Lw%WZh>iWY$+rnQNJ9%xmu*=Cd?~ z`RhGr8DpLa*YhvS>w7{R*G~H#7hYDGyLj&*cU4Q5lca`oQ`g&b3L{?WFIWzG2NX-`e&9`X z+mzaocrz$yIFrp&87(1Tx=&9hqy|Jmy&5kFDfw*fuv;nAERIPVrDV zvHB+&(9=nD(6_|?oKg3R+=VjlnM%qtrgqVk6PJc@HqMW@l4FDPTj_e}e)Q?4oe^In zGuF(1nM=+u-;$gDV7UJ&=odR6H+88FF)9xXK##;RFz}tRJj6mV(3~h} z2Kce*l?r-H8jm<928aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYK zhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$64z%RtY$Q6+j>y)V(zdQ!1@ zM=o*jUk*qU(u5cw28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYK zhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28e;8 z!2kxUx5@4$UXHl&ukETzhq0Gmh3sWHtqai~Yv;6&%8LdsMZrf*QMr|yJg|lN8LXag zC^vP5{mqhcQ;+JO~z-o=Z@8SMRdul`65d*{kF+dCu1H?dKVgU9xYg?G&rC4cx5d*{k zG4N{)fK;^u98WZcCxZeDvxZ_ft7~H4Ti@>Y;zQh3m~)}ne~o3*jdUXhhyh}N82Dcd zz`geC{#PB^PaF{g!~iis49GhJV#i0vk=4q>j6xv>niIwa{q6f1TX2aB4nlQmh8^#WQ4P&mU=hR10 zEEikNFe!?86{ehcQycxvcp=4c3tWi5mmjf1TsbF*TQU$f4Fd2laRXc&zJTrd5LmFK zC0IERfLX0K!qj0SVSJreU}jYjOpK*4!t+{wj9pmz5P8iyg(cRa94DMJzYI4=x5~^B z?ri%u7k-p4_`EfSRXu-r{0E=rHsA-^5aizvf`cDGu(=chM-2l{{qx{7m4WSrzOZ27 zdzd|F7EIOM2xBj;f|2UUFj%n?^d8g;jOzULqcMwWnbgVaf~6ml=^6 zFPyBr7LNJU_)+W-x@9D6PM8F7n+)LMa$9(@7vN$k3)tP{285r9fwiwsK)}Zj;D62@ ze4X{cQ%?z88~TFdGAmfR+;?NRPMPrcJa}|r4W08Yeys{;qMt3ym+B!ty34S{Dqflv5i z@NBCNt1ol~XW<4oZsB3M_CBy4zZIrkoC;%N`hcnE%IEFDc@uMc3J8ML0wWH_!bY_ zTAYXY2lq3_f^8lXU}NXT5a90(UWPAVwZAnupHYLA%`(8gS2Qf~+5}dYuff!P6~TP& zbr|}}6#A6WfR2Nff$qW{(738GREsJPC7LR*i!F6obLWSJj0jj9Ch9#z5jsejfu;GSv@?#@Qw zdMFv3j9!7`-Pd3jxCNHZFo5~pePLFmS}>`4Z!n#o3WNJQLQmK6(7tRN&{<*(>N}L6 z+HgZC*{vG8^7J&5{MD1WL0e{0V^miEMR_T@D#VFy>R&`p?M6j8&-~5}CeGaqdp-NX zC*#_D7n@T2kXudjdyMS;!8o_`FuP1|u&F*6mPCE~EeXu47XUVMLt*)RD_Cx%0ZVKS z!NO|O!Ro33%y?o7lP#^l{H7}mpZW>&`T=}I#sa( z?ukD%kGl;G%q*Zv{52?%Y{G8ptFgWHE-=4TH#V|HC+=B|>TK%~pMuDV#weU~3bbab zK$TJwSQXS&)*eC=qEOOY5;q8Lu)%v zXqK)94PQTpn%g~~!p9QqeNYQ_Wq>V<-{!}HKCfW&ADFW?QB}ETw#Yp=b+sUJqA>~= z`&oYRi(Jk5g>S3y7PlT{mC0hs!nY-|<7JH5Yj01e@M1gE>=FtMyemQDPHjN5RwHPk zzY4Ufegd6ED?nGVDd;XO0j;A)g0{~wXsPWEP5rKc+J?qZSNk0(8!1DXdw1B&tG?`_ zwHn(sPKEhdR$$XBg|OCkflR^Z7I*kjOIhSWeHKp6zxR!=Y3;_hvNq(^s(tx>Uw&`1 zfYBqEbjd1q!77}+elh~ezR`m!AudqUs43Lh-5Tm?)Pe>E9-#UKK#g++HBS*5-gN=h zisL}#NoT0#u?dtfuZ0S0+@QoB753P796PI9o?+y6=JQdHnFTYZ6!e0N7%_meEB}!5 zTJSEvb0}>6iNUVv;?@}l3R~Q=j+akfuglkTZ_Ip3u9fvznf(pd+s(eo--Ef5Y2mi&U96in|p4HS}zF@V)xm90Q^~LCd$VuME5W@}y zijg5Xey>E{fyzPLL< zsaf@*gqjZfWO|Eznxx7;57%d3z?FS5;n-)bE9|4zRrdO+A$!`a8M_^FpPf5Yg&o|n zl0};jVE#vS*&=0;>Hbxd^Xgw!a`9!t5KN`O{mWex*q{T7spXCe>-pSQ9Z+0uq zj9stvkX>u}iCybFlwEU~#;z^g$*wNC&(dCWW9R#CV5e2>*r5il47aah5fv*jFPm6q zGwl>Jx+k(KzL&UBt2^i>+}F*_8@223Kg*x?6^(QDy!r@>L6P6HIx?^AWLcl>jdf&u zy$`ZI$5YszLHpSrePgz#)_oQ~dlifGD#3)rfh>CXT^63vgate}!JNFRu^F|^m|@*U ztnsl*++RsMSkr68>h~(L^rNWu%~~H=z`uGX^WRtHML)J~#W=R^jWt_qr@(@`*|NZ+ z4_RR90~UCqJ_~qMiTQO>U~6taVNTs0*uu#X%w$n@rgKP*gG~u(u>Uue#B;Puwrx4sb^fy?9fXd^PrgW&SY`dj7#5mo)cdm=hp2* zZrxZFZp$N{+jIUccU~cxdon42ds|MEdus5GOFMs-O>w6CR$o8U{|+;vL#wI3)1KP? zp8ntK7n|(sAt`amJ2tk<-k8XG&ic#hF6I=s%;lzx?#zY3e$Ho<_4jRPJAXYOJ^zfJ z(qViBsew{Asp{wF($WvQN{%Fqlq_`{5qovdO!DNxvxu3B-<|SyJJ0;Xw;2@M=Jw*Ct@mcAY)*12`C&eURb5X3OnXB*Sh~cm0 z_W5-}9~TFq`I`tq#p#q#sjMF{CR@hDs2&DIL1R>P(?pFE^gXWMy!KZVSjcS-;tTlwJv5y78JiE0%X?SytX*-9P26x}OHs%jyV=jd&fWih4w>j=9P^{RM7xi4 zy^#Jkln{e59*Q0kQM9=*LmU(R>_@B=mNL}$uYfwsG=3JZ*s4FDGt}WDfUXbFSfb)Q+DJj_U~g6UM!QM$)zUWmuKG=*W5_SzD?`JhxP1Ui^~!( ziqqTo%PbT1+ddUpB`dMXtPk1i6t;CVIv7#dVy1Wte*TG5%^k(zqdSP5`ganwV=s&9 zC*<;)cW&9h8ew(OfFGRO`c$vrnIp|*qd8WJ@x`VU(owg8KpM+NW71VVbrp8jW>~#p zFRX2rL>|efN92oad=XxS_QulNs|x$t(DNth8s=|(x4*E>QQ^v`gTgDNp@l7OidQzr z!s4W>5Ig*m@FZnfamtx;rFlaP5Cg@T0qOn8or-h*lsnCTVt^PZjtmIVlUEeSyea40 z&3D|nYy^gDRKa5dmlrk7goHzyf?l=pMJ+GNCwFZBOeYM}+l-qn95A?l5FVOl`?I=* zb)Vp{;!R^#tFx5D+rMr9mvzd?J4>9zx~7dBNJ0`q%6eVE2C#2c`){HbNIvSxu zRV(3b$b9m&=y*zA=FUshDC3Hi45yJ^Kh{fZ=$vowA;Jgj8a{|Ci4QZT;!}-M_$q^b zBmW1#SB>q5y}*Wg^uEO$JP>R5Y%Erv`mbkOiRyjU<#enNtG<{dR)S7qX+wW}H+nrj zd3^xy?Y6hrT*q( z`7&{0#pqgMg)N;#Wv%nM84F)FT!D`|Ex@~RH}KZgK6p#@7~VQ*iFe+t#d|vYa?=OZ zDLAi5>;GykDl}^#mfX`!EID|cSjzQ|sL*9eZgs-D0Xy+VtEqT3v?*To^8ETg5wCHv zxouDN{_6*6QgE8!^Oq_3^4c(b^=LJ|YWWhMt?H8({V^?Fz_eYbFwN5z(;SR3&6TdH z(Ya2c`28fFt?!0cE%xEJ{G6K@s7}EhCkt9@ROl+R@2TOX=ka)SR833{-;tRYrtCd|$tnl%ctA@`GIhkb z(f&E*i-$(>cznDLp80SbQ^KoZ%9OWwrp^L9{>CJyHdJ18IhBRCU!OygtM6clb;?c> zE1P=dB?jEzvjU>^Y!u9DX12p!4WFa$eewmRBjxH{?pd+Y@*i>?;JpK*&vuqWNP* zvB`&Rxv8632aoLfhe=!Y@0zW#sfjj`dI zQ4-i2rRmQRO?n|t>+=0LC~W+M(zan3d$|e5&YX>?@b}#KzAkP5I)B2QHI0SM%2uS| zKN^bjY~%8x2cA5riKpG;@Qi%|o{O}{Q`0}G`6gyr`-=Ngv~w<*TMf|X1Bbi9-e7{dIUa0w z5)Z9EjY%D^VbYTIc@%c}`1~-N1?^r(xMHyM;q84U4;;qU|h&yl8;vRukh6J;Pn+j8IgnjgmNj6l-_D-G|;{ zqL_fk+8g14Eq*8(em&n&-hweM(HQgee||p%Bif(Eh+3sE{AKsN#8aH>Vo=vwsNVSz zG%yb1Rl@r5gQaiznH5&^v*O+P@ZK^fvCMRJ6WggY!$S#3i+cpnbJ@=&-JT)_z+4nm43d!RdxR8F$ca zS9o4D$1zb6I7`(4Ee~$Qxm%=YJ-r)RJA0wE`R2UzLv;(zXVUujwZ?I?m*Nz$70#$N z5@&BYg_aMK(CVoJ&h21=b6agit9WQoP{&5 zC*tg7Mrc{e6fN(ipcOnrtA_e$8D@ox^zO?#7V1CuY!p?kpl)E9%-kfERb~ENV&PVg z?bzH-8HazpM__$(9a_EYgmYd_M$1-yXz6T)mdgxr&R@52X%};}+hSf+HK)9a@4Q3K zc_EG~)eA?g{B~a%Ez~`}9{2m9rFNd~GZRC_m!T~0rHM-4n2|p2JUpu``;sL*?2&z2 z9@eqJR*5{sK`|8G`6E>b9xv^Fs+ZJs?M-R>K0%pYvcU`LFuQiCS-!F(S4YDrjRDZ| znrl`WEeo&bOWt&@D!I7ThBY5^nez)!;9fQ#&+GGp8kiJZr3YNX7-q(nm6TDeCM>#c3+e10#Ru;WE8!%vg5n5M?1#{0AGVVmTg4e6^!GQXxO?;22izc+tl4Rl-X^(|i&XANYXI|eG&^d@Zcn*`CrCPBIki7$ zZPPM$d=zz^KyvvS#C%!=qLv5jdcni4Zr^^VDX)36Ua5+Vf9=Sc1{pDx2MMg!a$8nc zMUmAz{4q0TR$*WyE4ki)d;KsZD+g45vovd+mc)H_24G*ap0MAj4eWn2680S(n|4h|{;{Mhc5x zjTREU=zZs3|0WiscZF>%xUMr3l1xv_OWf?yrzPxm!^bT3h(C)P+o& zryV4zbcHp;nt)rZ6}WHL%+js(U9-u$jeC~S3$seq@2wJ~|8j>8XFk0%7wZ_9RVVvW z?^!?&Zy=z zE^u)u7wP4~ZF*+Hxw$>y2JSQC6wph5{YZ6vE$a_@dky|`&6IT?)q+{ujASm$doj<; zKFqsq81tRnhOLW!$hIm?VR4s_f#y)HO#WfPm#W$46s_m(7)Cn%zE0r({w&1!RMB~E z)vfh`S5CS%7T5Ls%kui35XZICe#eEERpu__oA2$v#`JVW%Defs_|K6w9J3cNYnh&lx<)67iZu1 z39Ex$*pjY|+1ic!VbOt>Fvz2Amd-3eY?ZbCvn6!WGXb3d`mPO~(-+7&{m)p;?LKII z!yMYGjn8d;s+WJq9@6s9Ysq))w2^%H^FELVSx)OXW{qx6`>6cK`jajN zuZvjjb+g>)j(*M`aD|RbuIl#liO5Yos#EZOljbE#pie}ytaLz_)>L@3Y>2G-r+#V9 zN1qVt^PR28aP-pfEDP zrSy#}jB!)UG~b8;Vt^RP8w0G@^eL>t!m*OKdwdJCcH%ha&Ei;_u9-RDhV>N-b1oEn z-WVpmNH1c57$63Sf!s0xy*^v!wl38pu809*fEXYK6c%Wo${f#W7dO2{ouH)Rmb1L%%lAL{p69in@`J{flyywd^vo`{t?ftVRcQw6 zTjc_08Jnu#?fx2xqWJ{L#@?r-m8zDJq@5il>p0}8f3a1TCv+6OA`w^)ry4Y?H#15mY zjD-64uCO*OHgIS3o^cb+=jr!)m>?;+af4)ob7iT5wZF9exm4-Gj<2L^XBbQ4&O1uu z%em*r*oCDJafEBt!V+syjuYC%1%RHVV`h$^RUyZFsL-U^7Z^Bi%#XBy+WWV#Y4abl zrsnHdiGvNeXuCNaU+c7<{%u!@T93Vwi2F&>QVH==sBl3#bHj6~@2qB0aZM@d)!3Rs zsSrcyIhztc>bIzti5Ah9MeCsPMK!;|loxwwJ}5I@wz!QGYc<>KN3pXdGozV@N`1D~ z-3%0By2J9V71^C>_1V;rzD!l9!zF)g$<5O?(BC|4S!}=xXUWWE&m>3As!J=6s3L89 z<-K&eZ<5p_y|Z+O-YRKwo$J!KH3taF8EHcEuwg>)(b0nSqm{xW?OZ)C^GER&rZUmC zNdFn+G?H>=| z+{042^n(>y?UMx@6m~x`WsHWm3)tW^$&w|K{2ha6<$Lb$tIhLfUf=g^ThHg_G3#)C=i`84l8@rRAi1Z+tzs8Qw~o-v5U5vqq#)DY$}Azm&S5wU7y2 zdYB5s178TUH_jGTXh#V?T{MKSFVTWz{1hRvT&cq7L0)4PBdV7dH%~n(MtaaQZ@;pX zTm9fc$R)m^Uo5Y0vy!*aT+NSl{MR#tbK6gD>j{-x*Ok6iyDPmiY=HDiTdmA?(vRaq zrH}OoNY6!SN>9A@lb&e*L3-v+CFv!PDCu42+0s|x_l43O<_k*Op9ysj1qhm3MhN^e zC!zPk(Sq5bI>OwAD#D86)`IuS8$#&#enPCmJt1*#IpOH>mbs0K>gAr9qM{Wf2lRty zzGi%V&(j5wlb|=zP0;ADQBZkTOQ@I7NNChuM^H6vAyhxKK~OBIDwKJlE-3UHE0i&t zDwGdR6O@t{3Nt9(6#3oVX(cbFyX0-urTcDpA9*+q7KH!uGzOg6@d=LH-piM4zEak42~);g6oya!B=o#I zUFbMyx6oE+qhPSmU*M($30fPY1kEaEg+^}I1vSq`g4*ZFLgPS1p&6?yXrEmu@EuPH zUA!6y{hn$Grla))i}xpmWfw0A&Wm0OzUAzMkl~`RqumH0{%L@4LaZm;G*%VP-z$*$ zENk7U|NQ%#grda-;rX(+d==ASyw=g0e2pnX3qoJP?n%60UADO}sk*i>s;h=DbRI7Z zcsx%q>X9b&xOG1uG{7VY+RcFsagcVeC?g zU{;L@Bb0j!##McVq0WZF&^=!SNk;Bxq-;MG-MSX(nr2w!9*#2kAhB-W@Voc7-! zqb#6=Hvb(;lbCUP|#Zwa|iI;~4$a|ax9UuR+$pqe@+Y``}E-Q$!g?NR2!cOJ$ z!lnwPg}@r`gf(sI2`;7g2`g7M7FN_#6C8(q798e>3ib{a1iSb^!ESV%VCQEk*t?Gq z9LIeWR`C+SwecEZO~d(uU;in>`rVQL$KH9sbM?J(92KI_E-6WomT=F}-f5S%hW6fz z_S906EgCe?BIA3{b0oV+OKGZwdEV!K z@Ar;#ncvzqELbIuMH-G_XXTwcOFtNJj{J4@NtSq^Ob<1n^!+c4%gSfBZ~{(9X?Sk1yd2C*Z{ud&2lf$WCv zHufl^Yo?!Yz&xxV{YBfd`Fnu|EzdB$yl}EK<&XKSYR`NYG-EyoPB5RNvzSlVSmqPt z#(b_$WWIAhGQUWFw)fpd=5Mu_1#2iWNS@Ckwk~Ez?W?g90jex%$USyMVY)QMguY1M z_@Ej-bDEY~;vh}AVL_ViEHEvN1r0dNg18L}x>$w<9bLlf`sPWeKbLurnJba?Az=~PFImLs zJ}kmGorPa;VBuTevGA7_Smf99Ix%X=EUr;ic2ZG}o%`a?t~a${kt26VYh37;bd3QX zyT(fzbHd_dud;+2D(pmuQS5|gEp|f3lpQxsWC<;vvSSDCuml~EoiJI;PA_c7l1?pW zCmmv?F%I-ex_Fm`e6Vxt8?Z~$db8xnDJ=QK19tiAeLk1e@39LCmh7C;8kW>zE<4vy zlb!$4kwpdI_1bLb?S3V{T(VlKe)IiG3`MC8dlc=;(vzODN0ocA`{i4(+YUq7P0L3t zW!7DmZ26I0X{1w>;>B3-J0gn#Q0!3#NCf@|BklRfO}V_B@gXl;=Tu)7%E5N$I9c!$ef+cIk2^Up(SO`$BLn|u z0BR)PLoIMTYA{vzV{dnM%PDp&FTUdfj&-nu69eQRwC_i_ zpV+D>vH%@5zrEAED8_~{{rcF2eNF)oav==D`d)*Rsu$p%rPMyZhk5?>Jfn6$)(#xX zKLb~5WAOU08iE@Zi}!9L3qNL|IOzgoE|vp}!B?U0+p%DA=PC>z>sg%Q$5@N!7=YfY z7SMe7X3)|O0fp5KS+Z&rvQRu(C{B3?%g8Ta7QPGg_q1UjkI3}%Da9#o7;FCQo4{0T z07i@Fp`Q7pC+a9WI>L+v)?j|)0p{$-IpfNj`Sy-BIJ%=7#OZU0H*;QjvOeG*AR1~3)cDbT<10iklK3z zT&t=8SBINJ$`V6JoxU>HZDVGvg77^@AnY)Qu&`bb#`;6pOPAcX$9l5ENm0xdob*zF z(?i=qV((x$?Ue?{haAXDoDjM=6ha5QhftG92-UZOP{Sg3&s1LYz`C+Co*}q-6dW2K z0a1O{Z(+;X9N$k5zSSGUev5?=IDHEQx2g}p zN)O?ncR$#FL$9FxMZ3joOo8g_$GOQluU2|2*XWg}`K7_vZyk8f-2)y|zP*Uf4WL8{Ff{f%__N*z7z3 zHj`)IZgvISc9aIU3x~nIiY2&@w}j30UVj}IB6!%%gKg8yVaL6xS#}|?+A8o?+zDH5 z)d!EQ=HQ{A2Ah}X>YP!Q4P5?}Pt@Z7TEMFPxq4RyZ?ECWwGHRzRySZLmO;q8cnAy` z4hKHyfzNROue}3dTlpTaRo@LfKJErLYddgr^9J`uOJTG85b)4F2cF}Pf@hn$|Lg}m zT*krX(HFqI;W=#TR#^cj4BJE8 zk!29y{4zxJXbY_JFgRF31NID<1Un47fM>Un;8yu9xE=2S?hX_-FPs1#l1kv7tohHr zz_sO5aNg4foc6c)`mglQ?fChxT>VT7x~2SJdbHYR`fy`7z3lNat1kE_4}}B9_hIio zIoL~0;a%5iS=);HlJ{OVJhvJ^h-DmHTv-avZ>S7Orx!zFwKWj$=naw2K0?%zQXtk< zgT3bGVf)0^;I7BPZPHiX)n^rJ~{WLeQUy*BHa-T^15!R2!u4a8a3#tNE_S&CXBNMOQ}@=vi6M32NUAkNHr@ITGge| zmT@$8k`~PXYZ|#}ItzZR1h$6i;1{O~zMGGNk0FCyUHYJ|IqUi(ZD4E5rVxL1J|sUZ z2dM-4!u35WaBbH$xaiag&bD0&$FGG#{HgEnFM@57SKx85Hf%m$`A7D$m%-*{mBC%b z7~IR+W-rI}yyYmnUSiVTx6J3&Zdh~6AABTEurq!>c;B4@o85}dxdc#F^2x5r@2rFU zr{&z^$dGGdmL}k6`TadQu+iatRyi*Ju32vNfSq@`Lu{XqkW|hGE*-iCmscOmZQHDR zuZH}Jd`0#4==@}fD|DZYcvNr~XT zq8hk58H4lg+2Evm030or=EV-yExbIV*1xYcthm1t)*sOZr(5#iF}nk}4~Yg>9dB^% zrl|Xp#9vlQB<`e@7{-H#wH#&FYw=)Q1a~~=&P>{iwu=vqf!rW zn$rY4cX@%EkvlklZUjyyr@*1c32?Zy3+z^>7FEqLuHrlHV95NlV6*EOtn~HH_2K(kY!*nadbi2N83ez z?6B&SBbk1~4XloKL#FlS+gt~tU7)sDyVnr&;dnzddtL`*jUXo^i z(KqD%cNt)nT4so0y~0K30fwTX;dsgD5^=w46Wb$~(#`<$i*A;29b`+^86Z=vMhi_owGdSNPnozJR||UYl_)VDQ(r7I59cS$ z$M0!~O387KY*}YWR{a;pJ6(zIkZ;c#kjfRi z5cP&QA3w5RtnP6o%iDe;!{P+eyXiRG4;B7?2sQt6nv;!JUy@Zl%aTRoT9C0%bxEDd zorTM5r(jNgo)b8?^xHe2P^X{kB+dE|j{)b&W{sA_aeo7{(!Fb@uR_%I&eH7jpYn|> z2L5esckpYh_NRQoet&<=kv%h&h`*l|32rhE_56K3QA63$kQ{OsNnD53d`w0WImfjs&ef0PDdHrc#NOb)u5?pQ5+RtgZ#u8S46_xpCvmMvcs%ua2y z_|vgq|I+<^Lx+2qQ|&HNv)?BXR|gW9dY$aAe4lLIx{55HFq(7?Xh^C!e0#5?5OlbE zcBY7i{X^l^n011_Db6kMlYLxv&2as%F-glb`~HqVa%ZjApU{RdZ8s7w3?k7L_mRj* zZvw*(6Q9#xh;@j^pYR9!{ELsGtOa=#C!ZM~Iaje4Iq&kX_x75o?DosA_=$V)CgOOb z_P72#^@b6zJO0Ga+Jyv7m_QEq7D(*TIwV1F6}i#TDZlzeJH>=d`^cZv9D~6 z7EQfjyjjuI#EBjfS~Pwq_$q1$m+w6kQW_Zvl5@Vor0q6B$-%Eo<}atlv8oD28KxFS z%@lSRC8b`>WLfZheTL}DuOn8=9}|0PWn$l_2C+$fN#>lsOr}N!k~PEK$lai71vReG zE`DeH4gYL?iLoUe? zXh-J8Um{K;rqb@!8_|Z9+Gp7y2dg&BTL0OSYIkZ&Ri5hqtPXC&{k1ePKr6a*rkXnS zq{%1r1;I%p!hVozWB?gJ29N<{02x3AkO5=>89)Y*0b~FfKn9QjWB?gJ z29N<{02x3AkO5=>89)Y*0b~FfKn9QjWB?gJ29N<{02x3AkO5=>89)Y*0b~FfKn9Qj zWB?gJ29N<{02x3AkO5=>89)Y*0b~FfKn9QjWB?gJ29N<{02x3AkO5>MX9haYvz6;? zeO|8f{B|-imnG&h=Uk#Ts0}iJ3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@ z05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c z3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5 z$N(~c3?Ku@0IxUsM0O5%pW0Qke}>HuLf~j$pX_Bht;3+Q-E!K7<;a?}Fu(^)9F`kj zU`t9IIOx^QRoy;ICAq1Gb#NT~2?n_0jB^FmFLW7_23if~7nFUpi(@9Q4Dfz^)@8Nf zb)VnLTK}CTI0WAYPf&+#Z|i5b1JxV1&;A+LkymM8fH#hOE)9O54>%r>0b~FfKn9Qj zWB?gJ29SZ`!vOd;Ig0r%KKaI6|CMV9Y;S;i{G|tKkvA=bZL3;~hnj9c-SVaz>V89)YPkpVj4GoCYlhV05B zyXZ4=iwxwA0czWBK6T&Lkvg{7EX&&QMV71hiYIq6W8hVqu94+f(D%GCjC!G7$N(~c z3?Ku!Wq|toe1A?Ww{5T<@`Vf_1IPd}AZ-lrS@Ckx<`eo;@Z*Hqjb1~oqL5gL=hHcRpeIw&E7Ew8TrCPYtA6A?K-;W5b%=q(0)jheLl6djWqdFTzrxA(w;!t_B}(QH@uZchqn-m=(CywNKXj+t_$BIcpbDM6AdwDp zx&s&lE>d#2x;Hf0hCH+Tsi)tBPGj=84 zkY2s0#wSa0QPT zoeZ%Q^4dRL5g$qy&R3yxU=W?;+%$W8+AqC69qP4|j-landZHFxdDW3RuNaeAhpyY| zNv&!G(-DV;(LO!;(=Ii8&~{ZC(dO!RsBzgTv|juPTJumtTG8wPE$yK~J{j1MJEx7v zN%I@z;EhLQ)8c2OUz7U6bGfo6?(2t2>?dkv@4Kk3b59=&?qM9py-m$Ict;i0I13{# zQ-#qp>CNc21=$zvZlFi|l{!Snr!cyvs&{5zbj0U9wD;~X+NtIX+Tyex6?DC6qt5lH zUZ2af=J`lkx!-GAR_-uWczcRGvvniM+wDn|B$@c=%^_>rpC)E*2ZSe@rA!`IZ!1~l zlql*Qy&}5!tPtJos}y7`(qNnWOm*h_d?#?`x{}AgNRCMBN;d6tXQR?pE&2q8qs^4VnN0sEw;I& z+Dy(`P34F6n@NjLvfzi%qF)k;5jr>sEC5}o19+YMII08MHPbI(31WG zGy5VLdrndL*QaRd^utv3d>g9bVn&tLtfM8Gi{wMNFL`Rbfu#1YLK00RBg>w$Epmb(0 z9WB_+1}~WqA6-y=WVcJ)&JH92J-d>KBZ(w3E{OmyM$jB*aUL%! zjgJsV%-Jt`U#4Pmvna8L?!xSSE}s>*}a96_mzci zk_jOtmJXG;^!y-}JJ?(t>S`uBDFldOYa(9RUPk<&XHgh2VIO~SB}-aBH^oKJdhjG@ zmprc^{T64`kr%a8K1il1q?**(ctTj%ys>cnXcHpWeJH6=nUdORFNv|-7t&_VB+|A2 zTGFe-VA6AwGBJCWPMQyVLiA%g5w*+pgzIZx2#(&9Os=%l2sw4$S>hiWCTcmmixZ#K z5IsFAieXmI#q;J9#k;G<7GykVTQ+&m${Tcgb{nS1Rf474KWCK{)KXld94B^nGnaha zq%IkK>ReEy%V(jwbBbWI=b+$oG);*3ut&HMcTadYX@rnr@{!1!+7UTV6XA7FJ0T@K zMmRL@l(1f_wNT}RTcEh!O42mCx#U}BHOges!pXnV=o^Bp9u zzYGpe-+#trVGTEvQ(EOsK3digs*W-hgw<1p?#~+u7E?5Y0c!>cZ9Hs+ilxt*?5Lm; z-2X_7L}@~@WYh9il7|5vVuOzH;*`)z;`Uyh#H4c~Q{8`v)v13^JU_~$i#ZzOWdT86w>su7YjAUq^^zgviR(uxqjlA}USFS#vIZyzP;m9j_T;@?GbrgfB9 zwqtd%*#%p1+Vu*eYhZ#Hex|+n_H$Kc)S(@7*E>>JF-dzr{7L+a80a#DOEIB5-J+ZOb{D3JSLj-lo#7}TPF73#l@KsxwU;)bgwMUT00;{HiCV)WTH;zjS_;tiz` z@wS6+LHdWbrHkRBln>FPT?29Ji|XQz*}>v2Hzw}7*;U*bb6wn_F;nzPd?0%FOBZ*& zZYl217%lQO6U5_NZiu(6)-m}=6EW%lD@s~mECn~t___J-q)}fnwpDX6VUwMB%HB*o zUE5YXSu06A#;1r!)eeg>VfVz?y(Ptj`Q^lOU2co1F5ASjio2yT4)m$u*e$BsiudoC zh_5m(iyyuW5kCYq5#QbzAigL)UVQjzi+EdipLkRKk$9`Kt$5$+ffzaZ+q02HRg1!i ziyx_m=RT$AUKgeXajfQ^kxbKXF{|*p1XH_g#Y)>4GKKdm#CPWH#m{5b76upC2kyHI zn*lcZ+)FlS`%c!Ygg@&L+?JUhxycOfMlr1lI1hmo?V}2ti{j89b9g+5t#ff?E7o*j z*41aT37RL;M(H@%_GG{wtfaUDl_V=e4!WrTb8}ajD+d?}2B?MDb-J zKXcC|qf7BM-a+|kGrw%HW4&Y9q0iM>;Kb`}@6q9GZ{&>pvW<3%?)c$?dxPBMmq&Iq z&rQ8QQHR}99m5jd#jps|vrOV>@F#pIPJQyU3Ps{tIP_k*AIw|heJuE!P%gLQm!}w7 z=C-ah*Mr4T5n!Wf4WmsKOS7NooAexe@YC-*6oq`i+L7&GwS8JvEZi$mEo(jdl84wY z$^IGFrH94B%mt5kxy%nutj&G89N?}iKNe=+`P~<+SauSYm#*|PyL@}C4?o+E+ltRP z;F6?ob5-+=5gWNpl`?!rLN!^o5Xv(bo?1R(!LG6lZwRgo3!gJ>;7?<6f17Kst2Ea^bsFACXsj6tRu@Y!Q!MH zusI2@{o{T;*XMa;nfL6z!-A4CV3W!ga5sz0UXJU<=NP`Y<{I?wJOUg31y+moi>n40 zckvwOF!}OJugok&oib z2j(7gj|>z&2B5x8uI}T++!wvvV@@%r$UyOB0JMDY{W^GUE5~bF5Yn|f?39}TVT)w? z-nAd?<3Ml67nTxR?nm3OtoZH|Gjk9AgH>S9_>&;9Wrmt)cTDqig990 z$bNPPU`4zF%wEmFyiZ%GTuCGQHe5$miaGO`Db}k3WQ@=p+hz*cDF<0LkdFcb|;ut9i1|aE9JX{S`g0vnUKzb zv<>1@65&kDx4HS@Y|215Qz-xvo<4vhF7tpp1x*mIZ2Mkz$mcjjcAf!8#@2w7Hnkvesx2JzR)r%OM<8l=7l?0Q zl~os)`Oh;vO2PYfvz<%ez>W*}+v7(!fHLr4#MkgPZWlFB0> zL}4TZw<`_7%icin>GBX#Z#PIvCW3f#7l_FV;gH;Gh)C?7)gL5$R)WLNCIWA31Y*K5 zkYvb%WC9-hXUkERR=CXl{s3zFHp`7(+-;-|w|Eeho4T2G;PgWyIFT_35-d-^(FcwY zx&8wj(sKhyE(Pr4G7t^aAh_#N2ySHy!S^>p$Yl)>YfT5XaSJfdf9-ofJdh3&Gb;$b z7YxCRGyxLw^t(B?ei!$8y!6B&ys6T+d1Z^c7FqFg$GUl%pA8ME8@-#2kN|S56J;%$rs`8#{ z9kaAA?n`d}JlFSULtxEdc=Oy7UY1OQrya(@gNmaewO=A!bodMxrnG?*3A-Ws%r)R% zUmzH~Az0<>zW?ZG2wAZ@C!Jw`)61~u@>JMU#vJ^TOXgG$%m4kI&r3D$pQ#I!x7o^$ z4HcPz~D#-`jZ0K;WhJD}uXx3ovxGVwXOJu+^{Yuyse* zF^zuCY_-Zqu$y)U-WqJ>YKB|5dVB+3F19Zq{hw(9W`Rbq&TA69T5ZS6oSDhXuBgE^`k&?HwyyYDyP~v>rlscFz7%GSI|17d zeuAjr;c%_r0?gCxpLU7ta4obU9;Tk0d_~WgQR^b#3u-FzMmePe^xHHZL{iugIy>D z-tvI}j}qYT%pgGN1q3LhWNpXgujK}HD?Hu6iY3E{u&#O09MrVT|HX4XdC?#17T);Ct~E4QtqOBGYkfTr(GVoo4iG#l0|K@CK>#&} z1GgT+{u3;FeO&)Dc`8o26R(8@J`WN5vg{Jnyp#qV-%Nrf8NT4Pvph)ZcZHz3b08q@ z5gbUr2m2fQgOAGS;-o#s`e(*BE#32WruM?o^u-080~WK}1j=+?1`WE|Kwsemta;TN zB%gajkbyS@+?xviWv|1&wBE2!%L8`EsTZ_AX#dYJSDbZ+$~)zO^w)&epOq8<6d4rlgBqVJlJ{k?;;`X`aj3uv>(C+Ogzld{TiDV_PmyyPw~Bz(m! za^LPTEg2L+OMj|BJZhaMUP*h2vw|LRX*-wfNtujV=1xo0N%nN2iWz&U=F$EnO#2{l z>8wCp-q$BCrWJ@&hso4JI{qZ_JJ4w5KOtDT!Y4;KR`#FPuS|3VkmZ7cg7}Hia2(8||9BmnnOnv>$^QZHI{TEyg z$fqW4X+y;)lvMJdZE6jpo!`wxy$eon)K)sQ74Pp|n3)TzXF8lV-mOmOCVs@+NJnlk z4+WP8(c<|m@tniA=dGwoj{&H4!D)@!qPEBYGJp&q1IPd}fD9l5$iVM0Kzpipqg}W5 zLLGlk$DirPonC*tSNCUia9hFY|1)i=S=4yi^>t^e@#6K*>fyFOlONQ*;B=>*mp7wk zeYeui)wF3BkC~`-!D)@!N{_a*$COCg<<@a(_GAm~tY${Lw0uLmeQZk214>|?@-I(( ze%LhBGyn9=4=rhr>$7N=8@;I6s%O-!>IQ1IPK$QVz;_VgeHlgiz7)DDI)Qc_dyATN zh@c(YB+$;sM$r!A+tCiD-{&;XkMV^zq-%eN`S^c6=rFTy&)d+BE&{kX3X={Ua zs1Nd5oEV@cGxky%zJNCMQ7%q#W2`vNso~o;)JSzA6js{OpE!H{WGrrTQh0a zgz8LgMfDma(*`}izpG1{{YBqoi!W);7u8k>rFEw-qXt{{(Rw`(NVBi#8*-nY4A4(5 zPbh5?P8)h$p^d}5X{B?oY29^u^Ro|Wv<2Jz|Mfm5Y4j6)D){kEP1$VP-fr5;^O-bjPueyO{HK3J*ZmC9o0{W01=!QWVbJlSNAPCEZ7?CCy$mC-rC#qSdzwsgj~iG#zS^8Y4bu`b|`}wk8UP z=Lm08s%FK(VwbeYTE}Ja=KY`fr|tSrr7b!yrL8aSp{?zt>YYU7)RN6)w|zyjSGh4+ zf2KVd@w^jhYS5KbuO3KL_0N;i2Yg7mHGN3cy#q;Q+tQ>=-Mzy5sp&$h&iD68vZz)# zcbJTyoBSuU`Td!;TGx*@uTUw!?f$Ag^0M3%a#QO(IjKQOP(WkitlWi6s2E6$)uxlO z>-P(f6(C#p8Q| zP6^mTn{2BrE%_!d%=eQA*779zggl8n)0b@Pb%@Meu!`u9f12r|aI*Q|p2Z<`1}6~Z zwYq}-uxM$C0sWAju|sP#IiHm;T4KuIuIpr#7xa?cdFx4@dj*j9HDk&9@~6n-_btfz z#8$+2-N}OP8|}*utNEQPs<_TJ(Ka)c#ZHf29Z~Jh< z4W^O^TQ_p*>1=XiQDySNRGrGT(xj!DMN+Mey1&{7wky6Y=Qa0q!;PI(A!IVS`?NK= zSFuM{`zCiRCm88=E@ixX&N-8=np;d>9yAn2Old2GtoF>RlYMFY)I;5PmqnzpGFzX$ zJo`GaKT(3X8NDRi)JG8CAsOI3G`b2l3d!@;O=i*(0 zzw-vc=c$FTapMEQJjzli3CriFX5e;=jP3MDChO4b#4zYo#l073pUy@;i5EFaP!jY8K#hR>Eb|-617m+=cs#Bw&>6pX( z%OPr+e_9$FMz1oN4ZVc!9aV%&rQQ?Gq^G3T6=5{b{|D_Qv<0i&9cRY6n8ut9gS%5a%~xk4@TUrXX|nJn1!cucB7 zJF>LTG_vhs8M>n8Tso*-Y?j_6I_759`p=fM<8xO^tnu05uiuM5(+Rgpk3N*zx1nvD zSYuA4CnuPT!pnte$N0yncj4)cTBFv;05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@ z05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c z3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1359!dHx%@ z&hy*JbzTsF^BLltj>rHqfD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c z3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5 z$N(~c3?Ku@05X6KAOpw%GJp&q1IPd}fD9l5$N(~c3?Ku@05X6KAOpw%GJp&q1IPd} zfD9l5$bgJ9z%^#ZWuKFn_jOCp{u#EvByhgXfb3;Ct+TgRD&@2d%W>{&X<>kyK4-b{ z1?-YjVXfp{uIg$`c$J%aSO>?!pI`vaEqYy0{X(tIv!L8MyMnThc5%$)l>y##{?)8D zyzI7VS?j;EgdXi?f_a=0^yzXWyB(;O7?b@ot|PC~zyPo28zl{Xpbt16kO5=>89)Y* z0b~FfKn9S3;==$}*`|s4Eq78u2!oH>hYHzs72niU|k)2ncqfT)Gcqip>fa=hq!-Z)3SP%mTv z89)Y*flLPI=1IGBw!L^e3dz-Jjko zPgjnJrbDYI{E9xbcWHMje_DZD-9C*(cy1uRp54d>rCp?dS4PS@o)cE3uL^0ZYbP13 zSngNs%W4}wE9i`@`d(E0W@}m~X2wF71oosWnN5DgMW=6VLwiMp(=tz8$ODNEi7}l^ zwvW;vi>v9AmV?uT$8A~&Iw`j#rn@$Xs)3f`#K#um^sQuQz3RGEfd(1%Fo|To_DY!$<|sVET9GP>@|nX zNIpgyD1{3N(8c6Tq@HB7bp^4K+i`K}vKr!{HrK@u;%D(Dc5>)V}6=+9R3MDi8aRS3Am( z(~g=XWP^lkDK~|zs2xnY&UPcJZ>9>a{nCwnR#1suTYIsZZF6y+XCpCa!65M|ImxOo zvSnu06WQ{LW!XO6vCMD$<{$N4)XMnATF%_g|0#Fem#g_fi(35o9S<~mGYJN48w-=j zo4nd4=Xbi&vM+;(cdK4x{7>n?1z*lQB7;+&*XTp!8FBkE$~CLP748$-ndv8Tk;XV`g8%eetBQj4czYdPN!EoiZ)thV?$l+Ua*C zHzS9Obu>zgmKPnxO(9OAC}%F-*!qDfw=To#jDO5Je$rx-qlU8$W}DgW?KfET6cd&@ z-x1_i8$l)C4WLmn&*QfsV=oBXe1}&k_kGlthb(Wvw9l8n_jyrTXRa8ZBFaL{H+7nk!?}z`p^k1V`mvCGjSYf9ybMDqpAfN3);^6^+;*b z41$EMAeQO?>#zRp*u0>8WH!5W*wksa*pSs9*^qn7*tqqZ*syh}tn>6nj12F=4AM8T zIxfnrPBk^Azk57uEIP1eM)J(;#2Gf|m@=C>ybN18d@yrxuE@MIO0W!g(Yl+PB%8mK#^JR z8^~;)m1FicmDm=Y<81HUYwXbL&+PP2Eq3dc1^b|v0j2L+LlymJptoZow5YxZh@L+( zD*KG)XAXH?-HW{T<4wGgQz94I?Bn|P3gvz%cGkWQi#EN+f)C7MdrBI!9Tgk1t&Pet z_wxG8v9T)Kuy_hvEAP)%b$G#SrVM4P7K~$S$Gu^89oI7FQo(FX_zdRjtj0n-@3EL? z{n+`??d<+L8}@~41XYt)P}%o3=v}QjsTtZTT4RXoI+x;=Z}sNtj$aBg zw@{&ZGAK?y#Gba~>`LV@cD%zR7P0;{V`JO1K#w_Wzw-y?yV;HHcpAmF8=hlZPHtjb zlv}Z_C111c=VI6{uc2(;=<_VZB!fk?yUtGdrLwCVDzYbyZ9zVD*4N)D)1cY~bEwli z0vc9&2u5fA_O7^sj16te-k9LJbOvvDR+%@n3oYpUK^0GcvR;co{&2Uiybfh41Iw_p z^7Gj--hssquF4{tZ(w1TZy3NuCJFA#f)Ay$;MzVcq_znYZ^p4hZf-1k)E9QV{VR51 z9%Z+5)Y!{;ouI@L4(hEgKn;ylXwYsA5Suh;D)|hiRecINCTX|N&(`e2Z?w$SyYr+y zmi+V&uCLg{8<$zbdpv)dpLTPy1+`SJK_$)hP}-mz`*?t|M|Eqk>tV;(r40|*`8J6x zNhgLSMxAA+>aAeMuTEqM{T{Ppk1n!=7dq^u_hojr?JIU!z9&n)S(Bw}KVt8%MnWn5 zG*GWK5~`nS2Mwn#f%ayL!Mxp6FtB@^lOM&YoL_j7!P8m`#VO|hij`NIDG%5BZ{tnR zcKxrq`L!JkjE+Hd)4QOiXbB42CbJjYRoR^{582H<4cP4x!R$_hx9oPuH7w1yAG=v% z6T5NUfZg!i!cslPvRnEW**%YA?1@=9_Ew_>$XD+MN~xxxer*XkxS=R0F8%`0j9z%Zn&#PT3(DV0s^_RUp){wpTYtG&;IM3cWeqwLuePM65 z#<4f!*08s&t=RjG_t__29~87Cpg27hR39#d@(WHwwG=m~tvD1K+P;RChCa|YtFdl{t9rX!=1dgE6DnwT&p4|UHJk^3Hw3G%@~wgF95~6y+JVo zKuIA0lwPfb(&vUlnJ2BFT%$@*d8-4|P#FWd`=h{M1p&jy)j?l-bwT=wwq<{8K!9;= zh)HT7O}T^$<6lDg_Y5i+Du2DUtPK_P!l8W9b|}AkE0ka91QlxDfQtM2K$Q(=p?Yvt z&}rrf^%@01W4~B1GC2k&_WPwN9`r@_$4O!35VTweLk*uqsQGRRXgdxB?aj%cZKMe` zJxf5%+D)LQun)A`32c-LLXja-5TA12E3vDfE_H;Hh)w%)X)($WUItj-6+`+_R2nhGRp|)FH)b01U z=V1#+p@zSwVSefd-CMMW?vEwVEz}OW_>_lEPdY+-HwS1vvm-RGa1vUSGtbZd(3bS% zzPRTCMy0KT;lrX}=vYOtFpYu!Yb$|y!_v?_>|=4)2IDW<;}op!cYv88>tO0YUzj-j zG>lbT4#R7<0r|_zF!x0}_r*QGVDl&dmY^yL>c zy!=^w zhoTTK#_)UNk4JY}$AgAF;hyV;^9@hG%^@kPnu5=VlCbODPw!>q@pAawb^#wl%L+f- zfBUz&s`<*1Q~2zM*ZAmaL9*ieKmCLy^ZelW6wiN_XaCHfOk0@!Gp_&MzEf89<6B3& z@l915X8O;l>AvbcZ9dH;agpf<<=GEkHlfUUjj7o~VG795|*05X6K{5JzIvDPKj>A!U< zt{Oq~=6P^X;}{$rS19uj7pBgzP?Uh-g*}DYC-x;9V+|rsJ^=pQ9rh^rK={$EMKNzM zXaGL%gy%W`b)FM^{q@1mJr;IMKLk5fKf*pQ^`gi>#v~j2;=;}oIH*ftRe%~;-BE>^ z8)g-D|JWaL`6n0vr*&Si)X)a{$ZvsqrK+&k(M95U#Xq4X_9;7K82qkZ0Jp>oV5Rp0 zn$+`ShZ9O-{$wYAn5$pQ74W^4A#`~-?B}y!!)<)N1Ahzt>$hN09$RqXO*CAbaJwkS zh_U_JzOkt5#xo(nP?tZW3opM9xVm-#S514&HJZBe zGSjN_@}Gz0CLi#wW*2y-RtFv~9tiiG`oi4{W^m8e3m$~ugY;f!a$^JQ{F%I??*G@F zE8e@sOIknTC6yNNQU)uy;yTsbY6A}^sln}Y0dT8CD@c2}9@1VX!!2c;BN5Ll$i#UC zcw2WVysv%{GIWQ)`-YF(Z0uUD$W2dRk6X7966p~k)!|8>3 za6B3yuFNJ#EWbXhJudTq|IQ6Z%|TuN(v>$O8Qgt)L|!z37|R}TC}t}hQg?^Y&7~kz zdlDQPun|IU-2i@e1917;z*}?%zAgj!?J*D}0XX9NeJ)=(JLd_+ zY@7k%v9BO(*(*4-`z0Jw+nX1Eu^L@oZW1+3We)A?qzbmF0v4)OKMxxS_Z7yRuZ z$z?qxK2U^{qxQhj+if6fd=f;c)q?OwJ0PsLIdIE|0I%x+-+2Q<-3G#;+jHQsMJG5s z?P6BHSxX2T5eA`82=Fy~fmc2P;j{DfJ(Oh!mp>l^yixC3d||gl)afss_+i_WyyyXM zuLQ&6mh<6`O@Bx`vlp(Go(SiBG~v|H@esc(1)_TxK-h%(0AtgEH`xTC6&}DLoz4)p zek6p>I{weTfT;$9#3}+du}y=Q=~svT-<<{7^lVMj7q{ggME;`(im>M z_JM0voG8F&@0uB|qNi+CXmHyg8@Na=iIK zZ(g~nU2)fwM@B5jiw0b|{70@bH=Qdl4B(2*kMI($AHbK(QSkQkGk7@Y9$afZ15R)3 z3sKsoA+*;L0Eg-TcgOu#A8@diEgYO14hOBq{#RYx{{Jz+so0E{SXB*d9Ron_RwXuV z^dgZ}p22FF-x949$Fe#5LcvSy$;*$g${Un@%MF_?;U+Vpxv2rZlQNIz)WBQe1EjTH z#1$Uda#gvGT*c-HS5cY3mD&#FrS86gPY(L$A3CG&bQQ+R_ek-UkiBR4c0{IhmNX&ZEb zgZUK?xb?P&uq(6R>d;VlX{^W<6OMDW`a8I~abK=d>6hL`1CiBkL*&-}aQNhG2>ap$ zVYfo^%irQ`2bu&_%8H*?;3vPYYfb-lT_)=@F7vie$+PXs0RA0Eg5K}3dbUhH7qKa+FR{nvDdc?Pw?W&Je>SQQ9ygB0P&`fd=j zBp9MXhe70`T@W!X0JZ%!ZBe&h(@k6&s9ez6LF--RVR*fRu>7?Kc%%>z<#s`w{s@R2 zwGW~j?}f-&Eg(F;1@LP%3fdR6|7)BSCEZBmyY`v!h)?9coi8rP*g$J$1oS-b4^w>` zz`6=)u)}l^#EowRu@=`Lx?OvST&)b@bL+#Q6l>V$n{UrY7Gz9l8^=&y7=R%mi7;Oj zV8IEU%yz(QT!Cmedx+evofkV;7rA5o=O4)AfX&vRyvO#ptT_I)6DvDl1YG;+<5*d?a2AE!8 zENlFMvPyjdnbNK&tgQSFvCZjMVsQ9Y(Y@tR$&0?zWH~^h^&H zqZhmseYJ0jk#jwyJr)+}wocl8ME|6FpCEeHcr7-)-$3GDt&3=-(N2sQEA`wXQ_{_p zwC6{RKe0^Q^k|4U;$d6K#V+z8$|mEb-DmU zHnBZ&DeVl19~wVos-97qehMp-yGXmg=pT+LWB?gJ29N<{02x3AkO5?%_%a~Ys%a+i zUKWWA6dVJ*^!kgaZ^7yNJK9QU*M24{gLTN1+QokUjNj1_+e#&Y8Iim>?cdsHos*Yr` zMMqNk=}Xl8f9#zHR1`_~_CY{0l2jB06jTg|z*G+=6mw1(Krvui#he3}BZ65GK@`O- zW~QDptU2erh#4`9sE7&%KJh#3^0Mk5UBCgZ=Xk2Ry1MSY&;3=?)6-M^W8KlL;b79} z#~LZSKJ0cW2X?c_19mCIl$}}obzNpwve;&2_xpGFhse^J>Fx5D3+Oj`U#^|gYm%Gl zEMb=sOMY8ZQd#)*GeBa>DlSv?0p1I{rKDlWpah-%=f~KP8v3r=&XjD@*lC z7L;7$D@fH>HB;ssG1s`G8U15rOkJ35yYF6yqi6e~I5}@X#^Y#Pd06}%xsX~+c_=ko zxl3w(|De?L_-UyTtMEJg$gEA)+;bJHwqhBx?XZ}Y=or9?CdV@KvVvKhaY-G6>AtMN z)V3;QN&2(X#zZ~a8fkSZ^EdAq^DlW|z0`5#PRV0tFR9%IrFvfuiz(5C?KHJyk@Xa8 zes_P?V^Txr%&nQZ`8K9o?h4b6Si_8NII-fDLz!8$JJU}Ik|oEv$nFkpo)#zEX3?`7 zx%l2pS{}2rlzO*_m%7dVn25G{% zdeR@=Qj{h4l7?)pq;f8ny;RX-7md`}x^9iwq<|%?+_2%PKFTf+@lNk6t60UJ>7TTe zmGeB9zMbm%kL6#6Jp5@c}!u~ z60}%+-NKUk?(}}fkRUUNy z!@;_thU4mCmz^3H4{=J^YA@^BueNOGwBWQp=}X7>rG*^B-S<0c@mcBH)7ROY(`qcx zA%TS!>dMxJePEGYtl6=bec7EUp{e~O!(M8V<=ZH!ca5O*$5EZQ&n^a}&MV4GrMm`5 zMM}p@Worm&&F8^Y#=3?&c$ABBw0nHoNjGee)4|hCWlalv%YuEwWt$iJ%htrZ%Vy7h zB5QS^vrHWeotAejRuqf{cE$dV|KW5w|>9fQB(!xG$D19)F1iIlf|H_hQ&~ zmB;L4WoN0&;N7XmN&KulGh(lsheu zcFU?)elJ^F&`=ij=&9_Mor5g$@>*HnlScGmb*JtEwIwz(%rA0 z9c00Y7nrr`Og8H10Jca4EU=Xe3y2=crfDrdK}9Qs)X9PJNI zbsCBmvZnQPWPfQSvErBFnN^ghOpISG^O^Nbrs@^qRLNnU!-vInE5F=pnmT^!ztmE; zeF{#W9u+5#X%ceAoV`gw=<6944p-=UsX{uMH zF3pV7{ALFeucy_2R7xIUb)**W|Nb8KM}27@%?o8TuongO}K zC*6bjaxItBx|2Q9oERVmhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S z0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b(E{0}aRaP-!@3i%LTub6OvZ z)(9g8hyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR z28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5 zVt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$636IRki6 zZg2Xvh=sIha{6tIZD5Ir+6B|MeXkDfUiRPHNA0xcwX!fEjBd`)j4!C!^d_7)`)8`J zlkI@a^rJpB4}J#&P$c%tF1u*aW+Gba#Any|G%n4VpJhN8&z_lf3?6HaN~`~ulE?S* zg6f`V=!Y#yKMtDdE=|8pb>dYS7!WFKfin0(KG1w128aP-fEXYKhyh}N7$64n4+Ge9 zK8*66fAUSa{wLSi^ZFv`@sA#)#m{MhmR@r(Jn$yz_H(+CUZfW>Kn&z|2Kai*^0_?* z@}K76uQ0&dbldPN$I&sw8!C%IYWim9=w7wyd?UqV`IQEZCi`AuU{ zsnF;A7PGR%D=jNKRyt;3B8f1M?Dk34tdWai`<4QVsAGR|v#Z5z7xrvpKS@=?o5immEE!HUmxiA__oLWZc*kB6 zTiEPJeZIF(VSQ^PubME6*Vk^#+kc$J2kpJfrx{J-^Ml{=<$Ig+&9Ph#`pAOQGRDq_eE}vxV$s&wDtG;{Y*Qn^5lqO|>3wT|n;UD{LmiAFp4^(j~R^Z2Gv?Nl84%{!yuQmb!`n^)UJ6U_y} zt>x;x8eeXTi#zoDdd}yIEu8qqI=jE+J7>E~^0I%)d8xv|idSkOvV&XB@v^#Myyx)& zd}xnXd{X0M+`nI89$0P{539C;Z*UmJx3`0LcOvi}I)>%_g(K77fd zGCVA7IA85z&)271<6BP#b6jZ157ev8PaK`fFS-}w(cz`}gD;D>K$UJe=N*N1ZdX;1*?vKeVsI$8Qj3 z_8W>o%jQ_nqfd6mq6}k;@y1qSicyf5ZM8!zdr?#we9DbJunuF&uu30JWT)>urRh-q zsE4}Twwb+y3skFzmv+c*SmpO`j&UM@v|X|$N_wpA=J zYMz(l%<9;9Gq#==9vvYYwRNrR)qpW<`U&r>wvm23l#hQ4i}>y++SCd~*NfDBu(l6_ zd2%V3*6a<#TIw+Hy9$E|8&T-kMi`eZgTg_{DE9CjEFGt!OyC^Y*;j>R-Ve3My+yMT zvFK>h2z}iRFt+*(OmFuZ^DLTUX|E4het1iI+f>h)dw#h^XWrv#EgpJSuJ~kEHz#~X zt;xF~rMSXjLP)>?q^I>#}6UNy{_ z`WZ`fY9j27AGT;u!Nv^*h|Ao`Wp?Ea^%AWSc%m>4s(-{*=Y^Oh56&)I>Bq&8N7wPk zV%I+?LR|MTQ>%^mpGwL*Nv#}dk2j# zuSClM)@a{16kVcJ(dT4U40kJxiQ)!kJidXsUd<7>%N(J1!m(z|MQp72GQDl8(;P_8 z04_!!L3sZ-Om*;0-=5WVEPPiA{x^*w77tyhd2ikv{ zi?*u$(RyAbw0wIGEqmCa<*TA-y*&YKPaT7Ytq;0fk)c<@Tnt>g6{Bx8!sKB+;rGX2 z%s16R(9t4T(Q6P^_w>Vh-EV%ckkxU~c)4>v;c?(#B;K;X!Hj9Y9EbRBgbHY%6J4{TZ!=74Y9GypNQzW8JnIR$?lkxeSEPV z{e?m++plAlU5AYRVf(FpLg(ZIVfAur#(mkbjb)aru()b>%-$?8{c;;js$U;tBVJ)- z=|&iCQV&Cqw8oIeG7Q?d3InU!VSuYZ|CAOOux29$b$g1TJ-_rl*&n{+9%0gr>X=?P z2LAqKG5fln?F;HMno2ppZV?uVsklV%-o4vaVBzMnkerKn@hzWiN-rH0Z zv%Z?0cG8cHmCr-5)M6m!oxBOZ`QDha@jfQB?Fiq+XEEOLGR8j|hVfk-FwW~Je7iS? z&(=Qh@h=Bo$150jYZ4}QFO11^XJA_Qa+vvM3uZSNjs?9f5H#Tv!e(qjL`?(yxhV*z zPUKij>Elzzx`1_IW%TQJ`UH_U>v!7EXdBZyw#2metuQU#8q+pS!!-9-m{!ag)AU_2 ztwU!_FLo9)MwW$N;6Ma;Hp1LnaadGHe!;BYTJx9 zXghaamuF?(a4s$ck+X+q<(U6eSR`A9MVbw;@YY)_j4g>pE%mXu%_1ye`dE7VBSL#M$I8p4 zvF24*tedNW_3sUpDIW5L=3r(SK(OiOFX!?02w5=&%QTi?nc*jd{M8vD6BZ++Mn8nK z8iQr3FA=)tBf=~~5WcMp*01b@t=cURHtcj}?NGn`&EzhlLtmenR5lKH zdRAE7eLq&K4n?>J!>W~Mv8uvrtZKg;;WLu3W?WCKFF6FOZ<#4u4CGJ#o?E|~e{5Jg z91&`_u(`Jkn>{BWVs$lanmzycfA(CQ8&^#>vSe9l}}4tDDQ@|HUg(YJ#nISRUAF{5{LR6!jxe- z@|+zpp?pl_mz*HluP?5>j>P5rhPb%UALs3(uxnY7{1QLKnZ0vwm)aC3aic{iWz-q5 zmOF9hj}^GFp#-kCuY>FT>H40o@Bh#5>x3K6)bm@rblWKHGwq05XouL{#c?jOGZ{-5W`G~UIDNte^=xw*vVz>?Tm?H+=Y=r?-A zf2Q~syL)ZU&CI9yj)STR*l+*$^IRgT=->6UKB?s{!!4Q8CH*l}&)&~qze8UE4JOuf zvk|l3jujJUtNsojvdShzvkKrouYNS1_-H)&NBe1C-edfGIThhk&!p}X{UVC{?Z+t+hZaBX%74h1DKiE3xD?Af&FeBf95#qOPu9)1`tu{ z8MZYo55IT$>OE_@J#Xaye?RwN%?DSkzp{d~{O?+lhPg{aEV`kuz<%NOsK`c-}CIGS6;05Omk89-xydWM;v;r#BiicrW$WA)NA*j@5uUgIA% z7Z2c<_cX|BaZx<~{cja^DBfdpj}U~!+(e{(WM0&ipWaRP_vzgKuX8^_;u5gzbPASM z-H*_+x3NL9U0&p$V*2mr$-Jl`rtWryua7ZC7CwmaPa5aN7%3)VKO+N}xT6rfEU&}0 znjI?4s)fQPwKMjiZQ>@cF@X6kjWHo*J(?V?4WsS7c*KHCt!t3ibf9?h*W5;Uumi$6 z48@!+m*CNHG37shf3z&z5^q?!TRTQDaP&t<@%U zKIjSEPHsZ4q@&P(x=O(|N;jvAGMoH`d6y-^RqO9K|QTk*NQTEg`VLdHYRQM2@8LfojrdD6h@s)&DQV*fouC^%n zOcI){y9lkhFN98uAFdsdnenO5zwRL#-dr+u^E)puMp9__K?S+bbA!(mE?MbH}>jYW164|AZ&~4ZfuM!*M zqtBdF8~B7j@S#;9Bs>#%zTOkJk9~JNLp+arfP~!^NP2W0pH$rN(QPN*CpN&F-lo~* zFOBN)ol$1`ruD(o#`STV>*LmHyVN$^dDReioa^D1U7NrA zM0GoXXge3&y72cpw}|m{#iNZDh?|v&w}b;8yi{xM|Y{ zH^xr=8Gop6{yMK`Cf}HIXG3QCiFI@Li-A6wUZ)BlSyR0C>W#!s`|!$R1D-tlfcvZT zaQ9gV?%c0{TWdTJZCM1@D<8-8mosofH54~T-^T6YfwHM7+pb8u zatg1PY{avxa}gWy3AZk*BWh!NTpw(R=s~8q5jq{WoGcI>{V1a?{MBR|uG&|@<=9VO z-W@kI<9^!yCs#kxf=BF~z-Mk;#l4*0@sL8*)A|aTWo1!GtEaH`881p+Su8rw4@%pY z-%GJO@=9hkz$e|OqT-H`!q#%JC>8KT6pyPWjGAl|n*LpdYE(VEZ*v&WgKFa5B|SuM zX^5y-yKwzjB%)VL{GJWm8nX}QCVs-%H{LjV)&G0_sQuq_0Poi+Qgwk^#YDb)@OAEY zQO2#-gSQM;u8J{ATU!rFHvKiVGL|Eee7c%lnmcHSCV zY6oy|r(JqJ(9WN}{;u0Mhi^nto3g9GLy(yQnJqqDY*bDD6^B*j)1! zW%qs%<<2CE3jL=D>(}O@@bbTZ|B0BSSlp6;n`O(GYfHqlHaOUr}Q08DYA3dB(nZb(`<%nq|*MV&~hr}SFm^YIvb*m@8N+GFsl(w}&BVO9G5RR6U(fT0zd zq-iILw<+~^U9C!;v^tf)sO|CFUPy?aAk^9f37t;HLi@Qp= zx&fcucjH44{XX=|HOpQA^IpcR<8i(%oawOIAEFZQ4E!_$SkkZ@)s-WPm{ zT=^?)zlBKg3DqIU%jGMk~zSXO7@yBM=n&^*cyBaBq!w6;~tKeg|os zH5%s^9r^D56;fm6Cp3e<74yzl2g-e`{dcxuQX|*jX`gK8{yD~juixg&AC}-Noe%KP zYZj?F<@RIVbAtyR((%AH%v&$si#C%!Jgy;k4jttM~gvZ{x< zrB6}P>f2h8E_p{6es!-yYCgIB+ey4eiB7ymhz{j9@8p+q`R!ctVAh{6kLsJMkK(1t zAEeW_bs}9z7h-@IAO?s5Vt^PR28aP-;P*4Y+pnp?-CO^kziFpj{d%sjPX3Ja`*r=Y zQ#;<|@A2==R$b33N3i8NA-B4iCZZ@%9S6=NA~1H zaq99`ZmU;`S3LXWyXh&ldF{5o-2J8*pOILcG|xKCq0u{l^vpUvvqDR592UfllV0*- z)mL!qMUmXjvkR|&?|D{?O=Bomt|=e?udzTEipP;OfG z@AaBVuYdF+E%KHYk=xx3Q*#>mAxs@=W>saXu9`_a`W(H}9kf zJbQ?=`mt7|Pu|i;QNXdFqRb_CMHAPjipdpcDb5A@aIHZrD9=C6GlsV?AdP;kk+SO( z>DA&ye*X^taOhp(^mZek4``Nto9el1E;wzioZ@uk zh`rO^i5`@@+?6}Z*MG~G?7)EGvd42wSkal9tefw8((}LRN&4j;{iO5zz1c8#PuBad zcWm0J(JUnT9b2_4&#yIs&|VU8ntM3S&Rns5M<%f4r3_fO|0EW6Ab|zCJYIaQ22Kv3Cl_4!?G?BR`#EOJW&rZC#f=68R+5}M-|uLXw5m9>j|Ez=7?T?8!2EG6c(NPoH@P2kbbG|~XKj+j74()Re6nG> zLyIyCRU1~yhqFQ=LUvCi%EAqMrTWZVPYsED+|%)Q_)j)-&peZ=MtZV03NK~JnWVKd zN>X3!&))jRu`2`J*t&}?*`(W#S-D}uQ+^Ose0Zou?oB4p(}52m$InS1#A z-MM1-A2&$zft?ug_d2_2Z8=f0WTSIZ!QGD}gVDZ{k?gRfYk!<2JZvv%8CJ>(`(z`3 z&KGu8<5Ftw+5VStZ2vv2j2t-Wtp55Ajg0NTvds<#He+FZ;=kJ46Jp5@c}!u~613P$ z3tLIkq=sY~6(Cs|CP-th4)~Sv>6rY<@UP}wnwH$1MTIP9!n-6B7yo`2X_W_^|8THw zsNuMJ*kz~2#Y3DDw%W_O_Ny)1IqjS8B5;gfTF5cneZQj?pY=Uo*qqa9EYKl=g%;|{ z)`opxkzK6Wv6p?>olRX*kCBSV%1RZ7_mckXH{yF^P&@IRl?+I8`p2=Iy>DoIywG2^Cf;2(d-fAqs{@^7 z>R9NsykjXRyAjEb`6{v25}9ODxFo6$`r;!?vqDW+y8< zOEcS7O+8Lt@bkQk$I~|Po)ZkPlg>#};GkOeuZGpFa`=s(gHQiEjzInvg(!J z%hnb<n#yD!XOpAd9@bR@Qg<6q&lm8>i6|CC9_M1ssy)?haK8taP|^_gbpIvf#uE z%vyCO8+CL5TciRO*vf?kM2}?Cw3e_Lav!!SZksf{Je}viXq6NBB^y7dv!ngNsZK-D zLe{jNj_fauBv$-VJhO`Ol!@`HWj?c>$yB{UoGLlYbNH~hZsnJIzpm4+^5x%G_Lp2b z&(;J*r)kc%cvWRnxA$Y79Ui2$QTcQEAiZ){FSfb!b=j0=am);^Y<%khEcB_KwBkju zH2&$=XQET{!44)~&rDt#^rb#In`hGd+j>ha2QQU6zw;)2zO4`GlDBn{ zk33S4a-6qwO!=k!5(C5lF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^ zKnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu z1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^kUJP?=yOq}p^v#rLtj5yyO!4P zB?gEAVt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S z0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR268zALLR&- z{Tk7t>A^qJZ=+lG$?gd+u0=IzQw|bm)30GjVb(wB;K&t7fY2 zo8o6P(~tVlJop_9h_Z|R$}YPwS$7m#oqA{2_%trfnV)4qG&RslJ4V>eE1OpTFC}kP z{tlnNGK%jtdXs(}m_^y8-=;e8stgPW$NLIp@PmAy`9KU11H=F^KnxHA!~iis4CEgM zu+X0F4dwFhiD7Q7Cx+Q5r3=spw05Ooi7(lDyR+RJn zm2=AX|Iasy_H0605c|XcF+dCu1H=F^kY5-;O^ajsC02@)<~1=u4CH49puNxz=Chul z>zdNJSqD*ncwy1(Nl0o8cw)0FH^)N0(>aM4AO?s5Vt^RP9tQZWr6#0p_GnAGlCH!6 zF+dFD90Q_Z@>0?}=k!(BBW0zH04_QC9+!^UKA00=)=Z*;$&66_>3>#`Z$y;dcWkm7Qf^By-oS?en$Lw z{Ri3Yhcb;XYHgaQO#b8-U*uLnesbeA8{`F7I7%_!Gb2%y`tYFn)Ki7QbKZNmkg-En|r0+ehaXU-Pn`yyw#De4M;UYK(kl zjV<4cl~?gsQIxEF<6HZA>5oHs;IWT<&Fdz7>-rj;51Gt&9c##U?+E65N?zl8cYfdp zI$z~SQ#$c8H;3^n-g16(ZaMzIaR`q~tj3?zc=oMv^J<&utX)C$kq70~_;OQReCg4# zss8fFQcisDs&AhEdB}M+9$ax7UomMG5A++sZS=bHNITCEalrf_;bbVuYa@op{FVQ;KT`hU;Hq> z?_*7VFwmbL^&HDjRyxMdOpy3_m+t)H$G-fkt3AIy=sLf>{T6?q#`*Ks(frMvIsDTe zK<(puXz#v*LWjL!dhcX<+j+GvCLMevCb}IKGdeC4EBcMft8wN;Tym{9I&uxYYuRaw z9~fZ34_pc5``>Qke;(FMwZ+e!8qd$`-R5UaTktcx%JFlCJ^6((!}#U4i}Ib3s1k27kQ}$E97P|XMW|_%pSw9CMWRAdgu5> zn?`BJ@Y|TlZ*&gf*V_voweJkSK17?}DDsxy>g>qx+M4nE#a#Krq3ih5PGS5-(iQ&Z z%RSBHy+xst>;nyLIkcybf}`~n zgCKI_8r1wTRq_S=d9uPAC}?|N?zrU3cTY_mObLn{SWc@4|n++tz-QC3GmM?Whl^g zFf^V6+HuJ+Xgv@n`h{RtxHL*O@ki;h1z~e9Q)}d>_mAqocFxR=y2%$mIxqL@KSDmy zX=+aR&yzM6C%?JhCNRVZN`&|Zs4D)^?|B(IjCKI4Nc7<&(} z-AN`WRBSO!)X$)3B_Ejk#>1+hC(1YoRJ`8`&g=JPcT6;X?&4lPr&TrijG^=7-UmG7 zlN;QU`zPkeb1=}U=mpKWVbEx52{pwl6gcUI0@YhXb-f-`UVZsrBa){K^yHu4c=8mB z`aI?3ZK&`zP>pT^wPu^3p|=y70yP(j?FV{JPOQNWkEzAd;g=Lo%SXbzV za;3|o(#eX%W$xlKC-WtrF)C3We9ub0x@nv2w2Pta=W;va@oM}?9L^M zm2QtBIzwRWbp(aXS3u9t4>~*kfc6*OwXQXSR@d{;e6N6J=w)bj@r7p7_s|>~1I?Rm z(3(FQ+Tl^qE$j!q3ol{td^d~+Y=mj2hA4X6{tNd5U^T2P%9L9G+a<0jfBr1W-^i2g4wVuFuhV6MzhRe z5W}IbqXIq6BhX#{2XrS`Lbvs7=vwW7PKy1P{}Oa7_k(T_gI=Q{&~IB12Ky3VIBW-u zXGWl~>Qxkd^o9F&&ahm(8D%uOpyH>Cs4~+ZHpL$0L`=$VLmXY~CNA;+dGD99`<&hW z$v4{s%l|ZLE(IlA&2C$1JcRgU-;LEWu-=lC+0L;2gf_YgvEP9ne>G?Hb zJFyHLHdI2J8tQ2_^Lr`IFP)U%HOLshe0|vh8QXs6HjIXZ!su>07^`=NvGGnATiU?b zxh0GTw1Dwh8<_N&22;14D76&8_Euu4us>6CU~?q`lcsnXwlW>lGCC0~BuypSJh@j|V-*jZcV@6zRRcB->aae%4%S;eU}HB6HqX>xy(dTR%jQ-sGvl|| zu~@0@cVx!ryxa%nhX$bhk*6p>e=*A24211$W0X5_4P{TYMwxxOC|A!dFUL=@<=?*- zs9Meg($q4LwK)w(H5u&P`=OF#hzgUJ5f}NFi~Nv#G-`Df^?Fr-tMzrb$nT@N!DL8B z7oe!t+x!qe#h8ERH`+xdp>;(^G-s93q>c|7)+&H%dV7e8{L4gE=3YG9v_kBCvLP$S z%&M`_y~kL1%8Q|chauW_aX{Ne^nKMY{_ZrZa*`XyLD7eqTAxBBdPXa2JQ#R}p@;n) zbUr-~9`nMK)z7@*mxwag%?q*c{?U7Rzj%6PkIs{sUY|f*8J;KBFM?i=X)tT~iNC2_ zDlg1siXr>2@x{?6t@47-sOEJC&T4^av54800crL0l2IWv|(2O6AFJ1-Fngw)C^!1uZY^l2>#;-`v?U*udk%>Ojb4grtzU`WMTUwdH_r(+b8T+U8D`j&$NEL5a&rviyK>JN zWz7%fOlp8N^^ankjj^)&NPZF9*}(uho{qZtjtmq~-5q05h9;{Z9L2TePkU04lCwcLlm>Lr{4ot!tts)2)Q?apUiM$#o#r5B>6Y`RV2-Ez8xsEU3)4D0V zTBxI*IjsXg=lwi?-bX|m6@=7I!nphKs2O{cKRxs?FU@O;h0gQeVgP#wxeSp0087{54L-IV`mHG{6T>vyAPu{r}JRqK?&}tkOah z>ON2uI;$oOm!1^HgBpk;uC7@%HjVT1f1ia}nWw^dWFOM*+u8|dpKZb^>3{C|ihADW z-_uJtyzee5RvaU&w%Q4^DcZu=X00#?^AY-k5{3SPb;3YRLlo+^K^VC#Mv9*4_r{_2 zZ|8$_$vItw{qcsP;*N)+?6c>hd_^~58(}D_v^C634n$!?Ct=uSv(T3|2;GpnLf4rI z-SBXs_w>e?n%#tD-{ZpK*=}Lgy}c;i`$}eY5_-I_&_3cW zv>SF8+O_Wr?M9`9cJ~#TJ)ZjgJ0GM;&S@eF%i4(|&F6_C_X~(3V-E|H$5Vbrf1&9c zBQ!_v5Src_gl4ZQLbIRrGsjckoXa(7{l8iZ_0b!Iw#pizcde_?sj@_9Jd+E(&Y4=P zR}^S?La4hq3iY@iLj7GEq5kI>p*}N-H2zcs;ST$GZjhqx{Cr6 zzy1bBsF^+xs$=&c8D2>62*<;Mhree7Z!Q?%!y!wdTA+p~uyULzP_>^>nK~68Gk?wW zy|JnN*I3DGx}m7gz0AZU+MSvw8jby_b@uUUX%Rd;Y=j4!r>5G#qY+Q=aL{hVhTl%J ziMy3z5o59j4^IF692B0s@k4yqdPwYLflqTZkrGt`$(=3m*0d5{t{Z?P3;Iqa8^2Q# zx-Ibg$UoF^?ybSyhu8N*ygive{uxwKWK!Qac;POwKVRx@IXuj6WqHH zjeDJs;oi0lh$(yr_e~DsL9GRN;6EEr%7-J~eP5bAd|c;*=PNDosALs9&=_#^ID zw@lklC7sKEg#oO8(KIv1iIsZ`h<@_q2?e)?Z{<<0Tzj|F&q z=q(;ap2CA=r4ZAxHSQIBfqSP`Bj!#DV!L$2L#^?6*!^FhX%Ty|KkgT;gnOe#;BMj{ zh~3{mv%XNj%+C#Bwk=$E^}0ct{iB&!cgFK)^bkb~4;O_7?-M%9tb|s};X>VEj!?1m zMv_}Kyna{&&&!;}gWU?;{dfxZ8a6;olXbX1{vjTen1Yy-wKCem?N=>v^VlHV7;b|b zL;W-Er|o}o^&>4%EBXUUA5(?4Q#)AgS(nyVR3CUkIJEsslxuNBSiO8Ex?d=gwlBYz zV#|O`U-RHhcL!nNXe6vo?h_?kcZs3{jYXlIfkHFsp->;+44)UxN5Y(9cry4ZVlKtu z?lC#;E&urCy6ErgoQ!(ol9My8evsp85r15{Jt^aU+WtQKxHIQ@sy-OuQyfiR42JcN z)BLU36X->CfZTaE-nu|k9nFMO%xO{KR5M{csfw^rS&nxLhvj!&MMSfodUgZvJ2enm zXSxcbc87&oospvC>YActvyP&eV@qMM@U+mdJBj3RrSUY%8TY%_#NEXnxcjQf|D`jo z>0ZXQ#;tIz-cNl`@PCb)m-h=p{a9R@BEy3DpD?-56u5~4DARHd%1mtv+f`-Y9jA*Y zo{xpydo{sa`-qBjmkVpvjl%rZ(!8uocEpC2v7>OkpCg`h5_o^pT&S(zDzq+W2*cJZ zMA1bm!u<7eVZ3s1nr%F*@a5Xy?gnBl{?GT6;ZAisM2DBfjZwsY7TxQ?#-NXQV7x?B z3hX7AZ!uA^eXy|V>MTs2G*8P>UN8BLX}hy3Mr^BC2#4c_;c|g5_i{|yBL01MeDv`a zYF@@dyL^FPv4e-pm*Z852Y42L7f*MX;%W3>zcLOT^S{?dSfg-A(?paQzc#Io4;_$J zr}BR_%d8&QH^l%~kG{ga+Qsm=b89>H?2UPb3uD}I*ZKyY?mLh8!9RQt9_2OX z@=97~z1CP<(;A_ga;*AL3mbf6v9G5mE>zoyThp%M!Jh;1^x0$5J?nKRO~0?H!u5b& zcIyMlT^Hl^E+WLXEy5mt#+tCx*fwf!M3=#_9SkZB;)a|$$0*} z0M3^vnBD%+_{4usGXQtH6a*xnh5zGuskR|X-Nbp135ecSET?@Td%2r`Zda>qY7V)p zSBr1ulFhEs{afw7vklc-({pQCbU*)h=J9vh=Bn+Ba{Xa1xRJ*#uD|hpsxOL8r{+eU zO%6%(i!~`^&(_{+A1P0`pVmfY?mpk;_xved4w}M?z4hceLri#q?T%b!dlN;~k5?3H z3mj1dG>VK2F07W{HKO?Q?i}a3rl%B7<~t}JOXU=?-E9DBbma#`7;PyPkflMf37M z%}d2e``(IS*XKoEY3rk?9ehm@_<)`TCZ_%qQyI@w%C^mIR_Q2W+pSlG_Rxz=C?6}+ z56^S&M^ZM;$)Df<*?~V>_#ib8id6?|E2aeo?=UZ!>EEDG{(gV{C2ui`)&A^}!|eYu4jrqU`K7#kKQFR98%N4^z8fW*Z>1%x@mC$v>ib%e zHhD)Iw%h9nvz%I+>5o||yK}FiY_a9Q9VPeGP&o8&NqNq?Jj)~QE+;*+PS32+l8q?u z%=+AK#F}j_z{Rv(mJ0HEPQAo7CNgh3+O$AP1kd0 z9tk?E-Hh_2(?2?q7I{+(sa*H3Yo|&@O0-JNG275QfQ7fwrhMnkd{bV(omWY7OeYpQ zT%BF7QkyjTwnn5&-qc0X*;YqVFA>B(1=eQI%ty1x!SC7BBC{ypKhC$@_+op~=*Jo< zyFQZX)XtL0sSwHFb2CYI!J$-t*^DE5mEG^(;h*fvKmgLRUIt@-;MI(bz~>GenNyc!$Dm3jVCwUWl)t1k@-A0iFE<{*ts z2$F`s9VZPe^YtF6vTDg(KVVYcn;GPb8}%QcR=$O|6%d#(Jmb}E04m%OHz zG|P3MG||>inj}9eO|11;@(puR<``LX&sD72ie=2U!(vvVV*o3f9Lvnh3TAP}CDm`H z`?3a8+p3Ty>Hqz_p1kP6F3KDe`S$zfpfo$6rZn?i8);^jkJ9ua1C%Kj?BR`#EOJW& zrZC#f=68Rgm*%;xlL9p3l*LC$tBN!GSfB-qF{!~0%pb>sC%dtJllw78w?|BW z)+Sk8L2p^YCmW_av?#MswPB@vI4dL~WcNg(EZneHY8>+NgSyI{we$Tu50xdS%Ib%- zEo7E7Z_fYR&;FghN?JRkB=yDq?5%GcyE4#?t-IKgO}hP!wwLst4@%#U>cn+cG9XQg{Q52~X^diyG$uGHud&46^KgSj-J-dJhKadm0f zu)mqB@}Tn{4%Q7d99Iv!?9{k;h*QE=ds)|hwPib}ee>Oqj`2$iIflFMchutFeNKqY zIjzP59THe*p{{Ig*asHb#hM*^*_Ykf^!2`sR76%*syMutbnVfitd5h$qq*}f2Bh;Z zy`}#8G14Fp7iom=Tj_eiu2sgmhB|nZi*mGkeA-DjY>?Bz(@kYf3wz6geZys&7y8TA z#JkI8&we6nb)d6M9Sfb7cP!;(HzL__pYwu@HdwtuW7vpWo-9Dam@V8F%NCEn#DW}O zv9NnFY`e;1cCxawTz;o#q^BF(>8IN6AVa`Lf%NHY<%rs4Xaz_@Ebn|pZ<3o zg9^%>7D&5g)hoZ3tu1IMi+c1_cFWE|7I}HCtnczEGIftPPNOGEj)!#%I3&y69jX>s z>2T@pwN!s)!HE}`wdzbZ>gWKrNChmgl?w}q9?7O@Enzd{K5SFmHfcukzMP1SY|tF~ zSq2>K4^DL&iWah_^>k!^X(X}Ym*SaKl&4ILUoG>Q^-QMf72;IMVV=W>#dRyc+-sUT ze(Jx}QnuvMdA24fI?X2A;#HMR-QJIRcKEvXX<9p##HF$_z&3ZjE}POUj+w!gjc+}G zg+A4j){JQ(O+5N6&1ZHn@p@YQN2TQDcvSKTr}v$HIXC=BC)%ex`baGYFO|AzFQJ?$ zPfjQoIhPChBBQV0pOWS|r#Wd&S`!1r05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv z05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis z3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dD_i-CsYTvQtR z`l&P=_mmbuD0p7F*7U}=(Ib1+xO~dU#0K&_E9^nd#x-Ch}KPxX2ur` ztzQjZMH^(Q@2qRhGSiRx&^-7Z3pJ_{1paZzqRtO97o3xZ^QsGKnxHA!~ijn8yP_9TeWke-{dpR zH)4PoAO?Pp0hFuV1hux7!hqNVxmi20;*zdd^?Fch45FRt>f9U)`TlbZlU}43F+dCu z1H?dP8Q>=`YGk%A^&_r`0b+m{AO@6`0TKFgu(J9_er4ah;Uh)FcWPk!-b=ey5pieht~E4p3sRV=sd8ksoD z;YYD6?zfL*hp#pIQJ?SaAzH`?y>U`as_fUzh0X17c zsBTS$>W2AHH*$s6ln&6}`Vq!=SHP^pc34z1f%W-aC~H(WD{SYMF+|X|4Yi~cytMTQg zxcG;UPO1K)(3xu}?B@L~-}%eAUi^idAAh@Eg+Fs{%>ycV@no-E&{T_u+QZvWcbg8) zi5AfHo&f`42*Y=6VC*4avUDB_cWnnV6Jwa4SOzQ4izu_v6ctxhgkys$sLGR2=fYF8 z`0S5bZ?}KTc3x`}8>`Xa^;sV9k@zcyR|>Iv1cTLQ?y{^u}SBXeYsN$zT|oPK43Ox-i+l z4MnW4z^qORiW``~{Badn*v&zy(gHRQwNZX_0aQL;3bIFcQT_B9)Lm8y&8AI5d-a0o zVm%7eA9C$Kzp8>M#chxP5PC_DTR%C8y&yD4Yk zXfq1(86{D3Gf*$o4$V5eLEFPB=c?|3EIBopAT#5_ZUx-Ve{l)ctYI!-%td33IrTjU0vl0rq-Nf;7>pNZLdfrpA z+D7{EAggy0_6aRv=h6js@Bd8Q2c~-t4#vx2cc~XDCOkq#qsypRU?3_kzk^CgN~7{9 zM^qVg6^{2GgPog;s*UBS*~1fc%6>w_B_Gf{@+R7jxPne+H=xI+*XVc848!K#$Efpx z>1|Uz`@Uz)joQka?6@YcQ|g_(_T9!g;Xi7&oQ-M){(!TdDV&3AqMCncRK4L3xko5u zA6vr7y%rqDZHJ@#DmY#`0H>&yU_Kg<`_@6#x64uEy*p|L3`e~`yQ1;@nrNwIh<3#t z&`H!m_bdJ3?K=uXAH9L^z{==!_3J&SoQR8TaM}G7H7$CedOt^0E4c|(y{@8a&1tB*u@|a^xub^k87?&n zqxJz0)V=f)4SklO>A_&MT0b1^D^7-|b0c)$To--&J7Vy>UKoA23nnQxpwHfHkBOMi zUChhtI2g!#$843mYF?99OVE{9JvJmKa){O&wxjvdBs9@0g@!YGqCtVrsIRpQbw5X; z4i3R}@JiGk7>iobb5QGWJZe`_g{$RN)QN~hJuwRn>-wTe_r+*YqBq)%@<)f!EzsF4 z3O%Hy=sR;X2B8W@?1+I+N_C8CGCU_@A{)7j{j_|^7qxSi2T$!JUlLU)tt~rB^o|^W zZUZ~R!|^!Us$WH`N~_Sk`y@1-=7uKqJz20p`oKH8Vr2&Wlm_I{^u!ZFxVIk zyR<-~NAJ)i(G1O}tU#-cA!s{fCEV{dMi-4`=YC_kr$73F0QI8 zU*=m=UdH(EcTQzzoET8T6n|WILiZA-;Q6o!+_#oTyWNIpYor3V9)@r$*d1+FY(bkU zN74GPH)y?m16p71i8ifk!L3F|w2kb9_J=CLqsdNq4s3#MG8uYqtbo3su3+%G|Hs~0 zfJM=Lf1E}-r8`8CW@jl2#qM|&6uY~-Q4DOs!a}e+m^sG|#KJ=CL;ql)-hQMdU%yZ5);HtdMa{&~cQfeRr9=*UQu1f3*ev zZB@ZPWi)hGSOVSU48Z?$Pv|Z$2i-lMLiYn_phv(L=y}Tvdf&JU{pz)Xf%O4~Tuy`$ z$HQQ(k|9hA(1uxcPr>Y2R||cCPxY+-t53AQ_Yim`${qRg-;R$ktU*5* z_FMvnZ@&d2jEBJp-wYTrU?Ys^)d5BfQG*fOJ{UO_V6;XSjIGlHCV1t*l-8Cob9yWc z+QuXO|C|0*ML%pRRaY2eg)xDr3+}&p2jg15f^n;s!MM4rV4U|C7@PYM#y;o`<2+Ww z_%X*}qUR-;JT(X=Ek7uXaga~c56j8`Oi~yPlQRrqs{SUJ>fI2gyxI&?IxT?7i}hjB zB_2##`2{97Yy(sLYQeBQT4l9Q^?zg%?<#qdCO>LYnR>wNn)P6I{~Va@wi#wUI100T z+rrF#8(}&&gQ>YTFm*ZQi@wkP_WNvQ^7~)fh9K90umICxe!w`G=XoFIp0I_0o3=3f z#mfI;m-ZE&@r`ov>s-LfC(mH{j-{~lZV)VSGlWGW5f*&Zg*q+hIu4EZVmaOyjRg=I z8VYN2pB4NzTMt4ERAJ>HeF)@X|D{+^AStKK`j)*qLAj;Xc{0+3f_ZKNS0? z`n3JO@rj{|M&$t)WKk$&`!A%?0USvHF9ibtf>nmaOT)jct zaRXS6tP<~9Al53EHDS{q6jpSF+Kp+h0=kAt_q`GW#6T5cfO~afjj$by$R9d4AqI#6 zVnDDAK&=LENMpfjEXw+#Vuu#+;psV4J=sZ=e z`J&tu3wUS#6xEvbE~%a71d3$hkT!bg)W@M(Q8O1Gbcs;*;5Yr$wu zx(c7J5N}`yPu*uh{Oz`o;q{hsBz!rdoRoh~AnubNTv}QkPTZdcEc+P_T%AWcm%q-W zsc>lu_eVLv_2k!Z?3N8gm=A`9hBSXKeJ2$A-@hQ?!hU$Jw-@eBeF$fU_os15xW*;Q zhhXyom!sZ5mYN~yELfdMU*XdiWhC8ECjJ`b=GVDFpB3fyUNY41Q9+HPI;gqy32OJ3 zL_PjS(*4)ESA;Go-^K_P7vHRiwnVWF^t{&@`7I@j`;JXsuP^?&_&U0_SdR7{E72m2 zLxYV`sI4>))dMY1t?6P^8_^WiG6om)0X@{R*@D%)mK5KY)+?_ckoN!99$nN_(EiO< ztTj;r?Y_pKZH^HO2WS-zrD4CY4yu04N2RExsMJ;um3$tcQtO4NG(@Ac`%}Gt zk4L0Q#c6`Np4O<>=?m(m=c3-+Cs_T}ld|ZK3d?*@VM;D43|@o^{Ww$@`rEm(%3_=9 zRvZUaQEQYN(g_t0hokDcNK{HRK>3Hxs8Q=|X|zD;bPbf_rJ!8$GL(D$9ObwNC>P*Z zntiDbas4L-V5jbgKh^o$?Wi8#20kTAqfFy(bJ?QI#g-^7*$}=ATn%~KqagLFWl6T- zz4L7NYIY8#;0elfJA%?V<58-PGkm?CRMI|FPP~_e0SFq=qcrugr|%>5GfFK@-J&{> zx6K;TRv1C*uoH!4kk&XCQv2&cN}$vCIxo^3AnBnuq_z5fE(4i$kHee&#_<01DwKHC z0p<7IhtKDv;loH@$axn9Uk?i9J57sX67?mVZd2m5I8l%7Z~RB+tvzsF$DU=`7v8%x zh7`kxkle}-QkzM`%Z@RSyrn%PYY&8^PaWZ9yfGx{SVGcJcSyRq30_{m3@M)r>bBYq z8H2w-&J^RK_E2iXSIA1~3TeLDkg`J;lBd>&msjG8w$qZv{J&uU61+<_p5x~J>u|!r z#ieZnl@`WfwTy)*_vs$W^jr>KHh9C^*GllF_7r#>vkWq)#6gO57f3u)&==-zhnJxM zDF*u>^`aD{S>E`$9Y`7U7+&re14)v3kT`u6q;^^Oa~=Bp-}?YWg$AP5@DHTr|Fp!d z>&i5*F4m~`6-{<@LVfG{sN-}H)nn_UVxBR|CXGW$gXWO;UJf#IBOobO9+D(f;iZfT zBztUuln3?T7XvCv%4i~YBWH_c5Wzn)fI9+H-}Umhk|i@EhKe*4KLjemI3*!dwO?rixxn}ypT$&iDWFV7WxhY*YRI{hi$^4JdX zYu~`~rf;F~6%}ah(Hu<2_28}?nZ)hrwwc>Cbq;7wJ_lO|>B6U)Q{ZzN(>_fOS z>nog6sb5q_+?Q~@ev9&o5fX;&f%l{K7o7WaNBL7NQDuQIYDC^con~fe=yT?8+CkaG zdRVR1MU;8Kp^RoU$~2Vv8#}bmk9`BWjr%?i2i$q{zcFc}-}iFT>_^Q?s|V!d>Z06S z29-Wbq3ZZ(RBdfn+I@@a!Rb}Gkh@?!O6OljMPDVXcElH}Y4eM=)AH|fL%LO*Zt(7! z3}i%o`>m_Ay2FJPQ{hq{UwAUb6SCz#p+qA^l%0GG<)a^#)&|w9xEzz#<)by+ykh}3 zv`)j-7D{kA8{ujGD0qF`2R=WUjZz;RQ8u6-Xgk9MxaA{smcw)I9?x@y>D|f>o;jJ~iQJoB*JLRLyxK=1Pu?=J=XjP^z z)VA=mD~dUS1J_L9#=B*3X}N!)|M2MXI>;)xHzNOCnZGlOV*KQD`SmL9(5*S6;YZm+v+Q5h{oE6_^Q=5Ao51yU5GtI2(6v-5_gjv0h(p&e-ML6f;H6|7{v~({uynT6}U% zx%~fJf>J6{H8=FRIYXnkX_~U!x|`p=LkhE2T$avVVfK%F6aF!S z3!5LoEgz=E&0TN6E%yuNFf^3%Cj5D$9Q}QcxU14}+_r8Lx!_|-T!364H)`3xo(&;= z|6X6xPB^s#yNqwo=5QRPT&8cEf?xC zgj@MGigR3A;(VU}#XjvToO!3b6kM+guK9)wHeb%IdJ@mA%bQD@5UW*z0nTl96t^hr z3%8`U1GhrnfLlF!KDTAfD(+Ylo2n3hMa2k>XJAFOMeUSs?BeE}P38hVcIE<|j&cjP zWOGYpcX1&b|2VG?>03H|NhjgdiLd->8aHyp18xNC#EqBVz)kJv!v&aFasgYu{dPxr z6VAL*Udksg?2Yj3LM=Ikz;EyK=6aqm=lYJL>plgV5MxzG1I}zoJH~)3(k9FeH=JN zd3Ub*1_RF6&bv?(ZVKm2+WdQrg|%y%7T3kiq!;NV!sm(X^B6leX`wBf&J*}tLB+YD z^?&y*(xhTFVNX{#U{5x%V-GjE%m#PPA^j^>f6}}1^yXhQ_=la7IgbsVG?)#XG?4Ae z@5>Hq`+cqzam@{Q?qJ0=Hj1lk{fU*Sy@>69NQ>>0F2Rmm>&wnHielHa5$f|<#yd0m z=R7mk+Vz;4|JeUrUi6viHnAob5TIW4nU-baL|pYcGMxLs)?ap#ZIi6T4$$>xr>T_b z9Z40f3)9*^oblYefvMSL6=T$OF{7KG$Qaf@#^h?fLSGoA*L4`_11#@@%90}Am^=r8 zy$8Ig4O)t3e~N58lh4||H)Gx3>9b8e#|cv&nU{-hFp=9L8CGKlv!YKD(|2}L#+|cd z3=I!5N;bC{g}vJtjYqDGfx|{d@1ZZF@^vjQKeHY$eoX74IGBWdde4#wUz;h)qac^8 zR{B@g_=uYz+bD}|zWmF9%*Qo*nCH(NnKO%Rnb3fa%+P?Lj7!I4MkQzuFH>#^FXyur zqcldBF_E-l%%^gU8t&yi$G5x)^>4pl^S7#N^Se!=cPtV6zy1B5S+Eu(AM`n27Cr@8 zmtU>7I$x&QKg>IYMCNvjugs3vw#@9ODU8k7Z^tIyZMz?iQA}<3CX7nLUY?ErSwZ?m zwng*&=1+Nx{Iq#bQ61Lcj%m?)MJ|~SSC8=J#-#97WiRs8x3}jj9$d@h^o!ujt3Iws zKd3G7WW1!jvRV%33b(Q5E?-&mle$0Gb5-2Bs@mWIP!W9ZNNJc_{+H&U9#4xxkUJ$cB#e%mE;ezG)9_P z?VQ7GRO`uX5BtbO_ON6wydKOvTgNNhhhKfcZN9DBbv~L*D9Hwu6Wis<06$=|8*AB7 zj`jSa!rF~6<_CFtJ5BN4=^5rdA zlFDm$raMmtf?YRtHFvcipYL+YedW)-F+L+FGvlB5GmB+4nc!22%&Hl;n6)n1OxW`T z=8!}RbJ=baKcKTr;ePy&!zTZ{KYb?ND}n*GT5co0zupDM?6HlUqH-5HPaXEmWv!f> z>q`DHo|nUW-gY^4-u>h>-V=LgUS!;M-r!Ahcrt#uu9If*U80nvob%m$ojs(sINyr@ zHXk%E^zBW?QgQ(^F?u)?A_2_mcJ-LW4<|5z)z&cc-KH{oG7s`+b$nD2u~8e;hsw%; zi{sh3u4AALuceP7@1E=j#^6>KV|L%4hcmYFrUs?+Bzv!SwR2wX{Bczyhu0^x3+)&F z6)t&eZrxzEt^NLfUuJ)A4`%M6p^Sf*q_X-!^@-ieV1U`z{Q+-It4u}@yqOv8hcg?~ zl=)kIs5iOX?)}NJbs7YB}%O{b*T>VE({FtTc^L}`_~&Q48D*L)F&#M z0k@#{-<|`m=ys_+Vx1Tu28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYK zhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP- zfEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N82FKarZe_PG@brVqUp@O zzkR0;>Gq>;qzCCi3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;j zF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e z5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv z05Kqp44{U}#o~TpYumxaKSTeuEnvgq@x{wZT8CXh&LwT5a^hcD7{K}o?xpbs7(WZB zA-%m+bce4#k~S=}3M+00E_awz{4=c+ufo6pnyl9m20zFL>JP*KF+dCu1H=F^KnxHA z#6Zdh2p6A{)bu{uA|njm!y5gYfqY!=EMLoP?-$C z^tbf8>T6=KG8wF_wqewu0Cd-Yif)tIBhHBdVt^Q^ zcm`mCM+;bdjf4HxHAPu}Tpc|c*M>bWi~(!KWQcMsU1Jax{CkBWCVxVd;zg(WOI}K`X`C%TNs-PQA zG@Dly;uOXh`B}qd`03AD@zZzI610CHJ>C=QZk`EE_pO9}kDtNZLw2y>aT{3N`Xa1w z9tP_sje}74V}kZWnC#=!OaBOyKUKvS{>ziQ`8V3_;M0%{FcgQ88joP%~d!tjp4@4SO3*^(0V%w#$8K;c~)t#R6hcL&*#X;|tHZ86(_x?9X*g8h47gQ%IO#JHqJ5^p^<_2TLA{lbw741M%3GlHq-0dT zm4(%&Rf+GtxF*XUSAX1ytF})5mDW^Nw(*`ndbkOH$((ciH64P>svQKmp9cSF*I=1z z9<09b!(4o@ZOkUv(83B<8_Pk6(m@EmTN^@d%`9vKwx>^p9g*i?JEX#nKAy1aU1Qi6 z;tGeR_XgI_6ONj!fRk=};hf?OxR~A)Zm4{QdrJnx^I5Wxsk{pEC%#8nvnHrIvj*zj zoP*{!o0ipgQLK;Q&uU}Xqe$HGB^b|K?JSBh2#e4BL))VH=hDXr(jVBDGZyxBZUVa$ zIzU9s|9?+7dDIY2q`iUT$`9b!UR5~$qAr}O?+9nxREP74-f-!%HC*$V3b&Tuhx=*0 zAb$1;NSz`DIXUA{LQxjwWt*a!L|xR)yoKfi>R@gAcj&f%Dmpgs6=W>JU>o=CX@!Tc zf5p>7G%!xfK^S}zMIZPnjV<{}T&N&@ha0@zaCr#8`B~r3OW>XnLhR^maNVmGT+LR3 zYhKmi`spJO>*fr%7uv%8F;n4*jT0oqOoY@0|3G%&XUI?5h*Hn*qJr^NRCkI&J^d|c zcKQI;id99I!yVD%b8|t)AuP7>FBvO z2J6r7CCFIFcG=FQg-tL1Je@TD_}-WJCkOjigl{M-9gdRqBjIzDA$$pbfs)KHlrY)_ z`I>DZcWftky?i~q8nzoUFUrEJp)9=SheHm}7xD_u_dn?jKuNt+lsWegDrknHs-`q* zogab*HY#XtKNV|U?}E-|is;!}7JYJp(ORNIMZ`pHh-M#Pw=cWL?i=@sd2C`R=p3Tf z4HngGub|=^HLNy30_8i!pxpCKD0{FKN{8)3$yw3xHBtjU?;j7Jawfv((RbjhzCB7x z1fbOWmnb{i7praSips-cP(5B7b!0-&@ZM9jXxU+ zZEb}Ld9AQo%hxFPIuGSE>{0f_A(VZujB@9vVm0U4sOY4P%2CFsmT!n!j|ZXNm}Y2v z7SQrSJGAZg9G#t)p<8NGtT&F2jR&M+qd`#>5fil`TI?6)3kIYe1NDeS97G&1Dig#K zd3Fri<%~e9MagIqbQKNM`=CzraMTVMjhg8N=j-zmP~B`Us>aBm%8{d}{3#BVk2|39 z$AhSH;R33;v_}n|U%_!B7RMMKpoXd3+#ty}0}?X5e}W!ppa*p-3x;R5=!_>4`r zwiQGiWK%Rb|2c2aB=QT44`-p@b&a35mG@`lpYcIwi(IrF{0gmlEkV=JooHmb8uhRB zLcMnLP}hDT>KK}1b)AK%UC#xz4jw?Qzy_#wT^qGS?XmjTVAPXega$kG(fDl`ntxu2 zHLmYPyM@W|7z=;Y3LrZcU9a zSkP@YL?$$>2*1&53m`Kw5FOwu)(kmQJ7lelI2BM*lK>^>b z(7?M78ra@NgQ+dhu*ozu+VKfZ_9>%z%lT*(Ivi_;pG5odvgq2RCVFmJfj%A&u-z$j z^u0U^>mA)$5itpS8<@0dA7-ztBkX=wq<>s=tIOQ*_YSbmEvKT|#Rh5n(L*K(otMnT z+FB`SeIXky9EYOWTURvSV}ce+^U?fnZ8RV87R}{j(JX2jnw@xv=4!!cetQ#I){I2! zT1(O9Oaj)Hvq6WCEV@R-poe2;Y%s|WTWX!bZgpFrU-GPqib>ep!Pm*lh26)B_AhdN zPs@sK^LOo`O{=?TlW-AjUKpayp%-W~z6RQ~ut%GgZP8}+8?4zX7;7!wkF^6d(Lv=M zIyc&ejBZWz=+g%4>4%|@O+2=?7>VsPCKR@V(=OKiU3;`mJkHt6nn!-;iB8OmeF|mW zPmuM|!TT^e)a;B7wT;lh1kgdM2HL+IgZ7Ed(ZR?I9oX~ec;5}3aUAkIo}$~pQ|MJ= zBi8#Wg$?~@VH35fSVxtfLoev}g3Obs+jdj4VENN(3DvO>dD|0^H@+G2HeEs983W{< zZil>`)sPpwzhGMgGMaOcFRzDg7f+&RoyS;ra!vG}Hx(Nhcb3q&vXf-&CjA=atZ8tVqH#`;fnu~Cf>Y`X6@ zww`B(UI*#^72>{B+#|qTVLW!Bx0N+EY&0Jmeht7zwMJvZq)phc-$eAjZGhg>I-oa~ ziVdHdqtB5C*wjK5efrRMT4KIb%nKv$#eKr2hkIl52ko(?nL4(t(H>i@I*ZNsWn;6& z-LUBh4Q%p(!KSl3u-Uvi=sqm5_`bAW_Vawaxcl2Zgrr^BwG)J9*zxUF>@>&(JKoI0 z4pFDDeJ@FD8$JbFkGPI4jk{utD=wEPyWTm4U8SPYPw_f- z@p8gWj|Wv{T_|?(@0-|%$HQJXlCkH$W7uP_EOuW$5&flksKfYC{>4B4RXN8v&^;0R zFPnh&*S5oUvQt9Q2y?TL+_5j!Qt0%V7f65NVoIq!kvM1#mS+RNdB$2$KDAC9;-MG>&p#%y-{;5>Wxc_p z{sG`m`F@^&8&?0aPvf&Vx}TeV50${Db#gG)FbGd9>Vo@j_ZMmQYrg0NMzJG)7X#jJ z(C&BJX`A53T4B)`ueNJe=nHP2eGE68ua3dTME0GH+y@^`7*glO@3cKyZB&IkkN!I! zXj|p?FFe`g4jxqefA&{gY=z6Z=3-!*Z_hr6YJQ-%YX`_wyoQN#4CH&o@h?tVgAso(xSQUCX1)4~Q(P1a^@l$(z+LQr z7pxWJptjl5Kh>q}#FIEN0IJjZpg%mDdsDNIIK@S=P(S?>1E5q-5vup2`(NnVy;wZU z^e5hnZ|Cxq)u4L9mEvWzPGcr9KnxHA;>!ScMOrAIK_}+KmpRHU<(3$zdx_IbAYacqtT||S4{x6^J5XHF2XX=l?V*oxqPlenADv;T-C#37xLYkES@9NVw;z=ABfHw>Hph4slTo)IWd60OYxUgsdg=;l&(;>u&VBKi%_ErS5rwxPK18%XIhO z^%2@eW2iVX09kXKAwy}YIL1~UF=1o2+}_!PnwE!9bBhmZO^?Is?fp^Tcx!q1NH+d% zY=YNMWH*U~#*&{_7l&E|sGTx|-caN2x1ld#HQC``zlHo#I_| zz2#Y&e4uX5Uev179Mz@gplaI;R7qZqs+}!SEn*C6JULVv8&s!q@=m({zwT%~raxM& zoq!g)J<)PY7FtKjmR1{7`|5?t2Roy(-v?A~nSjb20hLExE$#kPkJztF22jsw1?snP zM*Ww=QGd1`>ZDnf#UE4*wMWI-XHao?2r3SIfr=xRlx2UaOZ- zsC;D*R(tUdHT+67pB2g+NJ4q$ACym3L;36tC=co=AMj6Q#X{|hS3iQf!v%J|1T|L2 zz?a4MP_{?CLT*s@`5=^jJ{Bcp65xGmT}X>`D2XTda9jx`+P^~Ssd*@Cz7=JT?ni0K z9F*8A7IR#e6gQPuT>kKd@p--DiLyPr$By#Nho=809MWs!PlAX9a?CLP^*E>53ZJK{zJAO!LmdyLw8H=9mMi{YOK(^>RoVlMboS7*Z{5 zAjNPFq-=c&$!5JFdAJcI-_VDYm~cq@5C!SY9zo`dk&rv3eo+okx_=C0_umTXv2!79 zMjWKJxd|y7or<>8@_)G^ElRHiEOIX0*uQej9qgM}>iN}CZtrfCiMWc=ipxB*mS2x;}bA!TwV zyo|Mjmn~aD+VvJc*P+j)&wEK)LAYuw_+Ui$=@h$92iGmQR+3)7Do69hX{fimDQdRY zK-JKvsIadQ%6i43%K-%rskh1OH>?aOC z3<(O+5Pu*G;`ep?Rhv}yXZE>w(@%5zg0FI|o^;|CjoehE86TL2&#{JUvRzh1j_W3 zhfhmpL3WQ(keXT@UQQVg$sN5Qg@36e+mPAp6g=AS03NBEz{8wsCDo(yfAbGZ{KE@% zfd*N(LBSij1GiYN*2^SrxM64R(ibxbGyMRs*1N#{9+M%u%L#xQS7EQdBy=Oii z*5x)vr-R0@09doc5fbE`;L(j)aN+7bh+MZGB38s!Rn7i3Zb&+#jEdEFqXvH}>ZTn- z9H%nNvY>;PPt(Fyi-4T1T=H-4@wuAd=zMyc;N_>%^Z;a~(` z9j~F>6c$zXZpZ3sqtIZYJ(|isLyI=0`fcmyHc&419LgPEic&UtDCzhLB^NdRxek5) zGwVNV1Z`V9EGmP;w2#M8CS+UN44QEtAUeUUX+;^)Iq-Oi!~Ji;dW;!{~jAbPgf5b8K;YycN0C z3!89tWsYz%0d?8D_t9)dj4m5H; zHLJ0Q{V3gz%^I|j(;pQj>@k4BrBcmpBJ6RHf0Z|0Z~^}ue0>KEnAguFusOmP)z{UU$;Cay14^*N%lb;1Dzg)OWe*H>%mY<&Gp(SS#!sE>Q`Er&UZg4ewj^pf&nsdB5)yu;+*$}Q=Q$GHe z57ypq0av|a9H)I;n$y!r;PkmQoLS=&oZ0o$q|^U&A}z#I3-&Tkp)j{>%+B3~OHR4( z3Ql!!8s%F&^G$jEbza#A=HuC{o=@2Ko%fSQzt)I!5l>y%%fsKWaj#kS>D)Z_RoVwm z>CSM@xcayI_9*8i=iF^Z9EG?(=|tH<`XQfAw_K4T}|KFW6LBvsz+2%A0Fltj;Ai1_(> zc`?OmL`$w#!&ONn~m&mN-8<)7;a5 zi(TI6=l$q&)jqC7E?jq%HJ^~o)`~g6x_P{2eT-)bGZRd!I~k0p|9PgS*BHjA^)^N~ zOPVoMy~~(vJznTHqm<;$NbkwxeNc`mii2-G>f2mmMW1O|wV5xT|Hys4F0#5Ud$LB` zwzF2*xy83t_Bs>qkii@_ZNeP>Y{V>YyMpO+a3l-oz7_7`pg(; zRb%vyA7WIpWqA1+{dnmLQ`xal`@(&!;oV&_KJv@EZ}&b3L$3JJ_L|I>UC)`!k4empkFA*P zdJ~vgEA<$gzTe&z$-8xbmD#{X>ba#|N|?t~>jtZCExMZT~tB32Zw zSLBk(iR{dm#E*RWKv%wk>P)`$`H@W8Jx}JITZfADgW9TEeTHpl+qE#~Y?t|S+0NPj zx+dtVxOGQ)F~OV}vY!d-{B6!7=2)N)bLNX2b9-4wCSCsuUov|;U%8$=Ut3CpUvC4= z^-JgLzdc_s4}PY| z#Xcp*RVi$w>)Du=yq496@It3W@b(2S;%&?FI~J5L6JT{m?#ceNj%?{doh zU+*+xd`3=Y#y|0A7Rzcf!KV_LRTH)`Yu>M9!d$vA2bQWZ7eagUTkaoSm}CCdqvt8t zg3C2&Te7xnm#jB@)x9Z>*<%|yMddDZo;vKA%UU@%*OmNZJTHg$yzO%8y!**%yeIa~ zyvVriyuq91@MQdQT_?@ryF@8TIp@3iI(tZMalRFQw@_zZ=-Zo&rQ`x;V)Sq(L;{%A z?dma$AC6?^=G!v!o+U85y-fHmw+*A5l$;aNrt-9LaXdTMbquuOwe(Ts-IM*m7~INY z%#&(Or&T7S2j0w#_QRQtY0CVCHlh5!fqjeYGiNiG7p?zp z$!{08kl!d~&F|{aw#pmpNc(?l&#!mVmEU681k&c;+K?vVuZdgT3|q>x_~)5&OgSb7 zhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP- zfEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR z28aP-fEXYKhyh}N7$63S0b)S-8E867S)%F8z7kDm4HAjDEQu-MXNqz}IU)v#0b+m{ zAO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S z0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b-!?7{K8(#~0ThL%QBA{uzQB zg#)+Sws=`d>u_(8UrF1jyz+8P+W)9ME_1n88ckqeuXWJQa&M{X<{sEuntD{{$6Sye z6{82%Xq+r4txHO6qJ3kTQQ7?lg=2l_F7Rq=oj(1X#Kw|VQ$nJ2#?l)lSXHX z+d(OpQk@?a--p(TX+bl9{Z^<6x(%{V91{b?05L!e5Cg;jF+dCu1H?da2GGTCUh&Vg zPJC1q2GDW(i>eYU#aaIS8kLSLLyIL^&4nz5F>RO-WN?fEXYKh=D=|Kx@H6Vu4s728aP-fEW;U z25@sfBTyH$4mNk`gV_VekoY6cD=U7>l{x96mw?W^r2?ayTl=*5lqKJ=^Y zpraWKlg8V_e3OQ-)L;+&>k5so$6 z2T?v};hJ7MIC*#euk4Cz86LjX1M$u%ag9%u;(}T1w{s2%9li%5mIVIFcbGM&4ou5` z0JE=rfr+&ifXV*3Fz?bzSowS|tT3zrEB%(kYTJhpdioS>x_=zP)u+SObvSKt_z3g<>#fS8WQ;7-UBc)rUHvWKRl^vyYt@4fz4ZHrqOo>ZNHCsG&S z3G2<`7F%V+!#+ROkE_4Vh_iX~ysYiR(&<_-EawaaPpk*)TKup-gda?V(CCh^YSA-NKZHvW(bitZUKf( zfRp~g5asw0t~gACTZ0_o(T7+_HW&c8PWdSLm_fyXUZ`>3wXD92Vtu^S;SgTbF~jRO z8e;OHALfe|#ds>yXC}$)E^|rixFCIiUH5Oot~Eno`)mW)qUllC7Qlxf0H-WqC9)vW zX)HuOu>o%FRluCra6D=roVt+$=eh>Kh1KB@gM%P8Wd}TH>>d(zU%R4L@E=Uk$EW%(L<6@og!Hh}x((e%Fy95h^Pon4pe}S(Pe{pEI zAbp4E125sMN+z7FzoV!fxcY7+TzqpG&L_@-s0ouHYVdwIKe{1YXgL`!J--hzxkur~ z;dr?183PaY?}m7%uaNwNh1W6T;iGaOO8Z)&!oxPG{*I4&1M|`J@F=uqGmGqt^AcY; z4#K3RH84YVq&UY}-m&o~A8N&4oteTv?5n`X8JGF{WR{h88^!HGQrZ!C@>m7#&vt?b zUB?t|gBL??z>{%KaL=8ExUC-`_R4sOZT=6$J`aPqe%5d&b|l;Kb(AJ|Wd zKkZ3P{+T;9D?%4|*X0zvwq+rs{VK>*O@!A?w!*7PR*>3pCL}Hy3D0d;z%!m5Je@KZ zp5ERG@mA*`VbW?yTDAvL=ih`^V^Sfv*JSwEPXZ+`n4sK9RaDxkiW&n`P&TkdBc=(FHh5(RC! z^*1}fn2qxwa?NI#EwKgk_P3}Azft8qqM}`Il)J8gGCea;>aH(JM%O@z4NKt5;G^&{ zLE?01ZqpqiI|Zv<`ZQwv*D(!8sb8URw(?98+$IV3Tge$22{u!zoTcR>g1r^^fLPc2@R4_)YRzC>k z=d49}>B}e=Hx}h3XQKT2Xsi}F0Tnx3L*-#SRIC0LHGR*ZPJ;tzkg9`bGrpjWq7>R6 zUyCj)+aOQBH@YU92s$QVw|`WTZ+uj!WH$BUBwV3sn*uph^oKDxYbI%6%51a$|i|o)Up7 z)$5|FoeZj7I)EC_15ta?e$>65iH6{hW}^;ajiK++q0VS@pX!12_2yu$ofj%1CSh;m zs7la-quOz|gx$}I^bZ@_d!Xgg?$~gmMMbrXb{_d?9W@F~cj=;m|7p~b{)k#?ny6XL z0yWo2pysnxsJTxMHQQZ9jhtZAINTLAB4(n-V{6nLvlF#ucE{=lhNx?Q2K8@lMq`t z=546EP7QSj7x3-y3U#H8Q0L=m)OFHE-DB~nhf~p@)v`w_n)&DksXn9o@U0?n1&hWprRbKm{QEW0AK@=Jt z@kXO90cbQk6OH=3L!*M<=Z$90MWfuAX#A)(n)WnB^M0ym`ED%QNQ^>T6LYk?mx7Lu z+oR3O!{y}<*%8ma0cRSRp_hr5Fy$95q&A`XZ96p2k|B5+`Hj(j(I>Ru5ry_c?x5YLR%kb;UBUNcW3(H19qs+?(BXLq zIwkVa!B{BcpgtpheMZnZMd!XJ(bXsbc_s-3|0~gTn=QH|=Av_6Yjjq5giZ&7(b+N) zUF2({_4q-8_D9_9bmF} zA<+A(MM*32RlJTb=<~iiHoA2U8*Yn4?{;BWKYBjaeZL3m=y_7E#Vgm8&mZ%NE$@0_ z3tfF|w!1Sn9hiVk)E}ac_f=Gc>7><&r3bdp>xgY%%*Hl0k=QCJ7F%v^i5{W! z{2kqkS>nBzWf=qTvTqcIoT!j{c*^2eVO{JJHU>MrXn-BgJj3==H)8vJbp4XJ|0DN! zSn+XbSi`t(<4RMnGU{M=z7_gb`v?EotAp*2MpuRpRjJLRD$qb2;)OFKZ$fmyxA_jl zAs&iB@aMBf71e8qgU%51Aq3(!jD(}}!yp_tf6wg`FZjj|*HFQyb1q>h(LF@z$btzuQjR zs!l(^7iljG^Npw4tKwmEYuvtFWPdk=H3J(!#uwk;@q4t|=n9#G7gK^83MHq5FUzBqLFE`OU2S7G*(e5?F%U)*v4$AVqqYODEhdn~!z1Es?E#A4N{Qj6<*k*ehcFa;DU4GPs^bmhN zV9ofkuHo7@W5;(-0PGJ58DohM7hS0xsB$(Aoj(cePGvbgaf12Lby&tSYtB*f^3FX#p52u zT(!=XfOXjin}ch^vTL7U>PMRMg~ocZAM1;canN#-F${h?wRjn=SFJIys^%N?f;)iS zN4nRmgfSnRxt%R9Hc(r?A!={d!|HSNP`Ar`G_;;uUbe|j*~cp`km&6+KCg!1Cq6b>}>_B5TAJlpJ7PW@eL``i|)btES&1)-ATX!Am zNJ*o@>CPqDq4Kh`Oq!LiX2^`cjm`z{__3EXLZ_CI=+Lzl^4&}IUM|!>z8kCCG(wHs zE~xI6ifXYFP`$x!)L1bLwa|ugRld0*JYK00@a#3Z<8`PMUi>haypyIm()NC(V z8l6#Y!h2NU*G7emCaCbXIw~A%jS7MDO0zH3Dc?Mbqn^;^_)|f}g_;^VD5>%m<@-7p zwt@1=vr!f=qvXS@@F{C2yt+{0Gw|@){tZg0siJKC6DXHD5#<6#qs-++C^hPVp!_Af zRja>1O|_8H98KMoWIYF4{vnuKwi*Y_`Ek8r6(q$!n_2O?3)T-hTVtvFIklGK3TLsEz6%*=(9qZ zbp4;MXf$vMPQR>E7ERz?>KAyWq5zp&%;8o11IXxd8!}hDgp3b2AVYE^WXu{1Y4MF9 z-DNSPhrED{6|Ldb+0&4vbsMsoL6A4(+x(7&ZKCwE4Ul{JAY|DdgIBiKAS1UeWHb=U zcfFKFBdYs9#wtS#IF`MsH0|Oh<9wXZ)v7dg3+te)$y$`2dIY7^uc3rTC&<^D4Y}AA z-gIaS+0El1YfNj%IJF(p=JtT}rXwK3|0`rZiH592mmw?tU-yDTW^!G~FkB32!_y%3 zS>VZo)3xq zfAx*B_*RwcLSpoEi2G;*Cy!r*!@8G?w1E8TkKvg8N|@Fu6l%{q1nu5B6m6^OOT_NU zrPTmsOf%5-_!g{{`V6h4TA}ex1FUWwi^__ZP`233o=mhQmJguz$u8IPp0MUPp99 zwc+uQc>5e|KHV9b59q*MuxTXDx(FgRcrfDtR?{7bT5S%Zk)kh}?(BjVEvlo{)rDBo ztUp>$YKMBKWQ*E{+z%fiYibx|J`XG^D`^SI!(`z3=H-wORllSd<`>rd&j)s7~39I3>%=% zDQz@)zYHz>+|c5MLQ%c4EKwrX3ng0Qzz3xq$Q#rZ^3s-+Wq+#s>plUOEWZC{0;ktc zD$$<8P%GYgeccA)yScc}KFNm;dmb5@_=?YqtJB}@jTJZ_>y zTERJ!#mKVSq58kh5$Pg$T_Ee34kYjX{@Ye*G>0pz7QwRx1=m8)oQIqb0QvWJ!`C{Y zD6zn=H2YH>!RM7UE`N>TWG6egJX;g)ERTWbEnY+VWQ3eWr{IIP(w&8_)EqF6)4CL8dsAylP zJ<;Z$i`hA?Fo#^c#F1a+lGiwI;IGOnvkW$$r{{AEa#oo+5cRgXaLLcy_S(z1unc8x z?XJwicsMz(8~d=+#G=?DIh7M^;NGEJ-7oWt%4kX4i82G+p`|h09_d!xnj6X7{EOCH z{~kLyS*{Le+jcCs7 zSq7UI-jnNhFsG#bsGOJ*RR%zwzk`e1&v7%Wjo^G{x^j+77IU>#y*LxEqa0&drr(+> zLj#bSPQT&O`Tl?UzQeV$T)~;SYP0#xK69G&4Y)cz=~@Xf^`DrkjIppRZE_JiJ-Cs^ zleuOKUvZi(XR|j?eZOa^EOw|ao%@Iq17O;Hd7;1D@R_^0j>pDuR=wAXlK=QxR=d z)i&VL*V9!sc43d3ebc`W8{2UeYoYHe?7otJbWA8u2H5)vJJ<)!$Ft8}Q`k%=$MUpI zwun_>Wq=J*tjV5?+s#HD%Vcl%vt*xlFy^G}dvdk9%oA3hMbR%9S?8iC`Yp~rvm5TW zVK?>I#P0N!W8rKBdqF0deVCvo&M{MLbSz@@AG@-{*V(Y6uPU&Ck3X?NN?qA7*9dmY zn_k2R@geRE9Jw{-Zefgv21I;&Zvfk7lRE2nU+A7Q6Zbq&e3d)a9N8T?JCa-L8JQSU z<>yN!7Au#S4%b3%aXs(^I6gUh)R2?IAyV@_)32M zx=-`^*Ky}H{(Q_evR=Xw)351;I-`4Bx6}HsnG+UW zc=58Uc(1MhkG=DN%c+0=czdW+v_&dfRI2;j%18-WC6e&idv6|FWRnp>WQ1&4o$HgG zy|>IHGkaxa{mcK=^Yr-PDUa&Db9ueIzUO@Bb$zb)_uQv5zNePt-PuvHViVgT+sqV} z_y~55PY7O0%Y`-{cL-rsVhW32><7=Ee`7!zy1I%myOSWyOc)_V`<)dQMSK?4S8Dig z?c}{24tg`?-3PY+*UWF>(4Qp*vBfQ6N5?9{_80oX)>|P$OpX1rtgqnd-u7$z1nYA8 zLfMQ}+P`tWo|#8>SB_BJ=`Zi#eXkDZ{~D&`Nk`$~Yjxq|%@4wfSL=jB4etuORb~2G zhERKnhu~iGqhQ;-iBRHhcfol2TfwZsA)#cKg_*hwT4CJ;f z`uj2dqnHb?Ovebf%cu)CW^WNL*B|kty7^ru>{~onSmHH9hz=|-OxT(xv~chiq#L{i zvm2^{mhE{#bFEa+pV>e#m39`44-OV|hIf^u-BzQg%)_5BU)8?lL?bQwl71GBDI+NE*9;3&}wyA zFo%U;F+D}l)qNyM!7Ir!y^fiF#Kriv5>E{I@|z$lez6_0H!q~+(ys`g?LWy%Y=o3C zWrZtijtM8WFBhnRyD%?cg3u$lj9_!CXr_&lLwEmitzEFw-z;c1iImv3NRSmD*bdp_ z{ChDG?)%rtDiaPb5wf=PGZhkB>=JHx*B0(|au8Cdy%TO2Zx@cntraHsdXk@Z@L2N0 z?XQTHaAN4;%zlKOX|;r1&fC83)2+zzm0#!m?7l!dw+V~)r+pc3Q({j+v??hie6|u! zSFSGHXtq{(ylu4bR%M7(y~w7Y9fRBbUi|)-cuN~p>LnaAA0=#kJV%HddN-@D3U^v| zcCq$VbzR>7oLe2U1#T~6oh7Zidr7v8i_EH%J#~FLU)Ob6)7`Eb;^gf4*|&vh$CQN# zmuJF4uk%9m^<%=?3Xg=i8^OZ zVM`@p(UeERmR+r+qdUb_80sD6(#-aft7GahH?1YT-4c$~lhiZpCW#!rOtOB~6v>LG zO(kJr_ay;)T1r%CmfND{mTry%(_MGDhkqR>p+@f^!oZ{!!c^5_!mM4lg*k$k5K%T# zh!hotWpCVt%|rW1bq0NTuU={w`{j9~ulwNryoo*Q`nRq^!rr&iHZztwKkx5TVPD!L zmtj4UUFWG)bPJbmlT>zkD~VCllU%y@K$7I>BH4N_M$&ars6?e%n%m$Isp~#1C71My zOcmb#q1@#XyiN#v{3g0&_W3?*~Vo)T8fyOI@8VMALFVeF>vLW|%#S$UkwPOLc={~HTo-P^DHtZ=xJI5p0#HNm;q*h8DIvO0cL<1UNEZd)(H6W$Ij_^s3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM3@`)C z05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM z3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0 z%m6dM3@`)C05iZ0$TzE7tfkB3S?X!gACZPVEfdfzMKd|vBX zRv5s#c|kd`g~Zq*wB|wO9M!!y)+8tOxDL;Qf?xmvTAq0|F1@JIm7bdELNFVC6W zGJvQlmRW5uCe%4=`@f{LXz@_mx+jtj4V{y{A9`pSl6{}InO9k00OJkgWx)=%f#(A= zzzi@0%m6dM3@`)C05kCWFo4pVyK=mLpLlbu|Bf|EZ@b5O{H+ITkvlEWXyPLHjVs2w z%&LU{`U20?;e5n zj0~e~O%s1Ny%BBjkN4t#H~$OLU*U6-o>cM7$2iy5<@4GO+MsAhr!AG~e5aRmC*d}w zJB#$8TTA*lZ73AlErasd%}{P)pVxNCQvX;Z{$m|2S+cD#+Yfa z{hqYFyZ^{vYCr#_*e%%UM|HkeMu&ne>DAbq^un<{r8Qqn>3b_fVa`e@-L3>xH)Cjc zHh@-C5OmHg`CcD|F(0vUI|`#;^5m14=-V&TUfMt5I3-y2{1vv-a#LeEeI*QvSDm5M zupbm6PtfO^b)oR-36%TShT0#=(DYmc?dHv)o751+|ImOzSI1v5w!HKKR8f-`TMM(D zv_H8gUEi;o=_B1x{O)>BG>@F9lg0IKX+c}OHqnc~mh^cD5*p#E+>bJ1wAtC%74z1yH{tV^{ zI>z+z=&(#1ptYzobWfUp%N}~C|DN9VaDjrels@h$M~9q`L1lX*Xd3o`>Xt=NEprTN zd*?#qvki)z?**+VC86D01=?41p%Wbg-J*%mcUXwx$)+$iUI4SRZDC<{7-ftC;n06P z+@xz^-!|b}V;8nO9CwSxu|qL9JZ@QG^Q|EK5gwNal{RWnP1?2h#oUe$r8Y(B*3>{K zPq%`aeXH#4q1{&>8W%f3ZT)_z-FJniTVrS+JDynw#Y1$UFHJ|$aW>FtJ_}!aAa*5Z*hRxV0V-}HVu{=Ogq=oxdM?4ke*iEf{(; zHf4?lQ|%it?k0s{=W#Ib>HveHHDM4k1%^H|U?dp~W4p32sl67aq7F)g-9yP+Rw%uD zEy~z!fSuJPl#h#m%e`f&xauLQZk`CAhej;SOWR?#w;W7+9D&K|^sI4UF@7{kmhFKOEoZ>2PD_~H=>jwD zhA^8`1||B$!MyJpl#Htni~6astQ!sMol9V|(H;(V)8J(93)d|{sF=_fRXw+&`m3g> zJwXY6=DV``FU%=kPAZC5F$3|z6`c}_?o!put{9E*{g*r5qG2|+E@FP z{eRsTY>PBSnNsUv)!YQuieK(U!S-w!lvUjftAV#r`tYByNSKhpcyU-X428wE87Mt@ zC@kj~!0O2al!<-q0F(1DAQyk$^9CCtl>1>A1*5lA!M}iaM**Y zQ`(_=-L3E)I1_#qQxJGM}Q-)O9WLS_eo6_JG?Wd$<_9 zfOBLVoV8Qnlw<)XM<40)Wn!%xd6WEU!0egcEu-EMa`)(?5kPJXMzq=^EHyln2 zC!s=03AoJ}3F(f5s1!IIp7m#;`pil2)hmH|$s!t#QbN<$LGbQZJFk7>{^e_K(TSmD zpk4VMEH{TiQ|Tt1KarLnF+}BVv*13@4bqZBAZgYTZeEda9rXb&t6QVOLOVE*^?=i? z>u|i^4UXZ*;5cUj9A6HD)6VH|zVRL|tzN^emO6yUt#EIrhRTcXqgwqN@Cob+-;kH6 zw;%!yqCyb(*cbs;6Z69-9z(v^&x#iUCKg2*?J-d9q?nbL7b)tRo1i8}z-xs9swxGd zQvFYGZ#W3j*CioUG=X5-0Fs(D;MUm%uB&3<&*QTu%}+f$C2zjw#$HUi&=Aw724IHg*4(uF*}Cu#7g6^@ z1Jv4o1wO@<;H5tRRi6w(l}+lXVqt>Hdsd@z&_q;99)n5){87m+0+qBjqf)s`s5G}U zDz|%$DswXKSCu*sFT+ZxK5`^#b}&Tk+cV(TxDf(N??7|dpmo$D)cwfk_!;+0;)|DG z7H>v*{%q~fGEoriFz@|Ugk289f+CaiYkV|BJnFxRMD1azs4=%HyxVt0HP>zM?Dh$s zCvL&>(@uC^I0DaU4)Cmb5T5$o;HkI^o;E|^Ib#v3HBN@t#N()5bT@oH4@RvP+fm21 zD(Vk2LqO691lOF8wt6b){^%d~k@L$xSsW+cWS5pK+EtJ?VaW5V1v&oLW21VREvP=I zG^+Q~M|Ix}zRf1X`%NsopEg7FV%t!C;6C^`YobPL2h>a+3*SS{P*+a}^_Olyg8@wu zXlje5<3FJ3?OU0BBeE&Kmz$x(*E;|1`yoro0F8KcVcp6Ai<*?lxzPyr3QbV0*uwa}>kIRy4kM&p;w5!m+= z^OOJlu;#yBa|D@>Lz7@D1nW-A_`d~BwyC0t>s$m)ZjHuwGS2B^IwDBpC4zQFqTWn? zM*TnjEgP?peup{!^&J1Krf4CoM~i+N(Za+4e+>JK<{J&rY|}9`?dgqR!)P>Vw)AKF z=613ZXO6}H#sck!IG|n2acDcJ721s3fYyCo(8}ozT3p-6di}3ntV!X~1l?wDMwcUv z(AmWi9gns_he7dZw=W!a6L)i*3s0Ommj4?|^jV~eUQ(8o|0eSAe(w3BVhJ$HGj89sG*mXrSR zexuA@567@gJ1}TQ9}K8?2z~rz>bZ-YXe)1Z;&m6)kvE&aWiJesH=;!KkZ+Z7o@^bb zWF;Q)T4%qkqbDo&{Hz@?8W{@HrGG*rGEdhQ`C0q8o$SrOc%|Nj;#>1DdHw+=X1-aB zA?3g~-`9&*Y+{&Ihf~?(F~4Gh^ln@6sE!uSKlq5fE^>X392ytqL#?>wkF>+3RrP;V z&Sk&PT)c7H*k>uojW>9DnFKwvcE0+4lUIdpOi=Hnwev#L6atm~Sx^Qx9L3XYJ`~ z#o|z2GfbX+VB7PD{lca*opaKl7Yh66lZ97d^Ns!CIq@R~D6)<~SJSj8W%Uow`G3?0 zmoa1V$N(h_UQEa8%%!Nuv*gi!wwdSM&oV&U_Uxd2yZ>6x`)B*%cFdr>F+gi}Dbj(m z`LfQGylKPs@_c3nn1RB`039F9*Ej#;JFJC~3-*bRcg#THW`Ne!=4Uwh*#F(N2;p_4 z6x^HcM$7tl3)``PHvajE+$R<~zY1HN3c??_oNEbT|0p;fh(M#xy$iyIydIP455AGt zV{rfScm4q5nVVqMGyo2j72vTp0gYn#y*NHc`0hDEVVmPnZ7~;G=R3e?s1IyA&n#^I zu|M*6OwNy((dqG?bTXs?owNQxNn-*jbO z=9kI1r=+0mkk#?w-T#-p%Zs9CQlQ)N59oO(qL^|T3}dIss^7nZU1Fj`xVZYb_wV5A z&-jRn*So^4<3HZpgwMw{-|GubE0kc@^e`+monSm@8}vI*LQ$tV(7v<;+Mm}!Cvq2x zp4VaZnzKR+(jOk1=TlA@fWg@VFnrnzMicE}WH$%Jhm^}{+st}U zKh_B9o3BHCkr~wI-pfcE<)%H?WmXG{0jPu>gN9GWxk{Ch(41BgYIa%Im#t4kMiydOL6ol$IUM>;uYH zMo_r;jM6Q-(@VX}bf-+a@AXYD4_Z?CpTSUQz8s1l{Gd2@FnvCGgx9*S~y3>3=-QH1;ZhIV}d(o}wW^5we zd}&X&{HM@u?^1NPb#b~I^^8(YN7K_253*ta6}@BhaQ;@h>*z~&BG=LFex7t|-|?(+ zPXCS-Ymsv;GVT@i$%$TAd&mJ{Zr5^BH?t0kTONe&-CfX`vR9>ap+Eq#&l~@HA;DJPAP+~ zQ|h8|U)SONoX7opTG3Y5x^$<({_mClj`>&=n!0>)l#pwMYH-F;I$s|_q>R)a?WD|AO`EA4-Ngr0h;XO;c# zDK>09ms1TOz2}Iw{f*H&aRvetE~2jHB6#>_yyK%7j#AB{QS4@Ks80^0^fm|S;nWRu zQ$d$*o|#U!wtRQZb|}tsrYk3wQPOiAy8g&Gr?zmtjNjl12g_vYfCjCS;bIsC*~iw36j{oVD$#t4nvXn^|D+N1H% zc4#)~AX<9qq4ntQXtB&6ji@O+qC8-gdJDSMRp?`5YkG74qrMy(jGM zuZHpT6ez?-&=t!U6yK*KYnZ#=R#>)GL}h&q_}uS_dWTOU;B^ohAMi%AQX*RQvp|a$ zy6`cy&C-=#MDL;dQ_9huO>?vIzL!F`b5Up}xI;^ce~*9ioabw8Y2WY+P3r=772m)t z$PX&+JL%G>O|+%jsjur6)_wXMT=!S`h7tyoP`=L~NKY(-=Z9DDy{wA{R#g$Wdl7L#GP^E)_)?m~sf-~GEdt1YMb7hBf) z*J_Poy~ALrw-d&bX2W!&1xlY$gUy+7C}$c1$CcaQT;7p2|FxR4o3;R_x_i77527b z=<#})K9c|N)_LtK9XxLWHJ7*04_XP+J%eF--U((lBVhSqKWx&g!Xe@~oE-YWF)36~kB6+!uh$0}$1lRDs0Q@KFV8Tb^f@Ki_(a0~0KdP*$NOB}+otgvN||$% zru6ydHF9z7<&m;Bhv~+7zMjdP=Zf>M8K$0(=TrZy5j3bm0R8EE@yi_W3+znQM*p>r zE~%7jMYS4Sp-G?Pzi!X_zy5cPHO+fXX<)~LH1wn)^{uH%{T$m<$mH5oKdc&c-8O{U z_VA)AuU>N;@;(l%alvRzy{GM^_G5-ouYEc+GO;`LaXC#LQoB-J*Aui@fv*?xdBuM^ zuaL!gO|x!>(y)gi)bn6yv?`-?;IbSG1*OzJq=u!0nyUD|U47s0q!7Tiq zEc{M!r}iO-GyNrDfg!mkkEB|U_0VfUE(pKqp`)}Q#^o`;f9#^6D%ELlnLlaBUOgIVU!O*|IzVHe^S8J7 z+^0~V`-oLii&KwhAF2D=@zkr%3F^~Sn+9(1r9qZ_%xCrsHT#*rhg4?8(=Vx{`pYkA z+woJV{rIW;TlxLpO4g?EX+vJI(NuqN3^goYi{o4P;>$7peoV<@U2F23K7ndDjHLRz z;;3!!;ncq*pZovI`42t3I-9xrK3DRf4LNDdBNw|KfEo zSj(T+lC_gB?cxSqKSFxfY^m6NBhu4VBbBp3q&uKkVUHs{J9D?N`^f&~Y%Y@0baT>v zHH35yn2_F@Ff!PSd*aKxr&;@)=Iq$`JLn|7j=DibK35@~kvFL5#UxqsS-9yE zENt=D6}GOn5N5V%FSH-+E4Yi+LWvR^1ufh2g66svg8o%E!OSU2FuBrH(D^)1lK$9J za-*MLmLFp5a9(ekkNH2me@&W?PLSrXv@B){I+dz)P8D9gohn=(bY9p!>533J%vtC@ zrn}%8cu&xoyjJp9t()ZK$1;LeKVzYkVj015m?-FCog@XXB+K-^eDBRIrB15&M@jz9 z472}3_Qmb@i;?2aR|U;{*7#DDv58WJ233Wpk6Q?5W{nb7uAMK8K4c)+_WyG3E;+CG zkMC#;<=krtIycuzY+EE`^}#8h-{h15@uSVcth!>_y8>B%OL(JtK&m`ow^Y+MQCei+ zJ*i4k1>w=iWx^iE`dPMd%1r-i2E}#Jk?Ylg1^a%6nf(i)u)uhRY60g*`I!TlA}Z=YC{w?#9hp(?m?H zQ%-!eM^SuY{%2Nns?;s% zPWE=ZEqmM)mY8g9Ug5ZSzxqD$iL|}=)V!*oYUNR3sCSf0Guun9j;Y7ow3hUCOE^|f zQqQoPBy#vN$@*DSBrBdam4t=emjvu-DN&(WZi|{*x;YL^cirV4{mZaPiHYubEM~aM-*1G%Ud$rPOY7@V1&-=`NelQ?D{1hHH zaqd*-=ly*u>`R;EGOS0k>pZoJZsF2xlFCkRB{6Dxl1ujh`N96T#&C5`80*%L{3Z2j6p>t1eJ7ZmeJYf`)Ix%h z%O%4mKa?o8UEo&UWroZ9IX+I$b{J&#k@@cn`*Y8p5?0K+lGU%Up{<87c2jquMKGV& zFz+(Sdlsu%sj$A~Wl3oL$ASrY3nLr$6rvtzOJ^)jk@ieB|Eo^ItIJv2KT4&|0~$-~ zz2sv(vo9CyXR<7Ye(}6z2ABb6fEi#0m;q*h z8DIvO0cL<1Uk<2ABb6fEi#0m;q*h8DIvO0cL<1 zUI;E{N$eAp1Vudt(XXt{1ZBeQ%p$ zikN(_jPw6jd)B02G{JI{t2xo0PMjV@2Tb4QsBZjnwVc%BIt3H+-(7cjzj~Ti8qg8F zopeIGVP5sm{qmg2EdyB4#5Ai71|K|;wf$dGiqMRrB{3IhRl|PS`=Rrx$FuMAHuEYA z3?O9wd|9xAZQ%L93@`)C05iZ0Fayj0Gr$b|J`A8ry9FHY-zVN2>%U`-%4?!okH7U` zEpn#?9q5rn7e_p1-EyZJ>&1F81I&QDGeC9JAIZB9Y(LM#pJ9N!n{51B z)%T4&`@**8j$zh|^Q(w%2R zt`XCya@SkbaNG*&*7-B_?U7D@b_k=8pqVsDqb^O{u_mwWkfr{y={3J=pK;AMzhfe5 z*L*IPxp7del?bs;`AD%s^R+*+L2RcNC3*4Tr`|^**Z9uVE~pQ+-?E0f?{lCb<>yi8 zgncwAI)-Lg^q_eaKGM>fpqPzOKeC~)l|igrw6OUkZ~llank>t-nN-KuB;~aIzrubh zCap_8UCe0c#&ZhhqfbWaHFLZ zy3~^<4Om5C-Rx+Fy)A{`SWgl2X3&C1p%i_mEv>Dvg|@DoK)Z+5q+?0-=<>d0bnNbi zZ}nSP^KdwzDo$>yQ&|0zC%>rG+b`!dG`oKqE!|t=Teef@uhlkWN4r?+p$LZhWVOsBfTK;ySK_rW=#63%)`aniH;x3uQG-2E*eUORbS zTp6)YJYX>}x7yK!#bccIq7Uz(r90+Ow96-2K6fjvvQnaTB^%R5_i)8;3wl0jHWZ!>Ly>L%Fq)kN>*T?3UR*N!*oAc)*Wc~JwTsJe`=Jj$M+FsDKl8&c zvRnIzv{M@8pKbV8hAJYqMj5?{kv+ZUCO z??e4Rioqw~AM-CS{VJ%w@nG&MJo8wFPu8{Ki!^^-P>f2Nns<1)*jVAYx4 zT(h7j3U4X3(>l7-KZtIRwx&DfkJCL#3wjXlOHY;5DQ%q{z2DFmN(Kv|Uiuz%bQMwj zsVYhwzlSm#X25AqC3uWnf||~K5YToinmlWjeQe&&-MMdJ*9(=;8KYXCWEk(($`4#94#>CNU3SSjG;;r|dzo_$cVzoeG^Nt5M|UZD9-?``S<7(#ao{T<*eW zdR6$L0h;ahMAv7w2!7u;uYKbF<%@evPHl{sy^0XSUtsIy;aE{7U#^M6xw;ALK1_ji zr}D69&2n}eV8l>hLQbe6yItI{g?>oRjL8qu~nfv*%Ny8mqY)u00XOIFm`T= z68fWHaqc6^h8m*0ZBw}IP(T%f9jI~Y1pNNIfhGzs(7Kj2T3aSFm-5ABe#Q$|lzp(T zLJ~HmP0h=35ujTMwQR?uQd}3fPWp)Q-FLt?5u$(y>R>7TNo$?VjRn1}Fb{HJH zH-~HY8E_vGh-$mXqxO`}X!LS2TCVGZj@=T_dFMoQTGc`1+y#rTT^~3GtFZY!4V{Ei-(Ev^S z2czCw3;1aNfyz5tLW+ryTVQ=Z8P?Fh;!jqh9i0XMWm< zgLYT)bG&~W3svr^qUzv%s9LQPs_Z$4DlVf?868l0NHbJkP#ab1X`||vBzUQ$!^bi$ zqY46e>HO~ES@v&-^S$f-|ue$T&uqZm(y3vQtVNy zXf4#-W{R5Qol&#WB-FV088rr;MGavhYIu*$xPEgCwT#VBJ1`#gx<5dJZYR;WLJ*pn zr=ews_h{!h4#DZuWyvSDMfTnVGcSFF?dkCCX1HrNBXz{WW+Fnpc`#HnV(Tnfn^EDm0yrzYqKONDe zn1Cj?ry|&GA%aULpvg8fG;zC)p#4S&+ED^c2Hrr^#sl$3)!k@4t`s^>ibc;}_6VLW zQ@>%dbWCAe{`uPz-)Y}dS=0or-q@gx*DADCJB+qPx}r_Swb0fJrD(M}1+7%8qm})3 zw4SyZZ66w=V<~&I8MR#&{a~B^$s6nO?|Pu~{u1amqyf5r*o^LHP0;PeXmlM`2c3_a zp;IX}bZoAIj*r))bIm~rI#i7{{dY}&q*1);82qT5%l@0bxz!JYtL(<$r5*9-(#9B6 zWFQ8pRz=^*bJ45I9&|UJfNp1><+e|*pT99=y?;(`jNNRC(0Ye3#wHjcZ=*5FHx|R) z)?)DEo2=>2Y0A3Ehi;e>whfc3oyNquewbkGjd78k5IVIT-1Jg8hVl_Zj?>S@3DfI5 zKv>#-Oii)E)Dk|J(xfbgIvBB@Kc^?__D|j7&1bBOSK8l37Ii`R$#Iye=ZEQWy)iAd zJEm*M)O`q9)QoLXP>9!gG$X0OrGWhq{=%`aaRY}7aJx|cC)SjJSWXh zJ@EPR{rns+uf~F#qYYd~D`xc{ub^a;wVgeUw_nWH$oaQH0k1ym;Evb`$Ki{3TAZB` zdE17?$So+PWbh-qy)pt45+>gA&gn{Vt7 z&xs!~K!-YN(Tiv|diCV+kLqz5b5z(EpzD4U>3V5h+H&&CcYg|-f9wy>+3ztxXM3HX zQ}^$FublIlox;ih?VehTjy6v#tp2fIJa?G^W`G&^Cj<0cs|joJPfb`4)`J;f1`0a^ zG-qkU!tNvc_w(}@4xgK$^qeqMswvmcu6>IE3Lj%n4lBfOm2uwBGgBC}gXKIwSjM)3 z!8J3uo~~aQeEQl4(skATI*<2%Z|*bW53O5+px^vY7`&a0QqT9I!iB${cV|ABkHXFX zz3|hbcP{&&+k6H&&w4P6LlZMlvDWUS}2iwiRQ9r`~ zjXt=HhE?Y84D+$R&>!o+o*y(qs|R&h>-Kd%@Bja?6m9=d{Z(4Pc2_9uTC{t5v4 zcdqwiuH-=3NCS|aJ3353~C9--VwR68x|*z!D34^EEa~rV$S4@l;5A^YYTF5 zZ2{)z_o4Kuizr*AKddT7pj5Cu92^_ugnyVsr@~ybF3iu=hWVA9FrU8%=B@wCNn5TX z|HsX|jv@6blV`_K*g0%Lv8MveEca*n0kaKTVSN7#if;sTI~0NXxklgf4|*l#G~?Pp zv&@%u@1ePC95kFXps{kwUv*UP^n=7h_t*&J$D{Gr}%I5cL}heqOZXilgHomsE4#)Hw$WN3}3 z0gc(Op-~|K>O-udZuC5>oYP-F2Yv@lX|~g(ocM`7GuvZwOpf2rf&GZluyLFR>-a$^ z-OdB1`@CRaR15l%^P#sk7DZd6pve5=P;2oLYOyg;ucZwQV<%`TmVss+-LGwehH^2e zD>i|eVM(YST?LIxqrR@g`~Q6o(Cx}+;CxVvwftL4?77t^H+rDPiK3{wDiQ9Tu0mLL zA1-<}uy4B_R-2+>9@G+sX zTLYyv2cWci?bqeJ|97l@qy>r=sX+JR&eO)W=V{jKzrMo+CBy3UuJIFkGJOi&eQk}h z+L}M==XWZ@0mB@BPX=b=ozdWc0RqD9QEzEDe2>3G)kI4O16AQt^9AfSN1>$OCltHa z30i&iq2?40wOL)DUaaf)G==8m)lgCupxm=Hl#{!BuO8?B?;OCiVqeZz;q^`r#-}FG z!^Tf(y*5$k8B?mNlR*2AmV~l`HNCH{NY8uspwu$OD9Ni8t+e%HE)^ZbBijizI!`$Pn;)rUpID|%8onKqROp#Bp-Q;)H0 zXlL23^l4-wy+7BKo?UrBcVeUI(o2KiRkNSf5_?|x;^@%NK9#HjQH2}fM8P128JB-@0bYsae+GqLOJgY`6ns3aFWedu1q9Ef7|FyTBqU0j2J^!a_Oudv!TK=ktMPyPeL`i;_$K z_1+<^Gx_fQm#q4n{#a+|jfjOsc~{uQpMc|%L^#DX%dKXVHhl}s26co**l}2Wm;|dg zr(o4WEw}w}{U67Q^~pPZP}IgBs%PrtMq~P@WdiM!(HZx7ufw##Xq0Rg0E=hNuvGQP zO+Q>W@8ZhZ{(5aGWs)7eKJWl4JA$F}@d*qXoq(zS5}0=zgi;+=!(viR*8SJ(&YFH- zQ*p(H+Ig)HEqvLL_HTMf4=f_+!`v{a54MEfm>n>(zX-GPPhtM3H7wMJqQsa@d2I{# z|9uvI7j5FkjsNmZQSovSrM&i;hNzsURq3JK2p#uG@>BSt*9L`59e z?Up!yZLl~STf{*|Em^aFYQ}mL9zDoVwF+rkd=!sP94)S{aZ_AmU?$Gl^-LVyJ(!e3 z2Xd?nPpmnX{~t@Lt2LIa)hbbuX&uBj+lPvm{B6WV(|U*zH5ZCo%g8+Q)DmYnmOL;2 z3j^Zk4h_Y-H+P7qiYSYyTtmEkFjvpy|Ch13Ewft?43N=OW73d}6hCzf5|e9e6Zh|Y zSP*vbn9P5EGC++CA7ze5syF{2C8@pmX$QaOnxRL2#(>Alf4#|d>>cte|K<86nYS6q zG06WIu;#2eGr$Zm1Iz$3zzi@0%m6cxGX^rQQLPiNPp`&$uA&SUhvdNIX-iy?E|pY4K8kJ;$WrW5O}W`xuC; z4d01J)4auF6YGhm>TVU!Uq2?^=y61Rm(+pv|8@Gq+MKV4%h)|2ald;dac^a1ao@fa z@zAG%;_iQ@W~V!WfR7++LH+~c=Z+;d?8 z$ED!n!rJGL_TuPEQ!=#{$Bz4Qtw&rx1!8Q-1=c@*^k;Gf@somnYtkI7(l68H=VOzDt zkTFHY2`>8LRIe}3Ws19s@_nywT%Vw}zU8vVlPqh^$-d9q@--L4jt+ywE)zb9J-gTE z*vVJyI9~rPUSi{aycPbq zHbii99U~asDHBJrjyO87*k^nivY>fqzvNzr z9+Jmh)(UD#69nT2;{~$=rv%OObtIPqk4vJafBEiD-1@=u#UVfo(Equ5H~m8 zUbOIX|2n^*_J#K~#tAQ`trBjU9v2Rzt`!zvZz&A?&{?or^krRX$-V_uvfCzDPo6KR zD|MGx%$SrtpSPLyoG>7k>iE~Usl`&U1@b(u@Gx?O@NRxHsbWMksgm1b;hot*A?bJ@ zVe$M$Iq`w(FzY|VfLLG zH{`Ogqw*u+u6I_r)3URRwXdq{^8V-C>XiP#2hI&W2G_$?r>X>@WO>0SSw}fN$B=rotNg{_Y zldSL6P_kl0f+TE^u_RzmONk22a$D5g(#>&Ty6Z0YzpgcA*(i9Q2o(Bt-7QSo>LbiZ ztuBPuJ|oN?rywlsWFV}qazaQbZzuIg@y)C+9ntY_Ry$6a^ZaB$G~IAfnE%<{`FVez z3j5L~xeV)(>^e`aqFcCho20VSTgi&2HzgM@?3P@mB+1tDBPCrIg-TSKrMV3bk-F~F zQgTVJ*wn>CX{pQE8;O~AOCn#L7Oa|05C$x$FU)MvNSIaEQJD0mtT4tgTnN3JCd8Dz zAoVoZke@#CSUjh4%7CkL!dSO{CiO#`L`~#;}LbbP~TeoS{#aE}Y7)7Q*tI zOC_P+E`m{)F2bPC`-FMU2c@H`C`tpb&&-OOAS!mu+Wt{0t*zcjTKUE|zhU;Hc3dXA zd=&QBNF_y9Nj)cbDeQi-e>}&&#XvTy7PjZ*g}KCVyRu!oE+8Nb?-_}>Tw;O2L-_Z)-6=at8wY7uP!|{TAf$@ zbH6-ia?1cdTsF>XgR`Y4W^MnMloUP?RjBPqO{+y`?}r||h|0dt+svyhFo1LWugiiR zYy-~+W`G%B2ABb6fEi#0m;q+s_hA6iM^ic8zfZh5)_=zu?$_J19)Ih>TI5a(7^o78 zp3-66a;F>X#d)SF2elpb zj#~Tfp%y(KQ_!sSznk6|qn)F*QhqmG^21-k+oBXzcM+|N9+KDNQLWcSscT15>UAiJ zM$hg8v76c>9nhMc7l=?ST~TKAYyWpF;Dd?V^R- zF3{2r^=Y}g`HyTUY-LzbZ)0KeN#6XSM1{+lHq-Fab~K{sjbC9u)zWgJ0d}Wp)|4VN z>%d)_d1)}stht@SZ#JQb`e_u|a3n2i=t$8^2GYtgCum*gWLlU0=2wg@FMVKjyKs52 zwJ_UB!&`Ny@rO@m`bd+8UizM|ROgi&8LbWbRyj3kHi{-2KcSfehfu_yEouIaP>M{y zN|D#?DRNdLT41=E7TzyOi{FOOva>5_m9sysH{M8_7mg(?=|!7U8-1(a!kUM;<{pR- z`|bYDk;Qn@Jk=?gcF~%fVYDel`&%~Bv`Z^#n#VAjrCX0?JxZa$r$*62wKB9=Cxjxy z2hjXE?`c8DdbFt6U0M>HPD_tWq39VqX<38Ow0w3L#fZmg^?@$5epxzguGE2O%4yme z>p=T&4xp2+E_Bs#9bK3)`&(ldwmc++BxCpRJrJwL6gJ-q!XFgr+6HD~Ak3>*$nE$P zJ@z=wweX{rr@GVHxFXrxQ%tL4wB*ECit78EqIzX)Yk-!uJd;_6*7vudwMBN*N~tle zXtIe`40=j2%ZzB1K@_d-5lm|$4$<0sQd+;JHf=Q7MqBEK6V>TUJ9K?0VdW$`T47*6jJSNkbD_iMuPajIT;Y1HkNa*F;4fJ_uD80S-+5bkLm8xEjTGI!@d6l%ySF57Dk8uP7nLl@2)Wq9YmC^iTF4 zK<7P1(3LZ)bkk)yJ*e(NFSb0P^fv+&Qh$qQ9r2)~fCnR%;b~`nFFE5ln#I(=rDzZ` z2)9l3Oj4!(FohxV+f-iUp)zkdWBysAq_u7=Wy&}cf7G@240@1bjATe>9) zqz7$n>4jt|rH^)nqU#MPkCyxwTe)q{Ig&@MFy>Y#jK5`vZVf->hy8R($&b$Ww4}4% z33PV%B03+TN9Vf6(CP9Cbo_l;Iy!VC9o~PN4jpewheox}NQn;bbD*R4adg~x6rG&s zM`z+1(uE=JboqXJN>&Y|+lTDwp>+(sFfgTen>3(U>Lt|7deiH)Z~m>FAAa%}vOjOI ztZZ$p-?6-92)E9!*T67d!UT zJO92=aD5AvcHt-CIJzY#Wrd2SBa5In>HHW%rr4 z<%`k0j#s>Tj9t8vjv-#A_~qqTP%>&rAL~2Qt2Wo@>AJi0uw7G1b#|aTkG$x%_w0;o zlJhCWHkguU-=^yomQhmaCUk9>6fWJw=@0iU-}5M5b2I+jqbln#aQ z%P2keF{Qm3NzXccqQ}Zl=)s0!bl=#O?j65CcPAI8JN3%a?ehL~%U_pn9Jqrp088f}M0cOkER zlJ)-MHGNOU>j(9ebvyIhzIaWe5AoVVqvCb0UdWHJq1vkzl!ol4Pcx0_?cS1Mz)<@iW-VLnqnGhQ{p0;}7h`BSrSoS(d$O zw2!?$+ni-Q=)tlAJlXqKuh^&OCm`KV19Cp6QLgJ0RND3cdh2JGMq3t#I)qiGq=|!_ zrD-ERX^NC4ENk2#mbIf6%bFF&vMMxYZ+-mP+gfK?=Jg>g^J-i6w%%oyrL%x#Z;fZ~ z(TsiU&)ApsXCb}mAY`MTLZR~ol;D&4-0pT=C31Er}a)g>PH{z94l9zt207NQg{ z_AyAGee7t#K2|xzJ{-yYTo@nCK2%j_Ij8opoV|P5hYG3e!{re6sqYx}Wk~Kbt-=w= zY|w>VQy0j`w1i^wbjZwqElNI-Euz;R5WbQVmiv52lwt#EqZN>P(+g4$YeDMbB}fTX za_@~!L27t;NOkQEsbL=>wPPftC)z@0N)5=KKLz=9pP=Y)6p9B==RV&y5G8-e7SZEg zRAU0!$#IZf{}HkmHbVA6KggbYntLyE8nTn7LbhcpWE=F)-Tw?Z&9;zN^@PIA!BCo4 z0m>%rArnVq7QT6w6V(`tf?dK{vF4&+$M-fsVYwp|p4Eb4t@%*Yae>0!7$~gX4uyK5 zkpG{>XXw@ zZQKefV^2bP*ie-3bQ9(4ek$u4k^hqU*@h|&2SL5#YpAWbhsyiYQR#jXDn3#}g=?-9 zbIFW3#r6N<3N7tJ&`iGsjfCN-n#NEi-5=^R`m)EDZ<9vEz9ch%>PB0k^K3t~gJht! z?KY|%^oHt(%989e`Br*uT4;JMMp$v(QBl+!wXTkZ{`*6yzB?9r;|4)*D{)WXU;gs_ zLmWT(r7%1T?e@(qOuE032By9tFtqT3LCOczkQVFpQT~R0MXgh)epn>?z@qwrD#wnX zhD&l$^HKWJ`^*(Jt%a2$C1O4|Sn0&Uc5DS0-PnjD?4oguY&{f;*H(6Zy?ccC?Yupag9H!v{6T=8FD|fUnp?1|JilARyNqj z?J#ScEMGS--q`F~A7O2y;5VvQzuJ%{wHL{~KR8x>bWij56u+UtLHK$=3rG=Z)aF z+J<5+`LU)LQ;dlLVjzzJxO%x03&a93KnxHAWs3ncZR|`jFIzD$O1$CxP6zE&hGOtq zwW8z`hqUO_?+UcOn2Lj~WMk>JQMCH<8g0HDLnCPqxQLUK(x6v7=0%>N~*8qSLybv;-EJSjeEn`YXHnLj>AEb*r#`)fB7!7IB@+d z8=)4k8WsC`LIsLYiR%lMr+0pphptoqDeerQe0pmrEUS_`hkGo0e&rpzE>G(dP@gaH zeLj>oyo91{8l+ZCWzPq;758>b_S0ukQ5b;qULMkNBDLm1QS7I*#QX0ufO2=6L;j(| z@8*~EeCY5fwzzzR=GH~1=Hv#g)|a89$)ozUdc{>Xl~eRS04h2wQQo&FY4>C8(CqdX zG_pJLtv=|K6!q=#xBIC3{0;2JG=*uE`p}=>0ot5CG(L1g)s;I@bx&VtOj`!c=#S6} zjzk4HiNCM@RvX&?F=L{t3+kS;2N$v)HkrY2u=9d#>Uh*k8&nv3p(nQ))h5TFs#_4$ z5+es@r!(4cB|9@u?hY1XY3V?3P7|H7adPL#1T~ zs5E&CDveDk8GH z6QFu+4pi@-glhC{s7|K&g6KDtVtLkMll9UI!{P6wfzE=nkdsn`vQlJTekjlQ1f|sb zkbB?>sdtN5<|*5P%7t{QJ>+e3*Ml3AhVr@(P%dRB6yH6Dd_Y1$dFVX#@kL>PRqsEp zFzGS+!fgz-Q!Gr{{4|ht@66tLv}W0zw&$H=?;5XUnX$estN-NuH0<@VAuPjdEqiAt z^Ut|=b)wj(jmD6EZV1JiXHnVVF65RBflQZO?2F16D4s6V=SF^cv@Kejus4euMVkGq z8ESrU#fp9pi=qi+b4IYYSyJr1eLVXZ;leV9RA+DJEoPbLhq1SxPO*31*I35r5$w%9 zbC%Jt63Y}^VOc{JS=RQUEZcSr`yA0Qzdk7Or&!L7!|d(5iR^8^RxDGy2g?{lYb4VB z&mZ0Yu+Ue9x{pA(%wo)KSLpSZQSCJk4b6p6KOcljhc2P~y_%3eUlp=zYe6Py52PZG zvYg#_SjO-`_U74XmMPUCw{6s9+15i?w$J~p-@)FhS7sS?71(PJ#$LV6VcDBT=C=*n z{@YLesTOQnlkTj2V(&jKN0Ra*)Usw#{KSz!NNE=oFS2Y{#-1+pScd3tB*|9`GxllP^3 zoqn}N^(K4Kb!roIeb55!vUoIiPJlgk3#QN7!C<@}G;eo+>iK$*3%}1k)=y#?)$X%5 zDJCo3XliZG?*o!9NYtXjo za5!1dK&SVw(RqArI4^vJHtZ<4Y-1QspMfe-8j#QI#Xj{|%ii8w!`{fZ`Bfe4UGHfu z=g0^4Vfd3@rKRit_c?&*84>Wdt%E5;o}fl@47*}DfvuX;l{M(xhflxf&fjjyv4xs} z?5OTxcCZo0QrBEz$%)-q+;Cc3p$Pp;9&hYzmB*;Q?kQ|~`J-8d6=>Bh7;OWZqra z*u3$o>~N1{c5wSqwo_v>OWrESA|HP!D;l!x=ld0xuaM${q2k^e+5?}V_Hb2jS1i$T zz&W(FTaI=^*8WaCsAYT&hE=yiZ~j2&+BJsm`G4Ba@03S*{;zE?t8#tvwP4YG_x!WJ za!cj>ecBeTANgJsO@mI*w*hMFEQRsTBG326-mH2Ey)6q-^NK8tU4mis(GZ3! zq`$9=j(;ykq+7}Bmiw;T5XdQwFN)SITP*_>rp$oG$7Rr+V+8%co2b>O4-9*KE=oC+ zw&deW8W*3&?C8@f>_N_JNC(bECE2sk990pzjozb1lphSX2BPMLd8Bvo=}lVxT1$TG zG^3K%iEX#4#?tpiveOr3+4GS`kgqop>MP1atDPeB+!jFJd@5>oxdi>$9wluHmH%rd zBweGF(C+eiKJpJ7{~2#kQa-b&i56_%@N{gmy(GUK@bxTq^8DljOndV5{ByLW&wX)bfK?u^&ZQ(RM(VkX)#qxk$;eE7Fo^Z5HA-TCWR&+rFKZ}W-% zcBJW_X-fKuzJAOqvSVJH_$w8j^S4~D@^{|+Gggn{C;IWD82w(1n7qq$X12`dEBo*J z-y$7pafZIHN|KM)?!3sC| z<2K{?vy-ax*OmTgTsOs_XfYtYN?$L2saq z^y5LAm#*ggnz1T*n)CClwZCpR&p*L$HBzHElx`eI@4u@zKYhV4-s|&V-goOXipAfJ z1?gY9`txJWmH6rE=lBJVXLzq0bNS8gas2KcG+)mz-s|O0*Z8^y6!BWRycVb4e3!o6 z_+G8;_~DT@{G?MA^2+9S`U{G)4oNACA1!<3TVMEXu36t6)4q7M1D=aG!aE#o!#9wn z^`U;z*Av^~#rCh_#p|7v;&sQ&;j3Evq`Ysp`d8`cx@5(_EXOltO}!*uN%c4{-Meqf z%Vo+bArGBW_Ptvn>6)<9mPaJrNAj<5{Zz^U&AKU<9j~NZs_T$)XQ)z2W<-5n@sUX1 z_j7VO&fmvZaN*u_!L{m+-=EJv<};2{G4h=I43trUywQQq2O+;mEf|U}Q&5 zOLZp&%iz4LpXBDocyRrzjN%$8yyA3gB?`VQxhgoXy;i_R zj25JHcNXk!*G_Pd8!p(};;CTUqxu4$1{VZws!n78Ni&JivR(-#!hYR>JoAYV7l3NsOz>OZcj%&5yI;ZkjRq%TIjJ&*dU!L~vR6u^|(N(bZ)I* z8t1LBi<{$8QPBHEc4^u{b(O95lA`1IGB4)IA5Qm8k$oKVef;gphev&X?st#5A$O8F z_t>*}`8f|$8*cH;$=nLN4czKucR2qscewTADsw^C`g2pvI{$7Rl&@^@`zP_{+VrWH z9J6Lb@~vx0$+w;VS+m;uzUwfXTCL@6!zZ1!YpcE9E+fuL;5Mp>AZbzHkLt618BozS ztk-T^C4TvjuIHWOChTzMrld^erk)ArW+;v4=C;|wEm+otTQ*|u*X!%vUFJeQ1thQE zIH{mA=sdAqoD6W&hj&jtXm%&*^O#r3dlnt${I}<>^4>Jq#-;WpTZ>0W?UXl;v)gmD zy`X*7k%GWkVS<aaGF*=Z z3EY@&o4AQ%pKxQfa<~ywmAMh0wsYgYT;gUdo67l~ipa~uDYSp}ZC=_Z)=P_lcv%&iM~HVXpZp5pYhW^#RuEx9SvE^(7b2)RKnT3pxW zFF2w@>Ob;yt4ED^0tC?XHIhSM|R7vk6X;EaJ^1~b96AvKSx{Q zQIr|rnpo@*%)i@}lYJe=)xX?<>vC-}7kQ~Ix5js3zTKRuFd={cXIt*!OGECw^QE7q zp=;D0M2P_|I5dIV(0cv@kJj@&rCKj&=0Q3YtP^QN+7JW805L!e5Cg;jF+dCu1H=F^KnxHA z!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^ zKnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu z1H=F^KnxHA!~iis3=jjv05L!ehyw%gca;CuPVlEKzCC6~c(6~V`1V{u`|M26#)7WV zd1?=$!T@$VbuWx9jPGQ`BKy8ARNB{>R)tANX{a6i4F)jUeM?Ez3+avvA-%0dNtI9K zQky9%13*|#ejcn*wa?%GlP&X9lVg!r4zryeRlY5U6 z+p*>1XgAqR?Tr{928e;8F@TYM8^NPO1FUvlBF@?&qPHP7xDCql0kVSA;_M6AUNnYD zFVc$`AO?s5VxX`Lz<7jGVbfAN;))m`28aP-KvWq(OG_P5wT>B_RLV!YgKnZ?OIfmmofs9)E|1b?PnUgW8G-fL z=Q>6|^PfHJAI@Z>%Ka=&LD$gY`CUxgr3H82_n30?B4&CWfQQC<%nRFv1$E|NQHyd| z650UE9J~uELlV!Uuj2zr^h=z4VmX!j<=KmN4YJT?RB&BC+7UG8Wyo#Zu{)SU%1go>$w$E3R8{)GaP$U_!8}xY#PmcA~v! zXAD+pWXvShJs+5L>3&OB) z{Anzz9e~Aa?_sI?Q7rcx3eR@~u``+aK@q<92WaT zV9CxKSlVYFmM+%9(oIfSruYiW9^b`^jxq2uxQCUU7h?65yI8Y78~(;G5i~ghoB9Z_ zZq>pc)h%h~u*UrmR^H0xKfX|N<4T(U#qAGU%qFn)K0{c9Nm5bE#@v>((WmBS%rRHR zJdf$$=EpMo8(7R&#iEYmu;|1pEY%TU#n7R7X|T%dExevc-O39k-s;q9^nE00@YbyNrV-qXR_h4T@xDhk265eRKM2@$)NAv(BB zysv_kISmoztcPG77es$F`Brb*FWPsE%u%y5o2SvfBz40Ij}!1T9S=`9!%Oq)vl@J> zcfjg|8(4X<7QCZ|!n;8{ynEGvHyeVL4Hd95eK=N)TZz?O>cVH<2&^f$8-B06;P0>z zfw$))_>C_@#~LA`?OH^4KZV#C7D(Kmip^GoOVXFWUAA!FtM|a^&4`xmimfwWKp0Tz zZ`&lU^|Jxy6WBcM1tn=ed_L}lPbWS2RI8d_57xeD1;3iP{dmM9_=KNR^NLj>+z6dZVt}HUB|cOVZG8p z1X%mRzqSqhQ{D5fVf|Bm1PbQBe^7s{t7eF`j+5ZGs~r4-=D=^iU+(c$ti3P_>$Yx% ze_AF2^+sd;Axi|OPsc`$cx>8n4-tte*qn76F$rPG=+K5xuLDtM9k^)BeAD zu+&H0*ntlR*`_)tN<$ZfSl7>G))hgY8Y0+rBQ|uIgy47T2#Oht^*!n!u$dGB<~2uv zS~&b)T}MDwI|M9?L!djyeAX{Ao2lq!vcQu6e>4&hm07Q1YiDDkf}$o@ueO%C5}S) z-W7<_^+Yth5wkQ0ar5sXk!6FQtAZUXbP!tKx1@cd^8f8e#X$>peO(t+Rq;lrRt#=? zOwifvpLG~Y(td0nItGzGgAksbg|PEO5LT-qHf`>SP1-_)4syrFkYxyY?TwIeGZ0d1 z3qsVg5z_cMLfCU`9Nhw;t_s++WLYrRI-=rj5joTn z5evH`{2qt!u2u*WDk4lT5Sx56u*rNMLf_8QYEb-?2`}iUHQ9P2W9l_Sa>fc{0 z?qeiXdWrbsSFo+-CT!j9f#_@g*gSIvqP!gtnK28I)8`^m`gShYQHap5ittmN5FXhB z;aeuC1Gmc193J_r&(Wld;|T zdU5+8ZslR;^avczs32~3m$bdu7+emiu*UwNBPCr|UinCoNkZacBg9=;huC4;uyss2 zw#auyv`q*$9}mao6+^JOi7}#{<^E0+yb@6ZyCACNbwqVhLe$E1Y*xLD&8HS3`e;XN zRlSIqpag82{Som8Yal5h8*I5fQrFkP?rSR$cYQ-?_$2CeV1HZ#oN94J)a@)y`>@n8 z9Z|Lh*k9vIY1Ip+zX(ZhJ|X`7By1a+ikLQsu;tu2Y-yK1ViJcS*4PWNPikP>ZDYjiHb=s`u}Esx8Yx<6K)>3Ra~}F zIg)dq4=?Y@SmqHbN-;&8lQH7z??s$ldhYY^MZ{HJgKZzfur2rdo^7A&A4<%sQPTEN`I5o1&{gw{D8>@}h@Ie%4FFT&z%(7e=Y)elCT!}eNa4|YEB`&mA^MqG(I z131vIGtx~jV}Hl`*ym%8y~nO%&yMR@b+)Ux`$qOt`}`RLIDESb4uuTILBC)exONQ( zYEQ}?lP1>l<^RlIx>maFL1=$-qEIWMjVS7lV{cmG=(uM%(q=CX2R_H)lWL-9C)rfG z%>GJmtg_krt2BAnh0SF|_Parxj1b_skq?euPs5>{CWY~b()>P$$gz=#xf|Jua5eVy zh6l0m`z(|-?eJEsl_dC#Dz64YYu;-p^&KJ!{*VtP--dCASC9mqVOqI8Ojg{=_eCh* z=wAN*w_9P$)$}d{jro$otxzc(c59B9_K67S-sf9J#BCq7v+JX_-+`amEv((O_0O); zwUX~^MMYyAon@M53w(~f!Qz|UF}0c4&gBB>eop9g^r!Ee3tO5t6cz2sj=$H=u(KwI zE#1DdfawiKV3PSN^gbunYmvdFrvWkb_m~nF?Xm65QiOyz!SYQ{FnPpN^z|_m7u$bi zC+Z!xfJ>jR^IHDsI-R37A*l?Y*;-$8d-fiEO)pETkK`A%-ybmmy&8?+SRAT{W=X1# zS{26Ie`3OcE7_5d7wqK&iFjv=xcDyT)PW)3q<#pnHX}p!a3PZ}PKjw-46$ z?OWEVnSeP(pJ%-Stl79MT9b*s7nJz#1zDSuSD3Ar9;;l}h<`tRIDggf1@(nxyDuyY z@n?e$>9aP`B)&cXgPc!8d>gvUGpQTGx7~;-OPsm><_5^ehF$=C89?5{M6QI z52Zp+ZYFd$gg{Tr9@RZALf>Dc*7holKa{5UxDppFVLy8z?E2h??TM=ptV)Bu^q#`n zj_T*;K(}^z=-lyw&KYOuTptfzxgCYgPwC1YZ=w`)nAjM@)a?>Xzr@1St2~T`#}~yu zXl1%W>zXCB4$gzto)geI+`cIJDJ}8;w-|uN;fc_$)C1Kgl!MN60jjyIgkh^kg|P=} z3-qATsTwpZhe1MVem}Dhk6Pcf=lY4qwMWLvDX($lP;-Y{J(%A>&sE(zSL$#^Mp= z=Kb^h3b{U0plH_{f;RBm;>d(YMUYh`^aRAz-v>PMNtx>H-2Twelxl_$`!ONOdlb10l{51HNpkWO-ejCHGmbcRAiBbH-l z%synlVjsPh7L<<8|I2y47U+IYI&Yu7DPNhT==EdsKP_YR49r+92McDft06lZ-52WG zpCNnBojv!+Vi&i!WBdB7V%|r)=a*4dw?bvh6GibIPVL;$t!o8z58i|xdV%OZr!Be~ ztwIN#bksK+3A4T*p?hZ?D$HICMc0Xt64KOciGo1Iba#T%A3XDwU!xjSfK=!KdeRjcl z3EP!9mo)s}e&lDGK&H)nm|HePqdO*Wc6xv=zLw}_Hw@jDw?OyN2he#?G@1r`<(Gl- z?meN^yrY81HDZ_uK<6uLG$j~?sVqub?ezf%v4;)JNJ zyATF_1<z!=(m-DvxJ%$9_1 zP~Now3U$8}rEDnfe+%th5il6x2t(`TFxF^|+ME+=hg>O2Ih0m(IG|YkIu`8i%kGfU z--il1+R%08U=XnlwVq_=j)}Vq<9e1b4j4~5{#r-UsQ5JE_l+*`^&?rl=>>KoCX_v0 zbQ-em(@=R|ebhKn6*b2_grU6`j9kjYShqWB8qxSRy7wvZxiOM0Q}^ceA^e>-|NJIW zQhf^Z8Ci{`*6q$N&DLa@ujWH>UoU7M%YAq2ViIbt?GM8}8)20G0mfYnQ28p2@ge?8 zod1$yy`Xa0{^?=t7B`CBQW%n#23kpmsMWGP42Px_l!wk2-)FoeY03It8<*z~8|LxD zHPKVN7Z+-LeQ9dKl7s$dd{1fCPj!iZTVl<2Ut+DhsIj)A9au~Ks(CTxk396{w|Zpe z$Coc>bc0_p{RUHhMq|b3K0+eyBUlTSE3Bh!Fl+I!9&6yzlGU_)!|ze)z`xb-;cqJq z=0n%^&gY-D;@{6v4F4NL*24J(b9m#=YIHrq)R*sOviv9h+4NvO_0ASnv)*aa>%V%D z9^$VDo7wy^>#`=6Ii9S+Ob<_H)pbmnToY^l)x9rF?(GOsk1=b$l*X>n{nsDee=)PE z1DMwH$4qI#K_-8>1=C*sKjY*@y&aH!;@=mSW(=9ty<4pIE?=g1{Tfp>nZV~fQZ3E; zsV?I6Z!o~RUO1FjFH<{qmTBJfV_FkC{tY{*PU62b8DKW);mqR3!@N5A4}O(Ovu>)3 zSSJRE0b+m{AO?s5Vt^PR28e;8Fu*_QYr)^`UA`!JC~eUgV>;`4l4eEIthDsvFIslw z4-HDmt@yrrlZk<{$v|0+ zJ72B)5#Ff3Ixkof!8>)_$uB<8pWk$GOj*^VuzoYcF#2vx%%6`^-Xu3p`8?Z+uUxJ+ zudi|;FZTQwsH)kARktgWE@!1)48IicO9%H5MpG!`eXJbqr3_29H)|7ScN zC*wGalj&RF8VIaPoo8&Z%`Q>)i)<_XHp#WDc|~w=_C7&q_AEhzMo;ZJ#w3bz9JrdN zo^zVZ>T}A|A9FGZv4W4=qy?X9WD7pm`MP$t;Le1qf{QBJg5yI6=lj9mm``(s(S6+y zf4}B>=XB!KLW2d_w=x8W=OyPeBMMt?jq5;e!g9vV?9z_w9G%2juW{xymVM-8mE8m{ zu7?SpR2naMZFEDBePXd7qn@(hUfsij6Zb9%b_Q?Cx1T@1^jZEsZA-s@6$j0^))jAZ zwrBtIo!;NHn@gzKgbN%0gR39BFNZ~AUL!4mEe43MZu%l zI|Lu9%LqOkj}qKBUMJY)nj~0V@$33bDFQx9GPwF6*ufw}=;+Imx-W zNwM7KN3*%0U0b*nV;DEGqB&=(o60HsEXm_Z&}#C3=8NHECe{#KT$nA;Bn+wAMW6SbQW^q z+ON3St>#>EgaIeKc%1W_)-b<*+ERaBQViHP);`GzUK|iS+oL3S?COzUkM(`mVK%i| z%iD%eI&0Tfd%ayooRz?BR1-ncqQLw#-)?PR22`{S>$Tffi7#-CC2r~dGn}W|JkB$? zHs^Wc9Ou2*k@IP`gbNsQFt02w!F?RJTWUvg_LG|5mQDM_e@QW5@8r5maB*^9LAO;q z1gBRlvbR;tu%6L0*v6&yC0mO}N9~k1jYfm>(#bxlcuhuqgO*WZ^x$Hae0Ga&fj_JHNw# zt<|1|b`x1gLHicv1sCPtbJ}NKa{8BY7j2&tE||IesX%(bdOLHQRW={|np?g~{rdi@ zRPJA1U4nIIPI6%y!TI%aVGk#8GhVoI?U(B3pQ9~tDas6R;n(B@3pzaKsdiZA2`wM$}v7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S z0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N z7$63S0b+m{AO?s5Vt^PR28aP-fEXYKhyh}N7$63S0b+m{AO?s5ab}?Pf?$u<3!3Hr zzyD{xcyacJY^U}}3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;j zF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e z5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv05L!e5Cg;jF+dCu1H=F^KnxHA!~iis3=jjv z05MRO8Gz5jk>C1{UG65|9PVwpqrR z1@+lpn6#*@xTG-YC=IoPzrg^yct(^|z0laT9h%XJB~?C^OKqm83}Bn7UVa`dop&yO z|4+8ew~7XfN$bcCoR|5w98~bV_w6z56R)Dc09G7cAqsYo4b&cp0b+m{AO?s5Vt^PR z28e;O!vI=!)u(uuop@8M|BW?Tt~^9~{Hq6PQ8Xw&)_j>Vnh-?5)%zwP-u`6v&y7h-@IAO?s5Vt^PBM+Vs0r2mY|7e^n+W@>xH z05L!e{F(vC&K-!#>&;M0?y)%Qg~R2SVy~%ro)2hsbB#FrLbm^!ThfR$A_j;7Vt^R< z9R}EX#rWUJM|p@hVt^PR28aPsVgNH1O%Ww~$d=M+A1uzXH9N6nGdt<_nw_juj~!lD zudHd0!PTA0n$M!*uS3;G4;`e-mA5~Q5+85QV(%od8`nCs2e0?DFUCQrQ0^=$?S2e( zRb6O2ii6$@6;yBi^*caO(Wj*Cz|i{3OS%p!|9|^(`~BAP_Nyk&vTvcViTiRohHHQK zr}NOTY8~V34mD8y9WB}M4>wUx(Hu&Tra{F}1C?*KfTl15y2%$|@OlPJrXPmY-j5JW zTKPNWi)$WCs(VvhZI=|gxx4P&@_b>@$6Q$C@pr}H7Yp8N%r3v)gvvLjpvr1@RPi>4 zhT0WqrR_nD`iEgOeJ{-32g6Rs2lb73Gg9$Xw+QyKr;w--edw&kT8 zJ9OGGFAqE6-n^i^Z06*a%x3D+A6;kcstFXIdZDsSLuh=i1)YAwP~ChQ^rdgX;8`RL z55>Y%2Ec4-`V)hG1jxq#tQX=l+c6qUy&! z%hk=x1KlBmVRX>#NBN<&>H-u_H$wS<04Piu&i3|L40Zcd=v|)(o&Da>?cD`6#ymi+ zerl+#sf#+T<6)tj25Sp5*nM~e$7}D==vfF_8S9~=*IM*yBZWah>oCEr1?KscgZGSE zSR5(%QQeYu4%s^Aa3$3OTcr9(ns0x@AHmHQP3@bV%dzj|^Qfrxqe9q6_FztbR8i>( z9jhVV=7-tL3aHh_2-TG@L3jHj=(Wv8^?*}(X<%(O2-f}I!gBZ%SY$iEs&6`MuGv9w zCJPQ3Z%|+0iAIknqPgn{v^iEEo%*~-PvZyZ-*y5}ld)D)9~+*Y z{I+gM-4~8mohYok>@prNxrGz8*GsCOrQuhK>$Nl7QH!jStP29ek+6HI4eM4KFm3hq z*%!@|&Cu*cO*9$X9F1G;K;v+IG_CUy&1d&OtBE7g_F@Q}9!^1*W4Zl&yb|14PYjo< zhY7;|m@RV-i&U1tGvFNj3_D|k(>6ri{ETGRG1#)_pLsV+(x<;wws7(bMPa}BT0+HU zHF3e<4bI(*`&+h%d%Y=DrJ4v98oe$_KhQOK6FLrlgSO8*=huTi17*?O=L|Y$_J*@g zFLc^_3(lKnp^Ha*bZ;J*%RA6F!w&;ZR55&bFvgwN$23nD%zpF|dR9en zxEvxUyhfbm3-AjHHAjBF4dS{Lc6L=4s+caojerK?>cii#o2iYp;6M4C=e_zQ^9^rr zNeOJ%za;Izbp1{kmplR^#vRAVA@+H7!F|IBj2-EZp`SuAaPxWecbW{h8PnnR^fCsx z569rjBQeY)0;BHU$Am6}G4=XA%-!ICh2586nWryS&Tfdc=8F*=)CdvB24I`t7qIe; zkSg1wBz>W>OZQo_xb4XhdO%XBcBVv6L!S7pyJwd$@R-JzL$?aQ;n;A(dk4-`^Hm7wCb4*%T(mr8L ztT9&UPR5Gt5m+|)I+pgYjwRQ|VzF;cEF9*I`NmD)(W?*UbalsUht8PYAs%xUZ-vK9 zSIpfM@-frS*vYH z`$Xl7SKDG+dRwvsawhEM-G%IW_wg*%_Izo?5J77*;V&->-;6t0^<_C$YH7l2=QVgX z{fOmLuVQJm8B|#gSFl2VtuEk z*qE~eQ4YNjo4N?PQtFW)ZbB`Umyd}KEDephgF9b%YU|o;d@Kf@KuiI9vzWWHP`aOd8gXZvxJOR)2P4Miw6`sT2z)Sig zyal0H`K}FooO9skyaEBz&Ilg09-D&Av3XM{;=1I3SL=cuPhKL;bv*X%Fexcts9f>t z=YJG0^zNI1fd=EzrO(&jVSkjSxXyuj_#h#*J+?d0E&7tR5>*EFgSDmo_y%IvUt0BBe6ryAM zBEHcmK*<4VmD?iyW>p*vK8pj{B|fgMxU?y$a&YS8eB3fxR#N4QYq>CMF&FOLmto=I zQu*x@sVl34H`t9hZXGsfWgzUa4>meyV}tc{1e>ZOXzDJkPtri(^;-zk9)y79hY`^B z8Un^-Ay8Qt>m75`Nq0p^|Do74>NX;+?_3mP~JZpnSjw+=5YU$9rN0ffgik*IEttrLt9DfAC0nJw@pJ#|Udz9}$tcZ6|g*VuoBt z{K=Z&b=za7{XrZ&tAtCgo_PMCM1PkkExn4P9y~ZtT737s1NoXyibLDtDg%*6`Xj2r zN1fJ|L+xkEE{ik<_U!lFZYQn0XF~yA~iZQ3{D)4j}1bC#1N) z20NvX?e8aJ*Oyk;50qizT!R}tIkTy#ld;3+v{%7TK`~1li;~&SEbP+FI zkp9*I2VXwSoo{jx4!wGaLrxqHy6EA6r5VzdJ7d3p5YkO|<3KN4q@1QXrv9+6$Fa{x zsf~zE8^P(94RD6*h|_a@acb~OoRpTu@iz5wRAU|v9X7zB7W*h(q7yHQMe)S~H~I(S zTBk5viB7|1+10pcxdZ1ly5h{)QWJ&%uileB;OK8xvn^3+> z6;ZSg9|ImE`@SYJoz~+`%Mo~UcCjehNj8aATV(J1ZZAwsgk}$v3X|?{q!CIFR>miT z6L@cEjSOGqzhOgJs#938xwIts%gmi8v)0b5B*7Q*p>+CHp-Kx#g4QhHLmCU~SCe^m z+baqFkPju#zfk62iOxw-S}|n1t0l5su9foZ!-X@M`TO5)g;rff_MYckJ88dU*~jNL zQ}J}aG0t{Z!oEIp#9424u%5XVcHF)3uW2O_cP-!y~SF_CPrH0OI-_ zL&Rw#QL?Wnwy?0JnNUgm>9dQli9?~Dhl^4#r4_&Sg7Y~ikpAiGyNn2R_>7R8DOhvw ztT@LKIuk9$*?zLUblMRPDAWb+yg}rf-1kGBTVvH5v7W;g^5GG zS+?9A(y3sbNE^x12Gu5Xg5J$oiml|umSXzzn4*Gb?s_JR=zfRp^$VPTlG@PE+YsqP z`iL6?x%c|x#m#22m)aRIKnxHAf5reBwsa>A|4c(k)(_IvCb66h7w9yLk~BZjxv@5C zE!Ze&evvCgCQJL?9sgApO@?2yIm zm4^$|Dn*c{f2JwvCqDYIl?hc?!0o&|uMv0R!`GlPO6I-7X=3R#7I@%x$kjNutgMYfammL zo7)FnZw*DaI6ZWK*%7^(YoYI#YNF_KS+R*fX|BnSv%ghV{4J`VSgia83zYw}1|7WH zs1;NWJoGnXY6_2$9je34pf!4$d7?{>FFM!JL+82x}XWCo?DQtd9N9_Mi2GI9rzwBEnlc!$!bSXSXI5GVv0^@15j^=2AX9B=GB1~t@faa!YR~i6APOjBVqBdz~4pS zaLySGn!QC6>%(Yfw+>B(lhHV8IU1zDDJgrYT*+elSMg-W^vC`xP2P39YyJh#x^*Z_ z+Wa(d4Cnu3#zA7x; zF2QQVTv$4u`MxfgnIyr~>?llHH-Sm3so!6x$D$Nk`CMmcw5h~CDh*+$)poELdtcJr|7_veeZLbY%JXku1dDh6XcaL8o#P*(hxwG;@tKiD)dy<&D`9VQ4vrcP zQP(0Bb-k9NZnqOfEr-(o8yC`|bhSWjv!&3Bku8eus41la%g|4-YmfwP=405u8VrZD z>2Oq_ITMSa-!DomC~fJr7ig-=LqAmkCWA6zwJ!*Evx&PNs!J%?vibv_i zgS3{C;&TSRE@>Uu(Xm2EyLNzX!;h$S$ryFsc7m-;Bm`24;G9mtUNar`EBC@??%a~L zh03S)#W$7v$~@Cv9a_>nuyqkC?8-fLDAsNVgW5c58!m&@bY8L#H3*e!u)OkM?lKC3gUi9SE!0@(;;@0rkPMdD zg3;l5v1H5E|8U)Fe&lpBQHwR(EfphbHjzEz)gIWGrC{TiK4s(1R$#+69mtCx|Ao8G zKdSW4`ssYUOdwOAQ;oH6u1)b3ulQ2DejG10W&IB39)FgNoZXW3_5?Fh74lz}9Ao8@ zFE9nwLHv^ssifVHwIf}`Ul%sg(USG4Wx!0LrZe^Q=}fh<4pZEDozL9p%X(%1*6*#v zh4^zJ$uVSW7gu1jrY1AjCRwbVStn+1T8XK~s4=Bfb*3*P@?%xmVuw+Z93S$nB_0^xuobEMZjx{Q_m*P! z_hLud|GxGtsQ1G>{aE*M9;}l^7HhwO#(?GOK}<=u2F$6n<2L$7)^-yL~t2L`Lt3R`B_jQi* z-zkss&}W1=Fu;3!*va(cEm@5|5176~SEe62oz>bB#%evFH5Wy!j}ix-#LY%NGtxWH zW+vtN^*3r(?aL>oT{S`6{2+Vj^X5+&V2aIaGu2~DS*2dv|D+tsOB{+D15DQA15>DR zpOqW9j#U`goN1S9k$e9m5H~+c+g`qQyS=4dC)HQH{R{t|zsr9b;lyO+J~G8d?s@t$ z!;0-l=l|82HF5pVGm(QsNI%l)e{~WUP57q=0{NF#U-*m}*5YC_*(tufiBjzN+mDCx z_iIn$@13d5Umw|3lx!ngi1CtSAZ1Uh6#iQB3;yP|SpM2mH~z@kUHpx!1+H6KlD3p) z*=*bAU#`(nn)Xm#f3KbM$JR~fuZ(@hU%h{mzj>k+fA4}m|5VmZlw-m*z4Jfg@i?O@ zdYnnuO9k1@PpGKK3^T$Cy8i#zI}f;=`uC3)m6Q}wh-gqo`#yI`GK!4sh$OPf%*sv! zEu%z6MzXiu_w~8$@z{II&R*Fg`!D}j&(q_Fr>NX_U0yG*?>XOjU7zdyJ?C`pbH0c3 z{~UvVQhTZF;7I9(vnQlioEJz_lBY^p}be5p#Scc zU{D2u;SuNbwu0tUC!z29zH8 zbzLCbDtTW>s(MpMI^Il}cJ{f@&Api5AbBYm7_1jG&CUo#S1%DtT(T3&S;h-xF18o6 zKF5jPr8-sE_nfI>D`MfQEtjS|cq({WJGVGG>x$-}MS7wyu zW-7dC_DQVrBwAd|c7?cjuUN7Aw35Qp=y>7sq!PI~F85uq=ZJLAy^HA#NOv4BE8Xey zKhHVXX(TSoDMo~y{#pDb#+rfB6(gHSw>)r^ZYvd>QP=u*r(QNDZmPD4Lr&W@E;rZi#X2id zXTQ3lq|ooa17Q1Pwzlo!_B(9VrQsQUe47eW4i^??+Po0r)fWm&2YP<_d-jE}_fUJ` z%CfJ|5r|9Pc_B7Uv=tA~JN#{1-e-n$g8@<7+pbb<+#}t(akF$=gr~4hNn$;!Uc5~Q zvkSHs_YT`>E*xmL>u^(1)6#uKbH*$dt%->cEqT&j6cu$})N*GhkqX7w&G$00vl#Zy zcDuv>{QV%f4jd^AyW%ZGs+JUDw%-zB$EgW%6+a6LXUr4UJBfw;3G2mO``<|SO)Q=F z!~6ER;XC)qb1H)Y>1G<4G(DiI)w3Zk)_Y!t*^KUY%{ETW-Y#0aSyan1O|(=^M|9!t z1JM-=8_}lIOGSO=2a8lXytE4l6x;66EM)V}zP(M&LW^upT|bxJr)bWr6M~8IWMRbK z{=y6;5@xn^79uYW7eduNgh{5V!m1KQ#a+YBXN=D&vnWpt*jnuhvGb?qqNc7IqVuY6 zg>t8!2$e2)i!d%xG&=mDNZEI;T@9OQHt%CyET3*Im2P|bzw}fz>(p^!N!-`JDbn|a zwZ4Wz$Ob>b+f%N8Qw{Cx z)iUqX@jx*OZ?emr_oHn(Ry|Age$<}xe;g;)Cg-%lx`ku2q9-j138mOa+p<*mcF5|i z)Z;oi7f04I>sq4m?sK`N7d@|Bn$k3@=T`sRZ`R|?TK&IPh<8=V&;lWLyEC?bC#BAg zIyC8yCCzQ(mAM~!s$`sbpSPJ;d0+sOiYLm09c%;72WEg7Uy|y;STEL#8DIt!odMd>x{9Lv z!1nVz{1pahSCYrCwBt6+8#BNRFayj0Gr$ZeA_KJe`DR75n{DR##tbk6%s}=Spkp1D z)2%0wDD+&R@AYHvlt&^o1{MTA*+-tw z%m6dM4CHSH5FXT!W1PQZ{Jr>6gw;(-=(>s$CY7c|DJ3bsQIqf0%g=cTZ%`pW`zO!7 ziC2E^D<1mdw7B_)L%D4yO+K)LRRop1GR(*Qcp*y|b zDa~y=?}SOi6FD)qqV$2Jdwmtf*8FTIP1qVkv#Pa7_mSe4{_uB4 za_)YFw2~KnPYa4sZc1nS-=SMe>(OJ>px0ez(EEW8=+nmvP#zEpl?G>_?$-cX$wg4A zQGFQ9x(AcT=CBw!6%NkMs5aH*d;R9uJe+^wgA4uZ=2!m|$uHWG{PmiH-Z>P4+WfHZ z*-odE+R=%s9qF8f1D%YGqWBWW=|S~c^xjT`((2u!x0AK#)0;&ol-3PuZMvaovj!+u zVl1?ctx)pG73lA6i3;1=z%-x~x6O9ZyN;6dIw(G?7_=MPLu=hEXtjHZ;_>UDbMGN^*Gizb?mWug zU5*O#Pr_Kg8_XtNhNZ4Ogk)1Vzki3u8zRuI^%{+E~-Ig`> z4UkzL*OO@n4Uwtq$K_W)^TIFj#Ja)ar7o3ob1dl2YzJL?9cbH`pvcgk>0`lIrxuJB zEl0(s0WcJ*!!UdUDt@$saZN2$E`J~9fn`u*rVeaEhQr?f5u8K)(eU~{v|M8X@A6jY z(?13QH)0T4D*;oe58~DmvA?j20JqDi({C%IBtE=rFGt zTAVM5#?2*YQvE>sSZG^(8k(gVqhX`MsCRx4>i7|yqs-y_S_O3jj>AQJJQ{{Xqsi-{ zXc@2to)taNS?MZzJDi38bytkn5MyFDF{bGFVCK{!Sg>t8majF%ns>a;Yz|xl=Ozz- zvTtd{!ST`&qw7kZ_NbK?cA)?G6!f@J1HL5(!}nNY^cZ{)UC*|Lw^JjuGn`BS+~gmjhwLyxxidz39Kg_G zT`^eZk3rFQ(f?F5`qXKU?m>a*A{`4Kp&>dcTcVTt1^75kLYGyx=w7WCdLKW40UMfP z*rlNu=aq<%3U3g$qc^4%zKWTrR$;z@7MAJ}*6rGiZ8ndvPKUqw!0i8veR97ug*t1m zCEsRcsb$NtWcN8wo`b;@4F`ldbwbGN>X?x1i}5S(V9eeH7#Y76!_Jg|zw$5)INSmK zrnAZi6o`hxjB!y@87?l_$M`_kT?5j=!Ij{bI85iv;)glt7F0a#hCfd8Pk@$ zM8uO}m^}C-CMxYih*KDXmXF5-O-GD-nTRoNH!;em21a&2iIKyWV$?z@#;S)Qu!Sjt zB*zeX@F>D!uV9KvdBjXui`hGtV&TSnSho2J)|}mrjpHstT5?rx`on!IIQQ4LHK$jB z^XP%=zrHD$8*#H(b#1&U6TUw`(Ae9LS}Q<&_|`&sPMdEcG~@FU97vQhUM>k zuxPFd=DgdC*ad{?$HFl+tOlm|i4e7X86r=;N5sR~h$uY+;X}6}ymE7d*SUi5Y=g!cy#vy@rELc4GZ{{HmS#shv#AtD8)3 zMxXrT)9?C1HG-VTdGKo#eQ@h{`^sv2NUk=->f5)Fxa2Ry#}&e?(^n9aqK|0rFhpN- zLX6H+M6X(g=#u>~eOMZ%y>-R3Ek`l!;v`HTbQ;mK{V=1S8)ja1!0gX05P!KL5{Ase zvJX|UZg6dEUcDVhx-Z9_Mgy{HQ+}@})4iPS-{kYVCS=sfR-SxB+>ivsrF2Bxrb>uw zV~kn1I%8Id8D_P-hgp7snDy$*HNB1(=3MQ8c=r=n==TbVcJ;A*_%5umIEbVH7qP9h zJ9gh1k?xmFd+T?fk&`E%*_OQjdx1O`$4gUU`pc8{SkTV~3#zuk{Ew$Ge|J^PA9fz| z&22^KkA!s3;evGhzTR?h2!wWETt;pj$4X1BqbO?vX=6Wfya zZ2y<$QpYad(tYFQ>Kpf1lDZO0Lc3zg=wvME_ZdrSZ$sjncqDF;B5{ES5+7J$$-%K$ zHu4NsyeNe=jgMl(l$MZ;SqJHfG(c9c##3XN3WoR<{OO zsh8Jvu(8hE=izrMMtzXc25YToN10HN=KBXR+aS2$CvUL1G~Ty{!Ss^g?-U zBag>(EH@Z{tim>Isr(sR>-k}8IXi6e9f8g5xQQp?{{Z61{C?REJauI&Tc!duXx9~oQj#u zu;sX%>g!MTLz{G3(&oAgX?`lNPsH!&{p%gQA8{!wIj#GT$`mP|4(za_{Yrm7tBu=b zoW5tj%tY7!d- z{W}*MTw}0q;&CJ#TCT|PhmyIvBHPcl=gr*1Nlz*EtbB-d@2_HUh0B;dM4_+y>7>mn zdhcJF`Nu9?rgQri(v=~qw03o8j){E4gyWDmaiFsg{pj+tJXu$eW12THWu3F8Gwn0)OevyA ztXJ0bVx3qgW`G$`bOtDSNnJ(vf$isc$P6$8%s}=Spp@qwS+neER*>{UakWvZGf=P?D9G`qeYG{{udzyWAh{_eJDw}ZTCnd0XWr8~ z!(+7Q;%bU*b(^NRE79an{4NK--F(qso~@~PX6DyPj*WPjN9 zf^*FNomi9XU{zYT>=rGkxQK#|efpigxGgiMXbjN0^U<`yeE9d-b3dT_tDk1H+mHrmS1&K1i$E(ZX~7bQBee2|AdW* zNY%pR)BjrM0W4XR-1+}r3=Z##TT&4%}GFL)gvi;lXz;jKFwo#vNA z7g01iI9>Y_KJl1*&ddq}2z^ut!A89h*fj~kD||4)Dh3nBW$E30^eD0sKHEpaEA}1Q zcQ}pqWj)Z|e+|6s>%e>CrL2t4b(qsX$pA*yu7qJ#OJeAkZ$1n^;DM2=M`hI>c> z&$Zg{G)aSJp}z3cn+eaZy|UV#>oNO(k^%I5GatQ2cR(Nesp!3x(7oN^?AQa3$&298 zXEr=qB*CMxHauFt$xeH&%l!W-2GD9_EZUZt0k6RMXt#P2TE88Qt|fWyL2=1{})7zuj)6!^k zCII!P?S#YX^AJy+_oIGMckxa%upErWVhc2Fun|oTE=Qx)UC{s!e$Y!J&nG6pY7G!tklh@1D9&6;HWR2J zj>7!E+tu_5htsa1sC&f-ZYjQKop>Iu&3mI>kBX?B6om#2He}T0H0ODj9v;i*)=cMC zMBY@#ol14G!x|dz_k-hrVsKWgfVzi_VDBuz{z-Azhi!v{eNi~{7eO2$gScHyh=;_( zzDN)p1{HzBiz9GIFhuQy8yVxFNy#ucJ_Q`c?1cUPG7uk_2yx5a8ReYj{2V9CpsuoY?~REA8QT!2JUe9@-1}x>Sw>z9-_8ku-Q`w*5|6g`pnC3%X$BwSp7^3I_E!? zHcd;Vx&G@Z&gXMRUFcE@Jv(kdJC7}(_~DZ&(eGwPSwT-_Mbpf(ssX$uyD@d_Tuh04 zjfkd8G5MS>g8Uz2R0C%Wi8DZ-Mn34^*%D3O1fuSQkEmIsG{i;5L%jI!>;7-Yf^$kD z?Aq^#aK{?rjfKB0=lvhEk9Mga)AfN?<>z#>PclhnOryBQ=V(UsAzBbO0%}I#F!EPI z;fdAh?6U#1uHh|;3eq4u_lpHxS6R`zBeSCc!cVTklwmb6WdmVK^fW}>&_ZOVLkK@* zfC-lb4C@?=?gMtAnT;mu1>Qidj*VfjXZT-Zpx%YUaIKX9*DIC(t1g%S|6IV7&6_b$ zr6@e#kAgvXO-h9`QU6GqW4n`PMJy)Sq8%t?H6Nz3574lyKq+(k63mZNT)+p`@W;oK z?`Z?q5dwxw9wIo!4G}k|BWj8{qK@4}RMC})=zahZ%0UPnQ6Zx(T;E9Gyt5r@Z86Qr z`%wx{RTs4BWdaXleugm9y@(&_m6d#2`c4%}w`RcP4xr`hMh~j?A?P-z*jIsBX`dhJ zpkY+!obm&8_1?fouRjKN+l;`KOE6iSgs9Y(nEIgyqNM-H`1kBUH(7b~YBC>Pof6<% zV*-4GH~ zL+h-jsM%YF?q@2Z=ged16}=R_QU{_}`S7f^=X%+j53ExD*3T;Mz`OV2c9=#Rz` zs_6K19DLKBp}XEQ^ypU`Jxx!dr%&^YI-KTwtXR`Ot0^3wtVP31-O$>32RijmL)YrD z=(eXfx^Jt39yJf4hu30`(VvY`LDQd1p3Ti|pP`zd1mk<{QKxbQnnbll+r>@Mx{7Y8=IGvU3A!Kogx1r_=C(cDKl7j044_2#C0Oh;hOJxo^s(Wo z<%({N7NA?gs`JVOR03P-2HAuuNuw#o~@jx*evE{{Ak9Y zEi|)yE1J3g7{yfDpFTEOHJ?PrQ@%cDoW3u87U@k+_H}5qS=+p{jmKh+bBh6*J+>Lm zuCt3`9_mr#J2mPh7?Is+Db-i~K#oD7Wc2cVZjH_TGS`2a0gBP}q{xPysLwoiYI{_f z8qaf~I^{K~dT9>|`+Vh3+sEVc9LZ@0XrqQeb2_%6h|4`F_=Ot<6!oB{FJDmoNv7nr zS?=!g)*;$IMBO%a6`QSjF2 zFRZVifkDs7S65sRbzq+h);y<$lgFjUoW_|Sr7<1`G@(~bW}sj(P!QuyvzF;ojMdj; zJWZ0TIJ-^crx0TQMa$J5K7xLL@NS$tKQ|GW)>gxUXx`nLSk2Pa$6ki*v zIbbAtC0``3sCVSO&W5@OW2o2WD-_VylH;3m@f9EF7|eR+oSr$MC3$}ALv2^;Q`=-U zYHyrIUI*_`XH#CU;mdEAIiWB2A)h)*HyG`w79Y=1^QOD0g>eUJF>)@oPJKmfs@LL} z$!E+sE;$z$GMa3Zt|wI+(CBO0aDH=gyHuJr&N+=)OZnH5>^hI8nydDb)BJ-RFZqub z$0+AwL>ALlk@c=<5>3BGj=fHk+x?={rky%#{Bw=PW{ZCKttZy*=i14OK2-Uc8<`s% zA`8)LvRkQ_ZWnnBDIzcS$&($D)QzId_Sk#2NzS~_+ls+_Mx3a^&f!$?%4ISRUy+f= zsba;D7C`ZsrWu;fw|8s9r-DU^omy@{pA};PyC2Vcy^?6 z_wxO^+0^X9az0-E+VL{K=|)-yn^0->P|_>>p33yzO9sB1$nc3wp8XW+g;)93KB2O1 zIl;WK-M9G}`=YBWj!A>6<1{*^A+1a7nK3WeD!8_Xv)& zhY04Lu|j#TNJ0PIEy17)1j8fF>HY|sPo0Fq>m;JLT2UE{iwj4e$=K$UxzEf1so&~L zdee2NjA<1rbKEU+*`MAPj*ciIEd4lESh2O85IMk8@J+B595#&-3=Gx_nr3H&qN|q( zB`($>W1?Kx#JYRopzDiRh`>BLfZjSrHeFOGgN5#2`au^gS4mC&*;ngcBfu8CT^;>i9=4?H7+;T?!`JQ zQD?upqNLC{8FezJwohhj+b(Xu!&Y7T!*>LPDTfOSGi_c7^G+=j5^vNN*7*boTW9MF zM|~Qm_a(gFs3|TwI8Iz#UpI5#yv;o476TILxLc$ZP@hUG3sjGiI@9O-zJn$&>b?sHpp*mODF%R4B%7zL$}m#jtm_ z+a036wNr2%I8qpP#aoC}Eh)roza_+uSSHMx+*g=iZG^B=Z<(;gezn+S^NI9!;%4+}eeIUAG zVI$gfda0<-{9utvhnIE%fnwV|nuToM*|)c;S!j{Xsq0^_pG0$Boe)fvCkrF?_7`R- zkubBRvk-Z4xDcx5B21jzR7k9TMr``%W?uNlWAGfxE(5k!yF%>zskx}BtA^;j>RX}Q zsV73E3*I7(OB9U`e<)J+ooiRaW}40WSQpEuTT7+)pZ+gB70o(zTv!r!F=I?&Z5J0I zWP_jJ?Rh&Rk5gt+o*58UKWQThc25<`P(5K>tNud#{VU?(W`BvB_v@Nrx3IHVp^WXH zrQ$k$--#{z75-TrF5~$iPYj5yYNUy4>V18dK%VSkTX>%21q1e$X8gRsmutDa(3;0! zotXhMxa~BdL_5ep8Q=UUL%axNMi<=0cL<1 zU2e=uy4|8fZuQUo@|?*o18{HCAfpY;UR2H4{+*OW@m|zzj5>vEdy=^y zx_T@u^FD7gukyeEs&u+14|cE(JRg_=W`G%B2ABb6fEi#0n1O=B0IWA8bG!>qygAnY z#2SL-E7s#5Jy?tEX+d}QeWnKv!&tZM>Bf4oUd#Y9py&*cSLZlI_kr!_dH5>~knaVb zUunl}m^WsC8DIvO0cL<1P(%jE*hg6r?Pi;KzA*#L05gz12B=d?e+rm9fF_Q3uE^Tq zU_x&kuCg=T2aGkaR%Bn;_Utjtda+*205iZ0Faud-fRvh)%xYb($6PT3%m6dM49F`3 zSU0r4yxPWg<=(s@&0}U%(NLER!v;}>sv;_Luzo?)8wph|6*Qma#a~I_v|!Qx1T#sQ z;03vD6BWAkj0|tqrz$;{P|Yb4YQE?cc}!nL9p=xbu13Ad-`t*tMr!4@9rDya7T;5q zCwmHtEz*H=yGVmKpOc2q7$Xg8@Iu;VVvnEsE^W1XplFQail5c_Q5hL(C6jBlisX91 zl$u^UPVLn@QuobPy}_@2QjiRr0OuOnsK<({P=+6lD2{!nUubX!BV# z_vmO^^4BF=Hfvo@jIAhrKr$vvYa=R(KZJnM_@umLb2t*3#e;J~X^#5{+(NizYa|ris0bDaz~`#ag=4{5Fee z`4MN@bm=4Qj=Vq;iSPIN&98Yl6VVap7K-z$e~RQ6*%bPE%|T< zSGfx{99V-Idh{WqQfH~Bax)sbFO&v1@gV;W&nQ6Lg~orbNWsaaXi^s&3g7EbQ|6AQ zm~KsI_K2Ib@WWPG@%j#J3J9m2JCD(E=eKnIq7kJnx&bZOFcj_6@OxwDw>+8ZzRP%D zvM#PoPs(q;{Rw|awdHftopYECPDK&*i&tFA4`%J{m; z)UR!kX}I0btT%6G?;fM{gjNSqEtaMAh<{aEnt7rg&1}<@rdR4jp~v;p`=RCY+-dm? zA6im+6)m=XLW?b0P-3DUEwjEzD_1q4wby)UQ{e-&xxPN_I(mo>oi(PjlXugNigoDe z<(p8}st-+rdC*&M049|`!n$8`)E8}o)6DOldw$h+d25HMXRF98ntqm*X}4RZZP7@k z^(jc+Y*Z9`sL-j_q!;L#oA%O&wKbnrUIQ}JX z4xK%)jV|@Er5k?U^x)wMdZpnBrQxGcq@w|}>#jf2qx>sN8xDO`RzyS-lv_ zi9BIq;SLLNTf9_0s{U^n8xOVSP}z-%P0Jsz5cO9g6I~4~@ewGTsl@zP;f-ArY-*O7NVK%1kOIlX($0 zdZ|_lg=+1lv~f#wdptCWPC)(Yo8aKr2v!Hm!~C5&Ox{&TrK#m$Sbqh|_dA1f%M(!M z$vx=z?GC+$jwro!AxbZHhF+_o&_AS!a%DQ9g56CRIkZ3(`?sj!ZUMVxQE*C3fm>fq zv|iF3UdK0}lPC%ugVJ)_CwcE5X|-O+R1-$ZyPbJ$AN8#QXsYah*{n)=F*aJ=Ta8A8 z1vn4y4d%Iu>bbY5Hn1|P z%@w2S=Uu2;sU*yu2EZ)H7iQ&)!OZf@{Jhc~RoyqB`hs4t+@lQJ(}iGvegtZtKaB=P z9neB!H+-s@VtCIeM7>haE1%?j9GS|9sq$`PUfV|agw^3)u)25+)}td~bI}2!s-t1wqA+T8ZiBkbOQ6A><8ZG?@EGb3-*Fqz zclcNC@xU8D8;{Eh=HCGne(5y1I5d~1_`~soBOIfe!LfEX)J)by%`Q=JxclWk{j_*E zL<*>>V*$rD!{HRy1a%IafXmZ)IZr4^_O{|e%sopch?Q|#uY=omaeFm&<^#H1lNZiXk;}M?u%BU zb;ow_TojHDt<>O^G+dtiVO!*ndwGosnrt&d(~|Shbkk8Zy;<^0nvAB-E6`+lO*FC6 zM3bt|(d3mM+&^DOOUJrst6dx&U)4ts!?tMV|4Cl`V!PyP4#;87H4Te&pa z9^8nwN#1CydkY@sozTXn4O-9afYuki;1PNro*lZNqkSi|Kk6utey~mQ#k(TJ1Ktl7 zp>s$XbV+H1F0&=*95(ytPHOde|R;ygpQ6i(W%yCG)aD>2tLWPjWXr)C*;|_ zf@T}~N2j3wRvq-4)dhWD-a_y9kI*wN3Ee_e(WR*$x*RK0&@^Fx3&wc_<86E~`rT2C z4D`VW4Ac( z3Hx0z<~*hZXd_}5A#BkgOs->uNySUR--54m_!;DXJ%jwK#{-#h>)J9EnOy$vk62q5 zOkW&=smi?&HFp%IxJiE1Pi|K*j+g0iMxc^qR^lzIo|dccBWA^hAJxG;(KE!3*oEkb zU`*90{iAxEpEF#`N)1WQ4_Z>#%d0dyVR?S=g?-2ww*N~t9x;>8+oYb6LUQK0VI3WnJ-Wxd}Y-U@BMB5SWmwqwgxDb^3TfJILhVNU6Nm}&I&9H2-(WVV$a3SrPT?VdT0w+qH` zyr9RKo+pMtBf0@}Rrwnn{5xol{0^!pbBeab212F(8mPI&D2mN&C!d#cf&qFtuNjnr z{-UG1C*(wb+y`^1C=AfELV-{k|J`r+D2fkkC(pNEVSp~T`hddQHGicow_)a(0cL<1 zP&@|cM$A}_o8rZdW5zLK2AF~0VSrMVn*L6EZkxaPqqQH+Y4vp@y1G|x-{JUG2I<`x zZ<-dE_N(o=UH)aC<~zC5ys~#`W|V|>y=$ExV@)e&l*^BPu}{A@FKN`C2NbYlHifji zLGiu2(}`CF;`@`#&F^uOU-Tn`)aPWSv6tGeHK1ul`CVv!_N72P`y!3#t|T45prJJC z<3@d{D=W*L)V!b zRqI%bOFn8Uo>8;TkLqzgGn5}05V!9WAr5vI=SSbzC!VuEV?Z1{bhda|-Gx7^Q;^Fr zw$!DZ@*lMW?!&o5Db$(04fWO}qQR3&In_7!ll^%vUfJQI_?oCPYxjNaFu3+>_|fys z`XJEGF7tloZS)%27oCSTL+djo(Mahi>dph4E^L6~s}$6-O@x#1@XH)<{qlXRZm=}p zmboo&e?JDS%b(E&Jtu#H@AQu7cyBs7myyE9EEc_HcgspV;Ieluoc-0{cyIt5UQB_* z^$~FR*b9yW>cA;pF2D1V6~DO7pJDM&=#F-U%cHe-Ewqx=L7OvXXxF=4R_#EoVybY6 zDGLX4DIB!B!J(ov9NM4FYJ09%a5$64Sfjzj$7uMj5!?!VFD4VmZ}dc=P9UixF}2o8&rA}2{TK6t~3|<7m~Ls>^hnm4CQ1B^*Ngn zRlZ4f`b3qN>M%?mjY^S+VRUjF${Smv{OZ9d@9u*NB?D1DO&117>cT+S4udA!V6eX| zDkyuSLOU7CU+IKOzNa$AL$#uIFdR_{<=4ldeC0PVXs(BHH+E-~bIRB5zrp}b+A$|9 z?QnSEZOp1RI4gD2>%iek1jL;>LS(ZEHqCueL*ot1hF3!6vW;P~b+0t5cIVf6Xx`=Pw}7DCw>Uj5(S#1nK2B?G#k92QBwBUHnm#

&9{E+PZ~elX4?f@K{cIoNBMsrwXExkLPH599 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 Date: Mon, 27 Apr 2026 10:33:18 +0200 Subject: [PATCH 06/11] Add check on attributes --- compliance_checker.py | 115 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 111 insertions(+), 4 deletions(-) diff --git a/compliance_checker.py b/compliance_checker.py index 6006791..4b3ce80 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -113,6 +113,8 @@ def _load_criteria(workdir: str, variable_list: str): "dim": str(row["Dim"]), "units": str(row["units"]) if pd.notna(row["units"]) else "", "mandatory": 1 if str(row["Mandatory (yes/no)"]).lower() == "yes" else 0, + "standard_name": str(row["standard_name"]) if pd.notna(row["standard_name"]) else None, + "type": str(row["Type"]) if pd.notna(row["Type"]) else "", } for col in df.columns: lc = str(col).lower() @@ -184,6 +186,7 @@ def _run_compliance_checker( total_num_errors=summary["total_num_errors"], total_spatial_errors=summary["total_spatial_errors"], total_time_errors=summary["total_time_errors"], + total_attr_errors=summary["total_attr_errors"], report_naming_issues=summary["report_naming_issues"], ) @@ -220,6 +223,7 @@ def _process_experiments( total_num_errors = 0 total_spatial_errors = 0 total_time_errors = 0 + total_attr_errors = 0 total_file_errors = 0 report_naming_issues = [] @@ -245,6 +249,7 @@ def _process_experiments( total_num_errors += exp_summary["exp_num_errors"] total_spatial_errors += exp_summary["exp_spatial_errors"] total_time_errors += exp_summary["exp_time_errors"] + total_attr_errors += exp_summary["exp_attr_errors"] total_file_errors += exp_summary["exp_file_errors"] _print_experiment_summary( @@ -257,6 +262,7 @@ def _process_experiments( + total_num_errors + total_spatial_errors + total_time_errors + + total_attr_errors + total_file_errors ) _print_total_summary(source_path=source_path, total_errors=total_errors) @@ -269,6 +275,7 @@ def _process_experiments( "total_num_errors": total_num_errors, "total_spatial_errors": total_spatial_errors, "total_time_errors": total_time_errors, + "total_attr_errors": total_attr_errors, "total_file_errors": total_file_errors, "report_naming_issues": report_naming_issues, } @@ -289,6 +296,7 @@ def _process_single_experiment( exp_num_errors = 0 exp_spatial_errors = 0 exp_time_errors = 0 + exp_attr_errors = 0 exp_file_errors = 0 temp_mandatory_var = list(mandatory_variables) @@ -337,6 +345,7 @@ def _process_single_experiment( exp_num_errors += file_summary["var_num_errors"] exp_spatial_errors += file_summary["var_spatial_errors"] exp_time_errors += file_summary["var_time_errors"] + exp_attr_errors += file_summary["var_attr_errors"] else: log_file.write("\n ") @@ -363,6 +372,7 @@ def _process_single_experiment( + exp_spatial_errors + exp_num_errors + exp_naming_errors + + exp_attr_errors + exp_file_errors ) return { @@ -373,6 +383,7 @@ def _process_single_experiment( "exp_num_errors": exp_num_errors, "exp_spatial_errors": exp_spatial_errors, "exp_time_errors": exp_time_errors, + "exp_attr_errors": exp_attr_errors, "exp_file_errors": exp_file_errors, } @@ -391,6 +402,7 @@ def _process_single_file( var_num_errors = 0 var_spatial_errors = 0 var_time_errors = 0 + var_attr_errors = 0 file_name = os.path.basename(file) file_name_split = file_name.split("_") @@ -408,6 +420,7 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, + "var_attr_errors": var_attr_errors, } file_variables = list(ds.data_vars) @@ -432,6 +445,7 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, + "var_attr_errors": var_attr_errors, } experiment_varname = file_name_split[ISMIP7_FILENAME_EXPERIMENT_IDX] @@ -460,10 +474,11 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, + "var_attr_errors": var_attr_errors, } if considered_variable in ismip_var: - var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors = ( + var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors, var_attr_errors = ( _run_variable_checks( log_file=log_file, ds=ds, @@ -479,7 +494,7 @@ def _process_single_file( ) ) - var_errors = var_naming_errors + var_num_errors + var_spatial_errors + var_time_errors + var_errors = var_naming_errors + var_num_errors + var_spatial_errors + var_time_errors + var_attr_errors log_file.write("\n") log_file.write("----------------------------------------------------------\n") @@ -498,6 +513,7 @@ def _process_single_file( "var_num_errors": var_num_errors, "var_spatial_errors": var_spatial_errors, "var_time_errors": var_time_errors, + "var_attr_errors": var_attr_errors, } @@ -803,6 +819,91 @@ def _check_time( return errors +def _check_attributes( + log_file, + ds, + ivar: str, + ismip_meta: list, + var_index: int, + isscalar: bool, + var_type: str, +) -> int: + errors = 0 + + # Sub-test 1: global attributes + required_global = ["group", "model", "contact_name", "contact_email"] + global_errors = 0 + for attr in required_global: + if attr not in ds.attrs: + log_file.write(f" - ERROR (attributes): global attribute '{attr}' is missing.\n") + global_errors += 1 + if global_errors == 0: + log_file.write(" - Global attributes: OK\n") + errors += global_errors + + # Sub-test 2: coordinate attributes + coord_errors = 0 + time_coord = None + for name in ("time", "t"): + if name in ds.coords: + time_coord = name + break + if time_coord is None: + log_file.write(" - ERROR (attributes): coordinate 'time' not found.\n") + coord_errors += 1 + else: + # xarray decodes 'units' and 'calendar' into .encoding; 'bounds' stays in .attrs + time_var = ds[time_coord] + combined = {**time_var.encoding, **time_var.attrs} + time_attrs_required = ["units", "calendar"] + if var_type != "ST": + time_attrs_required.append("bounds") + for attr in time_attrs_required: + if attr not in combined: + log_file.write( + f" - ERROR (attributes): coordinate '{time_coord}' missing attribute '{attr}'.\n" + ) + coord_errors += 1 + if not isscalar: + for coord in ("x", "y"): + if coord in ds.coords: + if "units" not in ds[coord].attrs: + log_file.write( + f" - ERROR (attributes): coordinate '{coord}' missing attribute 'units'.\n" + ) + coord_errors += 1 + else: + log_file.write( + f" - ERROR (attributes): coordinate '{coord}' not found.\n" + ) + coord_errors += 1 + if coord_errors == 0: + log_file.write(" - Coordinate attributes: OK\n") + errors += coord_errors + + # Sub-test 3: variable standard_name + var_errors = 0 + expected_standard_name = ismip_meta[var_index].get("standard_name") + if expected_standard_name is not None and ivar in ds: + if "standard_name" not in ds[ivar].attrs: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' missing 'standard_name' attribute.\n" + ) + var_errors += 1 + elif ds[ivar].attrs["standard_name"] != expected_standard_name: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' standard_name" + f" '{ds[ivar].attrs['standard_name']}'" + f" does not match expected '{expected_standard_name}'.\n" + ) + var_errors += 1 + if var_errors == 0: + log_file.write(" - Variable attributes: OK\n") + errors += var_errors + + return errors + + def _run_variable_checks( log_file, ds, @@ -820,6 +921,7 @@ def _run_variable_checks( var_num_errors = 0 var_spatial_errors = 0 var_time_errors = 0 + var_attr_errors = 0 log_file.write(" \n") log_file.write("Experiment: " + experiment_name + " - File: " + file_name + "\n") @@ -834,7 +936,7 @@ def _run_variable_checks( n_err = _check_naming(log_file, file_name, region, dim, isscalar, report_naming_issues) var_naming_errors += n_err if n_err > 0: - return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors + return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors, var_attr_errors grid_extent = AIS_GRID_EXTENT if region == "AIS" else GrIS_GRID_EXTENT possible_resolution = AIS_POSSIBLE_RESOLUTION if region == "AIS" else GrIS_POSSIBLE_RESOLUTION @@ -852,7 +954,9 @@ def _run_variable_checks( var_time_errors += _check_time(log_file, ds, dim, experiments, experiment_name) - return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors + var_attr_errors += _check_attributes(log_file, ds, ivar, ismip_meta, var_index, isscalar, ismip_meta[var_index].get("type", "")) + + return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors, var_attr_errors def _print_experiment_summary(experiment_name: str, exp_errors: int) -> None: @@ -935,6 +1039,7 @@ def _insert_synthesis( total_num_errors: int, total_spatial_errors: int, total_time_errors: int, + total_attr_errors: int, report_naming_issues, ) -> None: with open(os.path.join(source_path, "compliance_checker_log.txt"), "r") as f: @@ -956,6 +1061,8 @@ def _insert_synthesis( contents.insert(iline, " - Spatial Tests : " + str(total_spatial_errors) + " error(s)\n") iline += 1 contents.insert(iline, " - Time Tests : " + str(total_time_errors) + " error(s)\n") + iline += 1 + contents.insert(iline, " - Attribute Tests : " + str(total_attr_errors) + " error(s)\n") iline += 2 contents.insert(iline, "0 warning(s) detected.\n") iline += 2 From 6ad71d612b8f477a4d517ff61ba36ba50d1320b1 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Mon, 27 Apr 2026 11:14:49 +0200 Subject: [PATCH 07/11] adding additional test --- compliance_checker.py | 129 +++++++++++++++++++++++++++++++++++- test/generate_test_files.py | 12 +++- 2 files changed, 137 insertions(+), 4 deletions(-) diff --git a/compliance_checker.py b/compliance_checker.py index 4b3ce80..eccddf5 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -1,4 +1,35 @@ #!/usr/bin/env python3 +# +# ISMIP7 Compliance Checker — check summary +# +# 1. Naming (_check_naming) +# - Variable name matches the expected ISMIP7 name from the data request. +# - Region field in filename matches the region inferred from the grid (AIS/GrIS). +# +# 2. Numerical (_check_numerical) +# - Variable units match the data request. +# - All values lie within the allowed min/max range for the relevant region. +# - Array is not entirely fill/missing values. +# +# 3. Spatial (_check_spatial) [xyt variables only] +# - Lower-left and upper-right grid corners lie within the expected AIS or GrIS extents. +# - Grid resolution is one of the allowed values (1, 2, 4, 8, 16, 32 km). +# - x and y resolution are equal (square cells). +# +# 4. Time (_check_time) +# - Time dimension is present, is an unlimited (record) dimension, and its values are monotonically increasing. +# - Time step matches the expected annual cadence (within tolerance). +# - Experiment start date, end date, and duration match experiments_ismip7.csv. +# +# 5. Attributes (_check_attributes) +# - Global attributes present: group, model, contact_name, contact_email, crs +# (epsg:3413 for GrIS, epsg:3031 for AIS). +# - Coordinate attributes: time has units, calendar, bounds (FL vars); x/y have units (xyt). +# - Variable standard_name matches data request (if specified). +# - _FillValue and missing_value are both present and equal the default netCDF4 fill value. +# - Main variable and time coordinate are single-precision float (float32 / f4). +# - scale_factor and add_offset are not allowed on the main variable. +# import datetime import os import subprocess @@ -7,6 +38,7 @@ import numpy as np import pandas as pd import xarray as xr +import netCDF4 from tqdm import tqdm @@ -697,6 +729,16 @@ def _check_time( ) return errors + 1 + time_dim = "time" if "time" in ds.dims else "t" + unlimited_dims = ds.encoding.get("unlimited_dims", set()) + if time_dim in unlimited_dims: + log_file.write(" - Time is a record (unlimited) dimension: OK\n") + else: + log_file.write( + f" - ERROR: dimension '{time_dim}' is not a record (unlimited) dimension.\n" + ) + errors += 1 + start_exp = min(ds["time"]).values.astype("datetime64[D]") end_exp = max(ds["time"]).values.astype("datetime64[D]") duration_years = end_exp.item().year - start_exp.item().year + 1 @@ -827,6 +869,7 @@ def _check_attributes( var_index: int, isscalar: bool, var_type: str, + region: str, ) -> int: errors = 0 @@ -837,6 +880,17 @@ def _check_attributes( if attr not in ds.attrs: log_file.write(f" - ERROR (attributes): global attribute '{attr}' is missing.\n") global_errors += 1 + expected_crs = "epsg:3413" if region == "GrIS" else "epsg:3031" + actual_crs = ds.attrs.get("crs") + if actual_crs is None: + log_file.write(" - ERROR (attributes): global attribute 'crs' is missing.\n") + global_errors += 1 + elif actual_crs.lower() != expected_crs: + log_file.write( + f" - ERROR (attributes): global attribute 'crs' is '{actual_crs}'," + f" expected '{expected_crs}' (case-insensitive) for region {region}.\n" + ) + global_errors += 1 if global_errors == 0: log_file.write(" - Global attributes: OK\n") errors += global_errors @@ -901,6 +955,79 @@ def _check_attributes( log_file.write(" - Variable attributes: OK\n") errors += var_errors + # Sub-test 4: _FillValue and missing_value must both equal the default netCDF4 fill value + fill_errors = 0 + if ivar in ds: + dtype = ds[ivar].dtype + nc4_dtype_key = dtype.kind + str(dtype.itemsize) + default_fill = netCDF4.default_fillvals.get(nc4_dtype_key) + fill_value = ds[ivar].encoding.get("_FillValue") + # xarray moves missing_value from attrs to encoding on read (CF fill-value handling) + missing_value = ds[ivar].attrs.get("missing_value") or ds[ivar].encoding.get("missing_value") + if fill_value is None: + log_file.write(f" - ERROR (attributes): variable '{ivar}' missing '_FillValue'.\n") + fill_errors += 1 + elif default_fill is not None and fill_value != default_fill: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' _FillValue {fill_value}" + f" does not match default netCDF4 fill value {default_fill} for dtype {dtype}.\n" + ) + fill_errors += 1 + if missing_value is None: + log_file.write(f" - ERROR (attributes): variable '{ivar}' missing 'missing_value'.\n") + fill_errors += 1 + elif default_fill is not None and missing_value != default_fill: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' missing_value {missing_value}" + f" does not match default netCDF4 fill value {default_fill} for dtype {dtype}.\n" + ) + fill_errors += 1 + if fill_value is not None and missing_value is not None and fill_value != missing_value: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' _FillValue {fill_value}" + f" and missing_value {missing_value} are not equal.\n" + ) + fill_errors += 1 + if fill_errors == 0: + log_file.write(" - Fill value attributes: OK\n") + errors += fill_errors + + # Sub-test 5: main variable and time must be single-precision float (f4) + dtype_errors = 0 + if ivar in ds and ds[ivar].dtype != np.float32: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' dtype is {ds[ivar].dtype}," + f" expected float32 (f4).\n" + ) + dtype_errors += 1 + if time_coord is not None: + # xarray decodes CF time to datetime objects in memory; check the on-disk dtype from encoding + time_encoded_dtype = ds[time_coord].encoding.get("dtype", ds[time_coord].dtype) + if time_encoded_dtype != np.float32: + log_file.write( + f" - ERROR (attributes): coordinate '{time_coord}' on-disk dtype is {time_encoded_dtype}," + f" expected float32 (f4).\n" + ) + dtype_errors += 1 + if dtype_errors == 0: + log_file.write(" - Dtype attributes: OK\n") + errors += dtype_errors + + # Sub-test 6: scale_factor and add_offset must not be present + pack_errors = 0 + if ivar in ds: + # xarray moves these to .encoding on decode; check both locations + combined = {**ds[ivar].attrs, **ds[ivar].encoding} + for forbidden in ("scale_factor", "add_offset"): + if forbidden in combined: + log_file.write( + f" - ERROR (attributes): variable '{ivar}' must not have '{forbidden}'.\n" + ) + pack_errors += 1 + if pack_errors == 0: + log_file.write(" - Packing attributes: OK\n") + errors += pack_errors + return errors @@ -954,7 +1081,7 @@ def _run_variable_checks( var_time_errors += _check_time(log_file, ds, dim, experiments, experiment_name) - var_attr_errors += _check_attributes(log_file, ds, ivar, ismip_meta, var_index, isscalar, ismip_meta[var_index].get("type", "")) + var_attr_errors += _check_attributes(log_file, ds, ivar, ismip_meta, var_index, isscalar, ismip_meta[var_index].get("type", ""), region) return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors, var_attr_errors diff --git a/test/generate_test_files.py b/test/generate_test_files.py index b0be90d..c81f54f 100644 --- a/test/generate_test_files.py +++ b/test/generate_test_files.py @@ -371,7 +371,6 @@ def create_netcdf_file(output_file, grid_name='GrIS_16000m', scenario='ctrl', st 'long_name': var_info['description'], 'units': var_info['units'], 'standard_name': var_info['standard_name'], - 'missing_value': fillval, } ) } @@ -440,6 +439,10 @@ def create_netcdf_file(output_file, grid_name='GrIS_16000m', scenario='ctrl', st encoding['time_bounds'] = {'dtype': 'f4', '_FillValue': fillval} ds.to_netcdf(output_path, unlimited_dims=('time',), encoding=encoding) + # xarray drops missing_value from attrs when _FillValue is in encoding; + # write it explicitly via netCDF4 to guarantee the attribute is present. + with netCDF4.Dataset(output_path, 'a') as nc: + nc[var_name].missing_value = fillval created_files.append(str(output_path)) else: print(f"Skipping x,y,t variables (include_xyt=False); {len(xyt_vars)} variables not written") @@ -505,7 +508,6 @@ def create_netcdf_file(output_file, grid_name='GrIS_16000m', scenario='ctrl', st 'long_name': var_info['description'], 'units': var_info['units'], 'standard_name': var_info['standard_name'], - 'missing_value': fillval, } ) } @@ -559,8 +561,12 @@ def create_netcdf_file(output_file, grid_name='GrIS_16000m', scenario='ctrl', st encoding[f'time_bounds'] = {'dtype': 'f4', '_FillValue': fillval} ds.to_netcdf(output_path, unlimited_dims=('time',), encoding=encoding) + # xarray drops missing_value from attrs when _FillValue is in encoding; + # write it explicitly via netCDF4 to guarantee the attribute is present. + with netCDF4.Dataset(output_path, 'a') as nc: + nc[var_name].missing_value = fillval created_files.append(str(output_path)) - + print(f"Created {len(created_files)} files in {output_dir}") print(f" Grid: {grid_name} ({nx} x {ny})") print(f" Years: {nyears}") From af5a3e96c37cddcc344f648059174e4289ac2f8c Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Mon, 27 Apr 2026 11:33:40 +0200 Subject: [PATCH 08/11] Adjusting checks --- compliance_checker.py | 145 ++++++++++++++++++++++++++--------------- experiments_ismip7.csv | 2 +- 2 files changed, 93 insertions(+), 54 deletions(-) diff --git a/compliance_checker.py b/compliance_checker.py index eccddf5..0a9b605 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -19,17 +19,19 @@ # 4. Time (_check_time) # - Time dimension is present, is an unlimited (record) dimension, and its values are monotonically increasing. # - Time step matches the expected annual cadence (within tolerance). -# - Experiment start date, end date, and duration match experiments_ismip7.csv. +# - Experiment end date matches experiments_ismip7.csv; duration >= 1 year for historical, exact for others. # # 5. Attributes (_check_attributes) # - Global attributes present: group, model, contact_name, contact_email, crs # (epsg:3413 for GrIS, epsg:3031 for AIS). # - Coordinate attributes: time has units, calendar, bounds (FL vars); x/y have units (xyt). # - Variable standard_name matches data request (if specified). -# - _FillValue and missing_value are both present and equal the default netCDF4 fill value. +# - _FillValue must be present and equal the default netCDF4 fill value for the variable's dtype. +# If missing_value is also present, it must equal _FillValue. # - Main variable and time coordinate are single-precision float (float32 / f4). # - scale_factor and add_offset are not allowed on the main variable. -# + + import datetime import os import subprocess @@ -785,18 +787,29 @@ def _check_time( else: log_file.write(" - Only one time step present; time step check skipped.\n") - if duration_years == experiments[index_exp]["duration"]: - log_file.write(" - Experiment lasts " + str(duration_years) + " years.\n") + exp = experiments[index_exp] + dateformat_end_exp = datetime.datetime( + end_exp.item().year, end_exp.item().month, end_exp.item().day + ) + + if exp["duration"] == -1: + # Undetermined length: only require >= 1 year, start and end date in range + if duration_years >= 1: + log_file.write( + " - Experiment lasts " + str(duration_years) + " years (>= 1 year required): OK\n" + ) + else: + log_file.write( + " - ERROR: the experiment lasts " + + str(duration_years) + + " years but must be at least 1 year long.\n" + ) + errors += 1 + dateformat_start_exp = datetime.datetime( - start_exp.item().year, - start_exp.item().month, - start_exp.item().day, + start_exp.item().year, start_exp.item().month, start_exp.item().day ) - if ( - experiments[index_exp]["startinf"] - <= dateformat_start_exp - <= experiments[index_exp]["startsup"] - ): + if exp["startinf"] <= dateformat_start_exp <= exp["startsup"]: log_file.write( " - Experiment starts correctly on " + start_exp.item().strftime("%Y-%m-%d") @@ -807,23 +820,14 @@ def _check_time( " - ERROR: the experiment starts the " + start_exp.item().strftime("%Y-%m-%d") + ". The date should be comprised between " - + experiments[index_exp]["startinf"].strftime("%Y-%m-%d") + + exp["startinf"].strftime("%Y-%m-%d") + " and " - + experiments[index_exp]["startsup"].strftime("%Y-%m-%d") + + exp["startsup"].strftime("%Y-%m-%d") + "\n" ) errors += 1 - dateformat_end_exp = datetime.datetime( - end_exp.item().year, - end_exp.item().month, - end_exp.item().day, - ) - if ( - experiments[index_exp]["endinf"] - <= dateformat_end_exp - <= experiments[index_exp]["endsup"] - ): + if exp["endinf"] <= dateformat_end_exp <= exp["endsup"]: log_file.write( " - Experiment ends correctly on " + end_exp.item().strftime("%Y-%m-%d") @@ -834,29 +838,72 @@ def _check_time( " - ERROR: the experiment ends on " + end_exp.item().strftime("%Y-%m-%d") + ". The date should be comprised between " - + experiments[index_exp]["endinf"].strftime("%Y-%m-%d") + + exp["endinf"].strftime("%Y-%m-%d") + " and " - + experiments[index_exp]["endsup"].strftime("%Y-%m-%d") + + exp["endsup"].strftime("%Y-%m-%d") + "\n" ) errors += 1 else: - end_date = start_exp + np.timedelta64(experiments[index_exp]["duration"] * 365, "D") - log_file.write( - " - ERROR: the experiment lasts " - + str(duration_years) - + " years. The duration should be " - + str(experiments[index_exp]["duration"]) - + " years\n" - ) - log_file.write( - " - As the experiment started on " - + start_exp.item().strftime("%Y-%m-%d") - + " , it should end on " - + end_date.item().strftime("%Y-%m-%d") - + "\n" - ) - errors += 1 + if duration_years == exp["duration"]: + log_file.write(" - Experiment lasts " + str(duration_years) + " years.\n") + dateformat_start_exp = datetime.datetime( + start_exp.item().year, + start_exp.item().month, + start_exp.item().day, + ) + if exp["startinf"] <= dateformat_start_exp <= exp["startsup"]: + log_file.write( + " - Experiment starts correctly on " + + start_exp.item().strftime("%Y-%m-%d") + + ".\n" + ) + else: + log_file.write( + " - ERROR: the experiment starts the " + + start_exp.item().strftime("%Y-%m-%d") + + ". The date should be comprised between " + + exp["startinf"].strftime("%Y-%m-%d") + + " and " + + exp["startsup"].strftime("%Y-%m-%d") + + "\n" + ) + errors += 1 + + if exp["endinf"] <= dateformat_end_exp <= exp["endsup"]: + log_file.write( + " - Experiment ends correctly on " + + end_exp.item().strftime("%Y-%m-%d") + + ".\n" + ) + else: + log_file.write( + " - ERROR: the experiment ends on " + + end_exp.item().strftime("%Y-%m-%d") + + ". The date should be comprised between " + + exp["endinf"].strftime("%Y-%m-%d") + + " and " + + exp["endsup"].strftime("%Y-%m-%d") + + "\n" + ) + errors += 1 + else: + end_date = start_exp + np.timedelta64(exp["duration"] * 365, "D") + log_file.write( + " - ERROR: the experiment lasts " + + str(duration_years) + + " years. The duration should be " + + str(exp["duration"]) + + " years\n" + ) + log_file.write( + " - As the experiment started on " + + start_exp.item().strftime("%Y-%m-%d") + + " , it should end on " + + end_date.item().strftime("%Y-%m-%d") + + "\n" + ) + errors += 1 return errors @@ -955,7 +1002,8 @@ def _check_attributes( log_file.write(" - Variable attributes: OK\n") errors += var_errors - # Sub-test 4: _FillValue and missing_value must both equal the default netCDF4 fill value + # Sub-test 4: _FillValue must equal the default netCDF4 fill value; + # if missing_value is also present it must equal _FillValue. fill_errors = 0 if ivar in ds: dtype = ds[ivar].dtype @@ -973,15 +1021,6 @@ def _check_attributes( f" does not match default netCDF4 fill value {default_fill} for dtype {dtype}.\n" ) fill_errors += 1 - if missing_value is None: - log_file.write(f" - ERROR (attributes): variable '{ivar}' missing 'missing_value'.\n") - fill_errors += 1 - elif default_fill is not None and missing_value != default_fill: - log_file.write( - f" - ERROR (attributes): variable '{ivar}' missing_value {missing_value}" - f" does not match default netCDF4 fill value {default_fill} for dtype {dtype}.\n" - ) - fill_errors += 1 if fill_value is not None and missing_value is not None and fill_value != missing_value: log_file.write( f" - ERROR (attributes): variable '{ivar}' _FillValue {fill_value}" diff --git a/experiments_ismip7.csv b/experiments_ismip7.csv index 16f073e..6827a92 100644 --- a/experiments_ismip7.csv +++ b/experiments_ismip7.csv @@ -1,4 +1,4 @@ experiment;startinf;startsup;endinf;endsup;duration -historical;1960-01-01;1961-12-31;2014-06-30;2015-01-01;55 +historical;1850-01-01;2013-12-31;2014-06-30;2015-01-01;-1 ctrl;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 ssp370;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 From 468f8598db4a9e5ca3cb9181414f619b249d71c7 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Mon, 27 Apr 2026 19:53:26 +0200 Subject: [PATCH 09/11] all ISMIP7 conventions implemented --- compliance_checker.py | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/compliance_checker.py b/compliance_checker.py index 0a9b605..889bdd0 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -34,6 +34,7 @@ import datetime import os +import re import subprocess import argparse @@ -54,7 +55,7 @@ AIS_GRID_EXTENT = [-3040000, -3040000, 3040000, 3040000] GrIS_GRID_EXTENT = [-720000, -3450000, 960000, -570000] -AIS_POSSIBLE_RESOLUTION = [1, 2, 4, 8, 16, 32] +AIS_POSSIBLE_RESOLUTION = [2, 4, 8, 16, 32] GrIS_POSSIBLE_RESOLUTION = [1, 2, 4, 8, 16, 32] TIME_STEP_MIN_DAYS = 365 @@ -65,6 +66,9 @@ ISMIP7_FILENAME_PARTS = 10 ISMIP7_FILENAME_VAR_IDX = 0 ISMIP7_FILENAME_REGION_IDX = 1 +ISMIP7_FILENAME_ISM_MEMBER_IDX = 4 +ISMIP7_FILENAME_FORCING_MEMBER_IDX = 6 +ISMIP7_FILENAME_SET_COUNTER_IDX = 8 ISMIP7_FILENAME_EXPERIMENT_IDX = 7 @@ -587,6 +591,29 @@ def _check_naming( ) errors += 1 + parts = file_name.split("_") + if len(parts) == ISMIP7_FILENAME_PARTS: + ism_member = parts[ISMIP7_FILENAME_ISM_MEMBER_IDX] + if not re.fullmatch(r"m\d{3}", ism_member): + log_file.write( + f"- ERROR: ISM member id '{ism_member}' (field {ISMIP7_FILENAME_ISM_MEMBER_IDX}) does not match expected format mNNN (e.g. m001).\n" + ) + errors += 1 + + forcing_member = parts[ISMIP7_FILENAME_FORCING_MEMBER_IDX] + if not re.fullmatch(r"f\d{3}", forcing_member): + log_file.write( + f"- ERROR: forcing member id '{forcing_member}' (field {ISMIP7_FILENAME_FORCING_MEMBER_IDX}) does not match expected format fNNN (e.g. f001).\n" + ) + errors += 1 + + set_counter = parts[ISMIP7_FILENAME_SET_COUNTER_IDX] + if not re.fullmatch(r"[CEP]\d{3}", set_counter): + log_file.write( + f"- ERROR: set counter '{set_counter}' (field {ISMIP7_FILENAME_SET_COUNTER_IDX}) does not match expected format [C|E|P]NNN (e.g. C001, E041, P132).\n" + ) + errors += 1 + return errors @@ -965,6 +992,16 @@ def _check_attributes( f" - ERROR (attributes): coordinate '{time_coord}' missing attribute '{attr}'.\n" ) coord_errors += 1 + if "units" in combined and combined["units"] != "days since 1850-01-01": + log_file.write( + f" - ERROR (attributes): time 'units' is '{combined['units']}', expected 'days since 1850-01-01'.\n" + ) + coord_errors += 1 + if "calendar" in combined and combined["calendar"] != "standard": + log_file.write( + f" - ERROR (attributes): time 'calendar' is '{combined['calendar']}', expected 'standard'.\n" + ) + coord_errors += 1 if not isscalar: for coord in ("x", "y"): if coord in ds.coords: From e554766a584548cca4765fb514178bec2a3e2031 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Tue, 28 Apr 2026 00:41:54 +0200 Subject: [PATCH 10/11] General cleanup --- README.md | 74 +++++++++++---------- compliance_checker.py | 146 +++++++++++++++++++++++++++++++++++------ experiments_ismip7.csv | 4 +- 3 files changed, 170 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 503c542..7fe6f31 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,63 @@ -# Ice Sheet Simulation compliance checker +# Ice Sheet Simulation Compliance Checker -The script checks the compliance of a simulation dataset according to criteria, which are related to: +Checks ISMIP7 NetCDF simulation datasets for compliance with the [ISMIP7 data request conventions](https://www.ismip.org/). The following categories are validated for every file: -* naming conventions -* admissible numerical values, -* spatial definition of the grid (different for AIS vs GrIS), -* time recording dependent of the experiments. +1. **Naming** — variable name, region field, ISM member id (`mNNN`), ESM name (CMIP6/CMIP7 registry), forcing member id (`fNNN`), set counter (`[C|E|P]NNN`), and year range (`YYYY-YYYY` matching the actual time axis). +2. **Numerical** — units match the data request; all values lie within the allowed min/max range for the relevant region; array is not entirely fill values. +3. **Spatial** *(xyt variables only)* — grid corners lie within the expected AIS or GrIS extents; resolution is one of the allowed values; x and y cell size are equal. +4. **Time** — time dimension is present, unlimited, and monotonically increasing; annual cadence; experiment end date and duration match `experiments_ismip7.csv`. +5. **Attributes** — required global and coordinate attributes are present and have correct values; `standard_name` matches data request; `_FillValue` equals the NetCDF4 default for the variable's dtype; variable and time are float32; `scale_factor` and `add_offset` are not allowed. -The compliance criteria of output variables and experiments are defined in a separate csv files. +Compliance criteria are defined in `conventions/ISMIP7_variable_request.xlsx` (variable metadata) and `experiments_ismip7.csv` (valid experiment date ranges). -=> For ISMIP7 simulations, the criteria are following the conventions defined on the [ISMIP7 webpage](https://www.ismip.org/). The associated csv file is [ismip7_criteria.csv](https://github.com/ismip/ISM_SimulationChecker/blob/main/ismip7_criteria.csv) +--- -************************************************* +## Setup -### Python and dependencies - -The code has been developed with python 3.9 and the following modules: - -* os -* xarray -* cftime -* numpy -* pandas -* datetime -* tqdm +```bash +conda env create -f isschecker_env.yml +conda activate isschecker +``` -=> Conda users can install the **isscheck** environnment with the YML file [isschecker_env.yml](https://github.com/ismip/ISM_SimulationChecker/blob/main/isschecker_env.yml). -`> conda env create -f isschecker_env.yml` +Dependencies: Python 3.9, `numpy`, `pandas`, `xarray`, `cftime`, `netCDF4`, `tqdm`. +--- -************************************************* +## Running the checker -### How to launch a compliance check +The script must be run from the repository root. It writes `compliance_checker_log.txt` into the `--source-path` directory. -1. Conda users: activate the isschecker environment: `> conda activate isschecker`. +```bash +# Check x,y,t (3D spatial) variables +python compliance_checker.py --source-path ./Models/GrIS/ISMIP7/SYNTH1/CORE --variable-list ismip7_xyt -2. Run the checker with the path to your CORE directory and an experiment set: - ``` - python compliance_checker.py --source-path ./Models/GrIS/ISMIP7/SYNTH1/CORE --experiment-set ismip7_xyt - ``` - Use `--experiment-set ismip7_scalars` for scalar-only variables, or `ismip7` for both. +# Check scalar (time-only) variables +python compliance_checker.py --source-path ./Models/AIS/ISMIP7/SYNTH1/CORE --variable-list ismip7_scalars -3. The script creates a `compliance_checker_log.txt` file in the source path reporting all errors and warnings. +# Check both +python compliance_checker.py --source-path ./Models/GrIS/ISMIP7/SYNTH1/CORE --variable-list ismip7 +``` +| Option | Default | Description | +|--------|---------|-------------| +| `--source-path` | `./Models/GrIS/ISMIP7/SYNTH1/CORE` | Directory containing `.nc` files to check | +| `--variable-list` | `ismip7_scalars` | `ismip7_xyt`, `ismip7_scalars`, or `ismip7` (both) | -************************************************* +--- -### Generate synthetic test files +## Generating synthetic test files `test/generate_test_files.py` creates ISMIP7-style NetCDF test files with synthetic data. See [test/README.md](test/README.md) for full options and examples. -Quick start: ```bash conda activate isschecker + +# Generate 286-year GrIS ctrl xyt variables python test/generate_test_files.py --grid GrIS_16000m --scenario ctrl --xyt --nyears 286 --start-year 2015 + +# Generate 286-year AIS ctrl scalar variables +python test/generate_test_files.py --grid AIS_16000m --scenario ctrl --scalars --nyears 286 --start-year 2015 + +# List available grids +python test/generate_test_files.py --list-grids ``` diff --git a/compliance_checker.py b/compliance_checker.py index 889bdd0..7df1d34 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -5,6 +5,11 @@ # 1. Naming (_check_naming) # - Variable name matches the expected ISMIP7 name from the data request. # - Region field in filename matches the region inferred from the grid (AIS/GrIS). +# - ISM member id (field 4) matches format mNNN (e.g. m001). +# - ESM name (field 5) is a recognised CMIP6/CMIP7 model name. +# - Forcing member id (field 6) matches format fNNN (e.g. f001). +# - Set counter (field 8) matches format [C|E|P]NNN (e.g. C001, E041, P132). +# - Year range (field 9) matches format YYYY-YYYY; start <= end; both match the actual time axis. # # 2. Numerical (_check_numerical) # - Variable units match the data request. @@ -62,14 +67,67 @@ TIME_STEP_MAX_DAYS = 366 # ISMIP7 CORE file naming convention: -# {var}_{region}_{project}_{submission}_{modelid}_{forcing}_{forcingid}_{experiment}_{configid}_{startyear}-{endyear}.nc +# {var}_{region}_{group}_{model}_{modelid}_{ESM}_{forcingid}_{experiment}_{configid}_{startyear}-{endyear}.nc ISMIP7_FILENAME_PARTS = 10 ISMIP7_FILENAME_VAR_IDX = 0 ISMIP7_FILENAME_REGION_IDX = 1 ISMIP7_FILENAME_ISM_MEMBER_IDX = 4 +ISMIP7_FILENAME_ESM_IDX = 5 ISMIP7_FILENAME_FORCING_MEMBER_IDX = 6 -ISMIP7_FILENAME_SET_COUNTER_IDX = 8 ISMIP7_FILENAME_EXPERIMENT_IDX = 7 +ISMIP7_FILENAME_SET_COUNTER_IDX = 8 +ISMIP7_FILENAME_YEAR_RANGE_IDX = 9 + +# Known CMIP6 and CMIP7 model names valid as ESM forcing identifiers (field 5). +VALID_ESM_NAMES: set[str] = { + # CMIP6 + "ACCESS-CM2", "ACCESS-ESM1-5", + "AWI-CM-1-1-MR", "AWI-ESM-1-1-LR", + "BCC-CSM2-MR", "BCC-ESM1", + "CAMS-CSM1-0", + "CAS-ESM2-0", + "CESM2", "CESM2-FV2", "CESM2-WACCM", "CESM2-WACCM-FV2", + "CIESM", + "CMCC-CM2-HR4", "CMCC-CM2-SR5", "CMCC-ESM2", + "CNRM-CM6-1", "CNRM-CM6-1-HR", "CNRM-ESM2-1", + "CanESM5", "CanESM5-1", "CanESM5-CanOE", + "E3SM-1-0", "E3SM-1-1", "E3SM-1-1-ECA", "E3SM-2-0", + "EC-Earth3", "EC-Earth3-AerChem", "EC-Earth3-CC", "EC-Earth3-Veg", "EC-Earth3-Veg-LR", + "FGOALS-f3-L", "FGOALS-g3", + "FIO-ESM-2-0", + "GFDL-CM4", "GFDL-ESM4", + "GISS-E2-1-G", "GISS-E2-1-G-CC", "GISS-E2-1-H", "GISS-E2-2-G", "GISS-E2-2-H", + "HadGEM3-GC31-LL", "HadGEM3-GC31-MM", + "IITM-ESM", + "INM-CM4-8", "INM-CM5-0", + "IPSL-CM5A2-INCA", "IPSL-CM6A-LR", "IPSL-CM6A-LR-INCA", + "KACE-1-0-G", + "KIOST-ESM", + "MCM-UA-1-0", + "MIROC-ES2H", "MIROC-ES2L", "MIROC6", + "MPI-ESM-1-2-HAM", "MPI-ESM1-2-HR", "MPI-ESM1-2-LR", + "MRI-ESM2-0", + "NESM3", + "NorCPM1", "NorESM2-LM", "NorESM2-MM", + "SAM0-UNICON", + "TaiESM1", + "UKESM1-0-LL", "UKESM1-1-LL", + # CMIP7 (extend as models are registered) + "ACCESS-ESM2-0", + "CanESM6", + "CESM3", + "CNRM-CM7", "CNRM-ESM2-2", + "EC-Earth4", + "GFDL-ESM5", + "GISS-E3", + "HadGEM4-GC51-LL", + "IPSL-CM7A-LR", + "MIROC7", + "MPI-ESM2-0", + "MRI-ESM3-0", + "NorESM3-LM", "NorESM3-MM", + "UKESM2-0-LL", +} def main() -> None: @@ -102,9 +160,7 @@ def _get_commit_number() -> str: commit_num, _error = process.communicate() return commit_num.decode("UTF-8") except Exception: - print( - "Commit number associated with this code. Is there a .git in this directory ?" - ) + print("Could not retrieve git commit number. Is there a .git directory here?") return "No commit number identified." @@ -121,7 +177,7 @@ def _parse_args() -> argparse.Namespace: "--variable-list", choices=VARIABLE_LIST_CHOICES, default=DEFAULT_VARIABLE_LIST, - help="Variable list to apply: ismip7 or ismip7_scalars.", + help="Variable list to apply: ismip7_xyt, ismip7_scalars, or ismip7 (both).", ) return parser.parse_args() @@ -195,6 +251,10 @@ def _run_compliance_checker( experiments, criteria_file, ) -> None: + if not os.path.isdir(source_path): + print(f"ERROR: Directory not found: '{source_path}'. Please check your --source-path argument.") + return + try: with open(os.path.join(source_path, "compliance_checker_log.txt"), "w") as f: print("-> Checking " + source_path) @@ -203,6 +263,11 @@ def _run_compliance_checker( _write_log_header(f, commit_num, source_path, today, criteria_file) experiment_groups = _group_files_by_experiment(source_path) + if not experiment_groups: + msg = f"No .nc files found in directory '{source_path}'. Please check your --source-path argument." + print(f"ERROR: {msg}") + f.write(f"ERROR: {msg}\n") + return summary = _process_experiments( log_file=f, @@ -230,7 +295,7 @@ def _run_compliance_checker( except TypeError as err: print( - "Something went wrong with your dataset. Please, check your file(s) carrefully. Error:", + "Something went wrong with your dataset. Please, check your file(s) carefully. Error:", err, ) @@ -462,8 +527,6 @@ def _process_single_file( } file_variables = list(ds.data_vars) - # ISMIP7 CORE naming convention: - # var_region_project_submission_modelid_forcing_forcingid_experiment_configid_startyear-endyear.nc if len(file_name_split) != ISMIP7_FILENAME_PARTS: log_file.write( " - ERROR: the file name " @@ -557,6 +620,7 @@ def _process_single_file( def _check_naming( log_file, + ds, file_name: str, region: str, dim: set, @@ -565,12 +629,14 @@ def _check_naming( ) -> int: errors = 0 + log_file.write("NAMING Tests \n") + if not isscalar and not {"x", "y"}.issubset(dim): log_file.write( - "- ERROR: Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing.\n" + " - ERROR: Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing.\n" ) log_file.write( - " Only " + str(list(dim)) + " has been detected.\n" + " Only " + str(list(dim)) + " has been detected.\n" ) report_naming_issues.append( "Compliance check ignored: x or y in the mandatory dimensions (x,y,t) is missing in " @@ -580,7 +646,7 @@ def _check_naming( if region not in ["AIS", "GrIS"]: log_file.write( - "- ERROR: Region " + " - ERROR: Region " + region + " not recognized. It should be AIS or GrIS. The compliance check has been interrupted for this variable.\n" ) @@ -596,23 +662,63 @@ def _check_naming( ism_member = parts[ISMIP7_FILENAME_ISM_MEMBER_IDX] if not re.fullmatch(r"m\d{3}", ism_member): log_file.write( - f"- ERROR: ISM member id '{ism_member}' (field {ISMIP7_FILENAME_ISM_MEMBER_IDX}) does not match expected format mNNN (e.g. m001).\n" + f" - ERROR: ISM member id '{ism_member}' (field {ISMIP7_FILENAME_ISM_MEMBER_IDX}) does not match expected format mNNN (e.g. m001).\n" + ) + errors += 1 + + esm_name = parts[ISMIP7_FILENAME_ESM_IDX] + if esm_name not in VALID_ESM_NAMES: + log_file.write( + f" - ERROR: ESM name '{esm_name}' (field {ISMIP7_FILENAME_ESM_IDX}) is not a recognised CMIP6/CMIP7 model name.\n" ) errors += 1 forcing_member = parts[ISMIP7_FILENAME_FORCING_MEMBER_IDX] if not re.fullmatch(r"f\d{3}", forcing_member): log_file.write( - f"- ERROR: forcing member id '{forcing_member}' (field {ISMIP7_FILENAME_FORCING_MEMBER_IDX}) does not match expected format fNNN (e.g. f001).\n" + f" - ERROR: forcing member id '{forcing_member}' (field {ISMIP7_FILENAME_FORCING_MEMBER_IDX}) does not match expected format fNNN (e.g. f001).\n" ) errors += 1 set_counter = parts[ISMIP7_FILENAME_SET_COUNTER_IDX] if not re.fullmatch(r"[CEP]\d{3}", set_counter): log_file.write( - f"- ERROR: set counter '{set_counter}' (field {ISMIP7_FILENAME_SET_COUNTER_IDX}) does not match expected format [C|E|P]NNN (e.g. C001, E041, P132).\n" + f" - ERROR: set counter '{set_counter}' (field {ISMIP7_FILENAME_SET_COUNTER_IDX}) does not match expected format [C|E|P]NNN (e.g. C001, E041, P132).\n" + ) + errors += 1 + + year_range_field = parts[ISMIP7_FILENAME_YEAR_RANGE_IDX].removesuffix(".nc") + year_range_match = re.fullmatch(r"(\d{4})-(\d{4})", year_range_field) + if not year_range_match: + log_file.write( + f" - ERROR: year range '{year_range_field}' (field {ISMIP7_FILENAME_YEAR_RANGE_IDX}) does not match expected format YYYY-YYYY (e.g. 2015-2300).\n" ) errors += 1 + else: + fn_start_year = int(year_range_match.group(1)) + fn_end_year = int(year_range_match.group(2)) + if fn_start_year > fn_end_year: + log_file.write( + f" - ERROR: year range '{year_range_field}': start year {fn_start_year} is after end year {fn_end_year}.\n" + ) + errors += 1 + elif "time" in ds.coords: + actual_start = min(ds["time"]).values.astype("datetime64[D]").item().year + actual_end = max(ds["time"]).values.astype("datetime64[D]").item().year + if fn_start_year != actual_start: + log_file.write( + f" - ERROR: filename start year {fn_start_year} does not match first time step year {actual_start}.\n" + ) + errors += 1 + if fn_end_year != actual_end: + log_file.write( + f" - ERROR: filename end year {fn_end_year} does not match last time step year {actual_end}.\n" + ) + errors += 1 + if fn_start_year == actual_start and fn_end_year == actual_end: + log_file.write( + f" - Filename year range {fn_start_year}-{fn_end_year} matches time axis: OK\n" + ) return errors @@ -711,7 +817,7 @@ def _check_spatial( log_file.write(" - Grid: Upper right corner is well defined.\n") else: log_file.write( - " - ERROR: Upper rigth corner of the grid [" + " - ERROR: Upper right corner of the grid [" + str(Xtopright) + "," + str(Ytopright) + "] is not correctly defined. [" + str(grid_extent[2]) + "," + str(grid_extent[3]) @@ -754,7 +860,7 @@ def _check_time( log_file.write("TIME Tests \n") if not ({"t"}.issubset(dim) or {"time"}.issubset(dim)): log_file.write( - " - ERROR: The time dimensions is missing. Time Tests have been ignored.\n" + " - ERROR: The time dimension is missing. Time Tests have been ignored.\n" ) return errors + 1 @@ -784,7 +890,7 @@ def _check_time( if not _strictly_increasing(ds.coords["time"]): log_file.write( - " - ERROR: the time serie is not monotonous. Time segments have probably been concatenate in a wrong order.\n" + " - ERROR: the time series is not monotonically increasing. Time segments may have been concatenated in the wrong order.\n" ) return errors + 1 @@ -947,6 +1053,8 @@ def _check_attributes( ) -> int: errors = 0 + log_file.write("ATTRIBUTE Tests \n") + # Sub-test 1: global attributes required_global = ["group", "model", "contact_name", "contact_email"] global_errors = 0 @@ -1136,7 +1244,7 @@ def _run_variable_checks( index = ismip_var.index(considered_variable) isscalar = ismip_meta[index]["dim"] == "t" - n_err = _check_naming(log_file, file_name, region, dim, isscalar, report_naming_issues) + n_err = _check_naming(log_file, ds, file_name, region, dim, isscalar, report_naming_issues) var_naming_errors += n_err if n_err > 0: return var_naming_errors, var_num_errors, var_spatial_errors, var_time_errors, var_attr_errors diff --git a/experiments_ismip7.csv b/experiments_ismip7.csv index 6827a92..8b55547 100644 --- a/experiments_ismip7.csv +++ b/experiments_ismip7.csv @@ -1,4 +1,6 @@ experiment;startinf;startsup;endinf;endsup;duration historical;1850-01-01;2013-12-31;2014-06-30;2015-01-01;-1 +ssp370;2015-01-01;2016-01-02;2100-06-30;2101-01-01;86 +ssp126;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 +ssp585;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 ctrl;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 -ssp370;2015-01-01;2016-01-02;2300-06-30;2301-01-01;286 From 71dde23e32753674141a219b7c99605e36e89b30 Mon Sep 17 00:00:00 2001 From: hgoelzer Date: Thu, 30 Apr 2026 07:36:27 +0200 Subject: [PATCH 11/11] Update dependencies to latest versions --- README.md | 2 +- compliance_checker.py | 3 ++- isschecker_env.yml | 21 +++++++++++---------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 7fe6f31..3527b21 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ conda env create -f isschecker_env.yml conda activate isschecker ``` -Dependencies: Python 3.9, `numpy`, `pandas`, `xarray`, `cftime`, `netCDF4`, `tqdm`. +Dependencies: Python 3.14, `numpy` 2.4, `pandas` 3.0, `openpyxl` 3.1, `xarray` 2026.4, `cftime` 1.6, `netCDF4` 1.7, `tqdm` 4.67. --- diff --git a/compliance_checker.py b/compliance_checker.py index 7df1d34..64ec357 100755 --- a/compliance_checker.py +++ b/compliance_checker.py @@ -514,7 +514,8 @@ def _process_single_file( region = file_name_split[ISMIP7_FILENAME_REGION_IDX] try: - ds = xr.open_dataset(os.path.join(source_path, file), use_cftime=True) + ds = xr.open_dataset(os.path.join(source_path, file), + decode_times=xr.coders.CFDatetimeCoder(use_cftime=True)) except (ValueError, TypeError) as e: log_file.write(" - ERROR: Cannot open " + file_name + ": " + str(e) + "\n") var_naming_errors += 1 diff --git a/isschecker_env.yml b/isschecker_env.yml index 3b3457e..47c4900 100644 --- a/isschecker_env.yml +++ b/isschecker_env.yml @@ -3,15 +3,16 @@ channels: - conda-forge - defaults dependencies: - - python=3.9 - - pip=22.1.2 + - python=3.14 + - pip=26.0.1 -# Core scientific python - - numpy=1.23.0 - - pandas=1.4.3 - - tqdm=4.64.0 +# Core scientific python + - numpy=2.4.3 + - pandas=3.0.2 + - openpyxl=3.1.5 + - tqdm=4.67.3 -# Spatial packages - - xarray=2022.3.0 - - cftime=1.5.1.1 - - netcdf4=1.5.7 +# Spatial packages + - xarray=2026.4.0 + - cftime=1.6.5 + - netcdf4=1.7.4

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