From a3df32231f98ef82ab8127aaf4b86c32e9857ec3 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 8 Apr 2022 13:20:38 +0300 Subject: [PATCH 001/196] reproduce FLINT.Cloud apis --- .vscode/settings.json | 3 + GCBM/config/gcbm_config.cfg | 7 + GCBM/config/internal_variables.json | 34 + GCBM/config/localdomain.json | 31 + GCBM/config/logging.conf | 17 + GCBM/config/modules_cbm.json | 65 ++ GCBM/config/modules_output.json | 816 ++++++++++++++++++ GCBM/config/pools_cbm.json | 34 + GCBM/config/provider_config.json | 75 ++ GCBM/config/spinup.json | 56 ++ GCBM/config/variables.json | 257 ++++++ GCBM/input_database/gcbm_input.db | Bin 0 -> 1482752 bytes GCBM/layers/tiled/Classifier1_moja.json | 21 + GCBM/layers/tiled/Classifier1_moja.tiff | Bin 0 -> 26867 bytes GCBM/layers/tiled/Classifier2_moja.json | 17 + GCBM/layers/tiled/Classifier2_moja.tiff | Bin 0 -> 26750 bytes GCBM/layers/tiled/bounding_box.tiff | Bin 0 -> 1390 bytes GCBM/layers/tiled/disturbances_2011_moja.json | 18 + GCBM/layers/tiled/disturbances_2011_moja.tiff | Bin 0 -> 26412 bytes GCBM/layers/tiled/disturbances_2012_moja.json | 18 + GCBM/layers/tiled/disturbances_2012_moja.tiff | Bin 0 -> 26429 bytes GCBM/layers/tiled/disturbances_2013_moja.json | 23 + GCBM/layers/tiled/disturbances_2013_moja.tiff | Bin 0 -> 26414 bytes GCBM/layers/tiled/disturbances_2014_moja.json | 18 + GCBM/layers/tiled/disturbances_2014_moja.tiff | Bin 0 -> 26302 bytes GCBM/layers/tiled/disturbances_2015_moja.json | 18 + GCBM/layers/tiled/disturbances_2015_moja.tiff | Bin 0 -> 26331 bytes GCBM/layers/tiled/disturbances_2016_moja.json | 18 + GCBM/layers/tiled/disturbances_2016_moja.tiff | Bin 0 -> 26267 bytes GCBM/layers/tiled/disturbances_2018_moja.json | 18 + GCBM/layers/tiled/disturbances_2018_moja.tiff | Bin 0 -> 26282 bytes GCBM/layers/tiled/initial_age_moja.json | 11 + GCBM/layers/tiled/initial_age_moja.tiff | Bin 0 -> 43875 bytes .../tiled/mean_annual_temperature_moja.json | 11 + .../tiled/mean_annual_temperature_moja.tiff | Bin 0 -> 77865 bytes GCBM/layers/tiled/study_area.json | 85 ++ .../local_run.postman_collection | 70 +- 37 files changed, 1706 insertions(+), 35 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 GCBM/config/gcbm_config.cfg create mode 100644 GCBM/config/internal_variables.json create mode 100644 GCBM/config/localdomain.json create mode 100644 GCBM/config/logging.conf create mode 100644 GCBM/config/modules_cbm.json create mode 100644 GCBM/config/modules_output.json create mode 100644 GCBM/config/pools_cbm.json create mode 100644 GCBM/config/provider_config.json create mode 100644 GCBM/config/spinup.json create mode 100644 GCBM/config/variables.json create mode 100644 GCBM/input_database/gcbm_input.db create mode 100644 GCBM/layers/tiled/Classifier1_moja.json create mode 100644 GCBM/layers/tiled/Classifier1_moja.tiff create mode 100644 GCBM/layers/tiled/Classifier2_moja.json create mode 100644 GCBM/layers/tiled/Classifier2_moja.tiff create mode 100644 GCBM/layers/tiled/bounding_box.tiff create mode 100644 GCBM/layers/tiled/disturbances_2011_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2011_moja.tiff create mode 100644 GCBM/layers/tiled/disturbances_2012_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2012_moja.tiff create mode 100644 GCBM/layers/tiled/disturbances_2013_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2013_moja.tiff create mode 100644 GCBM/layers/tiled/disturbances_2014_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2014_moja.tiff create mode 100644 GCBM/layers/tiled/disturbances_2015_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2015_moja.tiff create mode 100644 GCBM/layers/tiled/disturbances_2016_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2016_moja.tiff create mode 100644 GCBM/layers/tiled/disturbances_2018_moja.json create mode 100644 GCBM/layers/tiled/disturbances_2018_moja.tiff create mode 100644 GCBM/layers/tiled/initial_age_moja.json create mode 100644 GCBM/layers/tiled/initial_age_moja.tiff create mode 100644 GCBM/layers/tiled/mean_annual_temperature_moja.json create mode 100644 GCBM/layers/tiled/mean_annual_temperature_moja.tiff create mode 100644 GCBM/layers/tiled/study_area.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..e5a288a9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "restructuredtext.syntaxHighlighting.disabled": true +} \ No newline at end of file diff --git a/GCBM/config/gcbm_config.cfg b/GCBM/config/gcbm_config.cfg new file mode 100644 index 00000000..e6640ac9 --- /dev/null +++ b/GCBM/config/gcbm_config.cfg @@ -0,0 +1,7 @@ +config=localdomain.json +config=pools_cbm.json +config=modules_cbm.json +config=modules_output.json +config=spinup.json +config=variables.json +config=internal_variables.json diff --git a/GCBM/config/internal_variables.json b/GCBM/config/internal_variables.json new file mode 100644 index 00000000..d9f71537 --- /dev/null +++ b/GCBM/config/internal_variables.json @@ -0,0 +1,34 @@ +{ + "Variables": { + "spatialLocationInfo": { + "flintdata": { + "type": "SpatialLocationInfo", + "library": "internal.flint", + "settings": {} + } + }, + "simulateLandUnit": true, + "is_decaying": true, + "spinup_moss_only": false, + "run_peatland": false, + "peatlandId": -1, + "is_forest": true, + "run_moss": false, + "run_delay": false, + "landUnitBuildSuccess": true, + "regen_delay": 0, + "age": 0, + "tileIndex": 0, + "blockIndex": 0, + "cellIndex": 0, + "LandUnitId": -1, + "landUnitArea": 0, + "classifier_set": {}, + "localDomainId": 0, + "LocalDomainId": 1, + "age_class": 0, + "historic_land_class": "FL", + "current_land_class": "FL", + "unfccc_land_class": "UNFCCC_FL_R_FL" + } +} \ No newline at end of file diff --git a/GCBM/config/localdomain.json b/GCBM/config/localdomain.json new file mode 100644 index 00000000..5bb04f33 --- /dev/null +++ b/GCBM/config/localdomain.json @@ -0,0 +1,31 @@ +{ + "Libraries": { + "moja.modules.cbm": "external", + "moja.modules.gdal": "external" + }, + "LocalDomain": { + "start_date": "2010/01/01", + "end_date": "2021/01/01", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "simulateLandUnit": "simulateLandUnit", + "sequencer_library": "moja.modules.cbm", + "sequencer": "CBMSequencer", + "timing": "annual", + "type": "spatial_tiled", + "landscape": { + "provider": "RasterTiled", + "num_threads": 4, + "tiles": [ + { + "x": -106, + "y": 55, + "index": 12674 + } + ], + "x_pixels": 4000, + "y_pixels": 4000, + "tile_size_x": 1.0, + "tile_size_y": 1.0 + } + } +} \ No newline at end of file diff --git a/GCBM/config/logging.conf b/GCBM/config/logging.conf new file mode 100644 index 00000000..a2c0b8e0 --- /dev/null +++ b/GCBM/config/logging.conf @@ -0,0 +1,17 @@ +[Core] +DisableLogging=false + +[Sinks.console] +Destination=Console +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= info" + +[Sinks.file] +Destination=TextFile +FileName="..\\output\\logs\\Moja_Debug.log" +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= debug" diff --git a/GCBM/config/modules_cbm.json b/GCBM/config/modules_cbm.json new file mode 100644 index 00000000..5be43b01 --- /dev/null +++ b/GCBM/config/modules_cbm.json @@ -0,0 +1,65 @@ +{ + "Modules": { + "CBMBuildLandUnitModule": { + "order": 1, + "library": "moja.modules.cbm" + }, + "CBMSequencer": { + "order": 2, + "library": "moja.modules.cbm" + }, + "CBMDisturbanceListener": { + "enabled": true, + "order": 3, + "library": "moja.modules.cbm", + "settings": { + "vars": [ + "disturbances_2012", + "disturbances_2011", + "disturbances_2015", + "disturbances_2016", + "disturbances_2018", + "disturbances_2014", + "disturbances_2013" + ] + } + }, + "CBMDisturbanceEventModule": { + "enabled": true, + "order": 4, + "library": "moja.modules.cbm" + }, + "CBMTransitionRulesModule": { + "enabled": true, + "order": 5, + "library": "moja.modules.cbm" + }, + "CBMLandClassTransitionModule": { + "enabled": true, + "order": 6, + "library": "moja.modules.cbm" + }, + "CBMGrowthModule": { + "enabled": true, + "order": 7, + "library": "moja.modules.cbm" + }, + "CBMDecayModule": { + "enabled": true, + "order": 8, + "library": "moja.modules.cbm", + "settings": { + "extra_decay_removals": false + } + }, + "CBMAgeIndicators": { + "enabled": true, + "order": 9, + "library": "moja.modules.cbm" + }, + "TransactionManagerAfterSubmitModule": { + "order": 10, + "library": "internal.flint" + } + } +} \ No newline at end of file diff --git a/GCBM/config/modules_output.json b/GCBM/config/modules_output.json new file mode 100644 index 00000000..717f648b --- /dev/null +++ b/GCBM/config/modules_output.json @@ -0,0 +1,816 @@ +{ + "Modules": { + "WriteVariableGeotiff": { + "enabled": true, + "order": 11, + "library": "moja.modules.gdal", + "settings": { + "items": [ + { + "data_name": "Age", + "enabled": true, + "variable_data_type": "Int16", + "on_notification": "OutputStep", + "variable_name": "age" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther" + ], + "data_name": "AG_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Total_Ecosystem_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "data_name": "Total_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Dead_Organic_Matter_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "BelowGroundVeryFastSoil", + "BelowGroundSlowSoil" + ], + "data_name": "Soil_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + "data_name": "NPP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ], + "flux_source": "annual_process" + } + ], + "data_name": "NEP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "flux_source": "annual_process", + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "Decomp_Releases", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "NBP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + } + ], + "data_name": "Delta_Total_Ecosystem", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + } + ], + "data_name": "Delta_Total_Biomass", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO", + "Products" + ] + } + ], + "data_name": "Delta_Total_DOM", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ] + }, + "data_name": "Total_Biomass_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_DOM_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO2_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CH4" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CH4_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ] + } + ], + "data_name": "Ecosystem_Removals", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Bio_To_DOM_From_Disturbances", + "enabled": true, + "on_notification": "OutputStep" + } + ], + "output_path": "..\\output" + } + }, + "CBMAggregatorLandUnitData": { + "enabled": true, + "order": 12, + "library": "moja.modules.cbm", + "settings": { + "reporting_classifier_set": "reporting_classifiers" + } + }, + "CBMAggregatorSQLiteWriter": { + "enabled": true, + "order": 13, + "library": "moja.modules.cbm", + "settings": { + "databasename": "..\\output\\gcbm_output.db" + } + } + } +} \ No newline at end of file diff --git a/GCBM/config/pools_cbm.json b/GCBM/config/pools_cbm.json new file mode 100644 index 00000000..35979d38 --- /dev/null +++ b/GCBM/config/pools_cbm.json @@ -0,0 +1,34 @@ +{ + "Pools": { + "AboveGroundFastSoil": 0.0, + "AboveGroundSlowSoil": 0.0, + "AboveGroundVeryFastSoil": 0.0, + "Atmosphere": 0.0, + "BelowGroundFastSoil": 0.0, + "BelowGroundSlowSoil": 0.0, + "BelowGroundVeryFastSoil": 0.0, + "BlackCarbon": 0.0, + "CH4": 0.0, + "CO": 0.0, + "CO2": 0.0, + "DissolvedOrganicCarbon": 0.0, + "HardwoodBranchSnag": 0.0, + "HardwoodCoarseRoots": 0.0, + "HardwoodFineRoots": 0.0, + "HardwoodFoliage": 0.0, + "HardwoodMerch": 0.0, + "HardwoodOther": 0.0, + "HardwoodStemSnag": 0.0, + "MediumSoil": 0.0, + "NO2": 0.0, + "Peat": 0.0, + "Products": 0.0, + "SoftwoodBranchSnag": 0.0, + "SoftwoodCoarseRoots": 0.0, + "SoftwoodFineRoots": 0.0, + "SoftwoodFoliage": 0.0, + "SoftwoodMerch": 0.0, + "SoftwoodOther": 0.0, + "SoftwoodStemSnag": 0.0 + } +} \ No newline at end of file diff --git a/GCBM/config/provider_config.json b/GCBM/config/provider_config.json new file mode 100644 index 00000000..434faca4 --- /dev/null +++ b/GCBM/config/provider_config.json @@ -0,0 +1,75 @@ +{ + "Providers": { + "SQLite": { + "path": "../input_database/gcbm_input.db", + "type": "SQLite" + }, + "RasterTiled": { + "layers": [ + { + "name": "disturbances_2012", + "layer_path": "../layers/tiled/disturbances_2012_moja.tiff", + "layer_prefix": "disturbances_2012_moja" + }, + { + "name": "disturbances_2011", + "layer_path": "../layers/tiled/disturbances_2011_moja.tiff", + "layer_prefix": "disturbances_2011_moja" + }, + { + "name": "disturbances_2015", + "layer_path": "../layers/tiled/disturbances_2015_moja.tiff", + "layer_prefix": "disturbances_2015_moja" + }, + { + "name": "disturbances_2014", + "layer_path": "../layers/tiled/disturbances_2014_moja.tiff", + "layer_prefix": "disturbances_2014_moja" + }, + { + "name": "disturbances_2018", + "layer_path": "../layers/tiled/disturbances_2018_moja.tiff", + "layer_prefix": "disturbances_2018_moja" + }, + { + "name": "disturbances_2016", + "layer_path": "../layers/tiled/disturbances_2016_moja.tiff", + "layer_prefix": "disturbances_2016_moja" + }, + { + "name": "Classifier2", + "layer_path": "../layers/tiled/Classifier2_moja.tiff", + "layer_prefix": "Classifier2_moja" + }, + { + "name": "initial_age", + "layer_path": "../layers/tiled/initial_age_moja.tiff", + "layer_prefix": "initial_age_moja" + }, + { + "name": "mean_annual_temperature", + "layer_path": "../layers/tiled/mean_annual_temperature_moja.tiff", + "layer_prefix": "mean_annual_temperature_moja" + }, + { + "name": "Classifier1", + "layer_path": "../layers/tiled/Classifier1_moja.tiff", + "layer_prefix": "Classifier1_moja" + }, + { + "name": "disturbances_2013", + "layer_path": "../layers/tiled/disturbances_2013_moja.tiff", + "layer_prefix": "disturbances_2013_moja" + } + ], + "blockLonSize": 0.1, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025, + "blockLatSize": 0.1, + "type": "RasterTiledGDAL", + "library": "moja.modules.gdal" + } + } +} \ No newline at end of file diff --git a/GCBM/config/spinup.json b/GCBM/config/spinup.json new file mode 100644 index 00000000..1365b141 --- /dev/null +++ b/GCBM/config/spinup.json @@ -0,0 +1,56 @@ +{ + "Spinup": { + "enabled": true, + "sequencer_library": "moja.modules.cbm", + "simulateLandUnit": "simulateLandUnit", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "sequencer": "CBMSpinupSequencer" + }, + "SpinupVariables": { + "delay": 0, + "minimum_rotation": 10, + "run_delay": false + }, + "Variables": { + "spinup_parameters": { + "transform": { + "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + } + }, + "SpinupModules": { + "CBMSpinupSequencer": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 1 + }, + "CBMBuildLandUnitModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 2 + }, + "CBMGrowthModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 3 + }, + "CBMDecayModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 4 + }, + "TransactionManagerAfterSubmitModule": { + "create_new": true, + "library": "internal.flint", + "order": 5 + }, + "CBMSpinupDisturbanceModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 6 + } + } +} \ No newline at end of file diff --git a/GCBM/config/variables.json b/GCBM/config/variables.json new file mode 100644 index 00000000..f2d8bc2f --- /dev/null +++ b/GCBM/config/variables.json @@ -0,0 +1,257 @@ +{ + "Variables": { + "enable_peatland": false, + "enable_moss": false, + "admin_boundary": "British Columbia", + "eco_boundary": "Taiga Plains", + "initial_age": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "initial_age" + } + }, + "initial_historic_land_class": "FL", + "initial_current_land_class": "FL", + "age_class_range": 20, + "age_maximum": 300, + "slow_ag_to_bg_mixing_rate": 0.006, + "disturbance_matrices": { + "transform": { + "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "softwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "reporting_classifiers": { + "transform": { + "allow_nulls": true, + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "classifier_set" + ] + } + }, + "land_class_transitions": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rules": { + "transform": { + "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_matches": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "TransitionRuleTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "spatial_unit_id": { + "transform": { + "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "hardwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "turnover_rates": { + "transform": { + "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbance_type_codes": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_classifiers": { + "transform": { + "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "initial_classifier_set": { + "transform": { + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "Classifier2", + "Classifier1" + ] + } + }, + "disturbance_matrix_associations": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "other_to_branch_snag_split": { + "transform": { + "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "growth_curve_id": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "GrowthCurveTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "volume_to_biomass_parameters": { + "transform": { + "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "spu": { + "transform": { + "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "land_class_data": { + "transform": { + "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "mean_annual_temperature": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "mean_annual_temperature" + } + }, + "decay_parameters": { + "transform": { + "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbances_2012": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2012" + } + }, + "disturbances_2011": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2011" + } + }, + "disturbances_2015": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2015" + } + }, + "disturbances_2014": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2014" + } + }, + "disturbances_2018": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2018" + } + }, + "disturbances_2016": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2016" + } + }, + "Classifier2": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier2" + } + }, + "Classifier1": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier1" + } + }, + "disturbances_2013": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2013" + } + } + } +} \ No newline at end of file diff --git a/GCBM/input_database/gcbm_input.db b/GCBM/input_database/gcbm_input.db new file mode 100644 index 0000000000000000000000000000000000000000..9fd320de52359b38fdc8d51fb452467448e812ab GIT binary patch literal 1482752 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

V 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 z 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%0AnPD5Y_Gt(nO=kXfU)AY{2ciafa{ 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 IKG#?NS0h(qm;e9( literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/Classifier1_moja.json b/GCBM/layers/tiled/Classifier1_moja.json new file mode 100644 index 00000000..f1b22ebc --- /dev/null +++ b/GCBM/layers/tiled/Classifier1_moja.json @@ -0,0 +1,21 @@ +{ + "layer_type": "GridLayer", + "layer_data": "Byte", + "nodata": 255, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "blockLatSize": 0.1, + "blockLonSize": 0.1, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025, + "attributes": { + "1": "TA", + "2": "BP", + "3": "BS", + "4": "JP", + "5": "WS", + "6": "WB", + "7": "BF", + "8": "GA" + } +} \ No newline at end of file diff --git a/GCBM/layers/tiled/Classifier1_moja.tiff b/GCBM/layers/tiled/Classifier1_moja.tiff new file mode 100644 index 0000000000000000000000000000000000000000..952609319617296ccb7dde60bb15f4782f275a36 GIT binary patch literal 26867 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 DQ8d`T literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/disturbances_2011_moja.json b/GCBM/layers/tiled/disturbances_2011_moja.json new file mode 100644 index 00000000..25a3c9bf --- /dev/null +++ b/GCBM/layers/tiled/disturbances_2011_moja.json @@ -0,0 +1,18 @@ +{ + "layer_type": "GridLayer", + "layer_data": "Byte", + "nodata": 255, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "blockLatSize": 0.1, + "blockLonSize": 0.1, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025, + "attributes": { + "1": { + "year": 2011, + "disturbance_type": "Wildfire", + "transition": 1 + } + } +} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2011_moja.tiff b/GCBM/layers/tiled/disturbances_2011_moja.tiff new file mode 100644 index 0000000000000000000000000000000000000000..f5541f141a19fc49e49a659aad4176d0161a71da GIT binary patch literal 26412 zcmeI%aZHqD90%~{fa$3>yAqS?)HAN2L_PJiQ&CPi0}_?w(o4=fg%ph%I;NzTT#4h_ zsIiGjc@=KA#7Pqt85S#?uwmk&M#l0Is>{)$g++A6f!*=@vhi+g?Opxj?spq}-sk&1 zcii3k-uJn^q@~RkN+E_Z@kDlMkyzB;7^0@1~7cidAA9 zvN~jEOCp69nGab_iAqEu)7?WGwIvb5?{#RjDJ4^DG&sb|o(K_zc?%XT!WLn{h~@Vq z^bYWO5Z>oOI*N(UgYZ5N`1ps%@pnYi>uiI%sWdKxtx$U}YNk=151U|24CQ&S z5k}ufc`j^#>ia3rf%Q=J0OfXA2bCJiZLkJLO{d%ntD%@dxdm3i0L++4`#sPP)3uaW z!akTfi*h&Yh2{q-uYf(!6iazI?1qUt%FCb+8Xuy(6m~(w!<4(A7wY3EFNPg3A)az4 zY=`lWQ0{Y1g|HQBXH#APTc9R^@_g6?W9Cqv2ODAZT*`A{160qWJO|c8m7a1t ztb@w=l-pnpj9Ngs6;?yBka7#Gf&rLep#2``hv|zbuY`Rtbur~`*bB{%QC zU{ng_R#**1D&-bf1p_c6jrMz>AErM+c_r+FscR^A!(M1kr@R98K+{^v%V9T6Tt|5s z^g-i#%1dDvG-Ocjf?lY9lJa8M0TVV*?u6|yK9h0>Y=b%r<%O^nYM-LK0JcEQM#}SH z6O7qJc^+(p(N@ZHVFOe@O?eKihpNq#+hHA4W>Ic~H89FXxfNDJv4wIAtbzfU@eJ+v zKtD|1N_i#hgQ<4P-LMy$w^3dJd!T7M<>jy&CT3G!27S<&LwPCef`(@)cR?@I@1VRG zcEG^tn_sQnu1^|~X8p@==jO)Y8O}APk(r9&3n1e~=t6@ccvV6%tU`n?MkvG$wL)22 z65K1s4Ub=souI5K3EgMXutK<=FL-0RXK(27Oz&B&D+}GfUQh(@E}Uhz&-|jC7~J|V zx83`XPyYQ5dd#a?FI?2CBTd~yCHs;FT(%U&Mq9_i@ybg_>^`gD&g-!+{+<2tp`FLNzK^^4$z}7*>j_2A zo$#JncBRuA*XJAhV*PKO`<(l)9zQq17FgiedZMX$-UlCjon{LxJ&^f!OLM2{?AfFB z{tbtA9ZT)reYnfNcp&@2^cCV{$DD!KnUzQW{CV)r_PGPewOjg6?LDZ`9=qmA*^~Fj zVDrgS=hya6+xgCoexqqmSK98QgU!3*PHzcDSCX&w%v<-?j&n;)dp_6IULN|Pv*=RR zhv&D}{&efFZ$Ddcd*gV2&d_W9Ne3M7CJoM7?+sjxO({C)%awBm_*+!*WLac@OVvA>5zb zpWL5v8dEx#`;+@KT(6_^+QDlFuN~6$K+cHQ4qiKW?FhgBKl8fD>n5+8a#l*|TwXVM z-Q;zX*G*|F$QyBoaEEY*aEHii4e4y|5bhA}5bh9ZE65vhhj52*hj53;YYpja?hx(} z?hx(}X)DMZaffh+aEEY*$ZHMhZ0->55bhA}5NRvO8*ztlhj52*hsbLU>1^&0?hx(} t?ht7!$QyBoaEEY*aEHii4e4y|5bhA}5bh9ZE65vhhj52*hx|_+@(&J%zUBY` literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/disturbances_2012_moja.json b/GCBM/layers/tiled/disturbances_2012_moja.json new file mode 100644 index 00000000..15500f70 --- /dev/null +++ b/GCBM/layers/tiled/disturbances_2012_moja.json @@ -0,0 +1,18 @@ +{ + "layer_type": "GridLayer", + "layer_data": "Byte", + "nodata": 255, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "blockLatSize": 0.1, + "blockLonSize": 0.1, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025, + "attributes": { + "1": { + "year": 2012, + "disturbance_type": "Wildfire", + "transition": 1 + } + } +} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2012_moja.tiff b/GCBM/layers/tiled/disturbances_2012_moja.tiff new file mode 100644 index 0000000000000000000000000000000000000000..8a6beaa1fe4bed4224fce808bd8b4bd0be940d56 GIT binary patch literal 26429 zcmeI%e@v8h90%~{fe;8TK)j6d0un+rN>oZPI8jc$j1+|s2!iM=h*+-iq6JYRbDEJk-pBE9mdNJJ$fn;{DUmIZ z$f6~(H8Zm54P7gd#fkPk!!N9Kr|r|s%&>0jjMq+Y-+k|R3eNNrq0)yI_8;&R<{u`)Id?NE8#F2Y2Urz@Piw^|_bLqx~I#5lVVq3j1OB{gfBOJ{UHi@*>y+ zLm!~r0L?JikMca&1p^{~) zx(86MgH6ySkn$AR2*pPzPl6553KJI6`Z_oUn{C_fAbVPq)fWpDsSET+5^_QUWclo!K381@+DMX(2khEZ;SW*Gc9<$16R20lS~ zF6@M=rIcsGcIX#Qc@{K5s9aBZCTxX18z|Sq7O2oto(`L#`!kg5U=wuNNO=lugyOT5C&312 zg$ePrz7CGT_~$6Eg%+sYM0ph)ftt;fSHNKyn?QLv9D>nXC_fAbVdPfI%isWvNTj?J z_QUWb%8Owi411pPBG>~%lPNbqGYsBFc^>S7fhm;d!cM5#PI)$LhkiRK&w?hXOr<;% zwn85r<$Blx6)#Yp4x6ES8s$3J1YKUFJOwsFF`e=x*Z{3CA%oV}!7&*B66Lkf0<|ww zUIj;>Mo)PK9EP#4P+ks);6%g7rTC1c>S<}zzx-Rc{p{3;!i}q^M~YK7KwJgKjRw(v zS3;ap6dX4rMBx{2(XFY(zE+qs_59F6cefKIj@NihDF_F%_I#{5n&WuC)%A(nV)s=J zn?(D|g~AVPpWkr1*S_?B9=4OUmjj43DZ*29( zOGhrwvyPWEjv8&%`PN}~-S}mXZ*QKQ|IyHudjJ2pJNx#E=gwSPo8(a-fK*2%eRhOZfrU>I#I1t$0#-%`fd7Nqa`_Q@1Z{?>cnHls7-sV zsRb5Ih)1`7pT%hHIhlCjxPP~Jtb38K%I2-=jxqZy`>xD0xA}fq5VTVr)Y==OSh}Nn z`PnV`>uec@^TKOmR@ZID-D=aj6X$(*eervw>B!&t9={#m-BVC=rd#OvX_e<2r&A{_ zfBk%`&97$sX7z^GtK&M}w_1BfCsT871)YkqX7{!^)!SM+PF?LA`?1)odvx)x49wPY zj%9L=>xa!Dy4!RT%$AdtxAV>~6#k6(GrE%}JU&19{N(df&UX&!F}L%}C|{d=ZSu7# zecj1P`P!U4e|U4(ao2Iz$!Rs|G2C_Bb+h3HEB8G2JomhGhs#O1=eg&(=kM(QMC3V+ z=Qy6@pEP9l{;L9U|Qh@>1>)?hx(} z?htuxAw7yaggb;gggZpK9pt6lA>1L{A>1MI+Cq91cL;X~cL;ZgbUVmPxkI=^xI?%@ PpF8gE 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 literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/disturbances_2015_moja.json b/GCBM/layers/tiled/disturbances_2015_moja.json new file mode 100644 index 00000000..72869bdb --- /dev/null +++ b/GCBM/layers/tiled/disturbances_2015_moja.json @@ -0,0 +1,18 @@ +{ + "layer_type": "GridLayer", + "layer_data": "Byte", + "nodata": 255, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "blockLatSize": 0.1, + "blockLonSize": 0.1, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025, + "attributes": { + "1": { + "year": 2015, + "disturbance_type": "Wildfire", + "transition": 1 + } + } +} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2015_moja.tiff b/GCBM/layers/tiled/disturbances_2015_moja.tiff new file mode 100644 index 0000000000000000000000000000000000000000..3fea15096c5d1869d5c01ec609a614734cf58c65 GIT binary patch literal 26331 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 N^|gnrKjXeX{{ao@Z=(PJ literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/disturbances_2018_moja.json b/GCBM/layers/tiled/disturbances_2018_moja.json new file mode 100644 index 00000000..f7c50f24 --- /dev/null +++ b/GCBM/layers/tiled/disturbances_2018_moja.json @@ -0,0 +1,18 @@ +{ + "layer_type": "GridLayer", + "layer_data": "Byte", + "nodata": 255, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "blockLatSize": 0.1, + "blockLonSize": 0.1, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025, + "attributes": { + "1": { + "year": 2018, + "disturbance_type": "Mountain pine beetle — Low impact", + "transition": 1 + } + } +} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2018_moja.tiff b/GCBM/layers/tiled/disturbances_2018_moja.tiff new file mode 100644 index 0000000000000000000000000000000000000000..39ab4719f567fa33ecc87688579570e97a8ffe11 GIT binary patch literal 26282 zcmeI%aZDR!7zXg~is=BcvQALzhR7x=%!-x4WR5|{U=&v!AdIT0)zySVmXO)aMk`jO z3yH*#g(XNp$%4va8EA-M2}}}+HW3#RA)-G7Xqr5y@#0w#kLqFl$20{oaPDt2(_eR=~qGYO7S@?0nx40;odR4aaxG7Px zjZw0lQ8MGIY~_jWj*^u~p;v}K*p)!fZ_nxs`>IymcjftMUQZHnbQjUJo;F->BndUL zPmm3`<3u{Li^xv9lY|P{7Ab>59Uj$|Ri$sweObJAQYEg#Jj1qa*dnSiV)=N4 zj{u(sv3(wR>E-izz{eqS1h^0W-+i!*FJtDL=ymqOMQBQ)yc;gS(p1Vj;XE|nOnCP*Tl&;wO>QCqc`saqrYy?4;Q}npro0o*L*rJ;J7547-b;Bq^uq!@9A2jTt zyamoeeJSNGI1RJPD0jjsn7Nm72b_c%<&@i@7p9pgZ-Nt0S3!9r9EYh7Q{Dhap>`kT zHaG$`X3DK_7$!bKc|9D0>PIQJKo3;yr@RLC!yv4zr2Tzx8Jepo?}dxdR84s|T!5vI zQQisXp|OVY4j6!iwUoC*KP)&vc^jOAd3BVxLLW3(C~twYQ2#jPE;tRdo}kc%z{GdCuSEwW7w#^Cgr`_TETpv-0V=o-;*mSZf{CGuu)dz}?cK!aD6uP@;e*4;~ zU*i))TmRC#hurPeHfFbwh7T?p9qz_n+pR^EHOr2uU40-L~ zwS(7=*!%A>2kUD0I^Yw5bQq1|(qpN*}oFx{e z^P^lsMWYR~bTv7g-^$sHB*WS)M)|cfZH?)B)%)E&`olfE|G3AU$HTkFgXj14nO9%q zIj<=iH?FVHUJ!&%O~0Byx&Q=0W+%w-I-?_8$X;+JZ*$gq54$#J&G&BpaAk}RGg0l~0P0tGd!0nFkTmssj;bS3fK35Jk;a7E{Z$92waivdj&biu8ON@(JWrcgT;Bt9n3o?Fr0BDtbY#LPmQ)c6Z)W7$Veoj*;Xoa7{QHpaAY(>A z?l=;dg&Z*o@?~U%FJv2XlON zK)#O@Lm+pZ2+T!}o&?!|oIe?|of4Ra^qKGIUI5uK3Yd-@x)AbtyYafL-vRU9z_N%fn1G@T?)DLGT>h1C^h6O$a%{lOUNxTko&Fx9!Dx;A=e-iKZooR z2h<`1;vrWe7m1MDX@EPBgA*X1MTV_}Y(}n4gxvEBpbj~H734d}m@grBOaf*hN34c? z85yw#vJJWE&yf491?rKLzJhE*Cai<(ydHP}IVKr$1u|*_Wc!W4ZODONLq3h1u?g}s z4~dv6C8AwzaRzK;}lLhhOl z%temQfNVg{-v!z3ufQ~zKg-gxxaSU4A3)*7~|) zX;P!E-gsBsAX^$Hs+1_Kj=WCb5R&8(n=meHk1&-S@r3i~ggBwLg{F&)YAc zS890R)2{<-XO^vVC`nRR&l+Y7J8`>CYfL!d8%P4%Jpv7*yzwKiH5gEVP}mep#t;;OBeI-AX)HI*ilv9i9nzS88bEIcM1ZMZ2sZAey?)LV86X|~h-GPK3LOU~J>m8SFxKecRN z)8{`-*J<`O^(H@bSB6P98eN=L@7IdUq)lDE*Bxt&u%;VJzA`sGD&27S ze&_QBLtT`yB(h8!Ke65~eqaA#3dv$oC?8u23d+OcWaTv~bMd3o2C=r$qtbnx#%?KEGDlWnQ^th%(E(V3nKL^q-5tZ_1Nd~iARiu;>ojl>E+TCYn)ZF z!)DbMX)ajiG(_~v$ZEW9(>iyGdumeDMMdg^r2U&JeV551RuzSf4!k6GNz^sIGK={H@LA_Pp|0QE7OJLAqm6SlzwE z!j;LsTMY3w`yW#LzR^TitHKY56^SS1Z|n4W&A@8$+&t-_E%}gsM#;6O6|VdGPbrs{ zTP3fIoVc6v9H*;4MIDe1eET>1lb#txwwq2(7LQ034F&!DrDwL->!shwZKamv?69Jh zKR1>h)LgSH?R#dQUM=l^I@GmHpC!gy^KH=&9#x1RSvNYJ$=!)#=J3+j`xXC|#jha0f-f~dFYwyg72N>6 z$-81#bOZDz?}}Z~4bYpsD|SUUKyUJ{*cIIXy~(>`S9AmPChv+}(GAd>yeoD^H$ZRl zuGkgb0KLh(Vpntn^d|3$UC|BDo4hM_MK?fi@~+qw-2lDGyJA;#1N0{Eie1qS(3`v~ zc11TpZ}P6#72N>6$-81#bOZDz?}}Z~4bYpsD|SUUKyUJ{*cIIXy~(>`S9AmPChv+} z(GAd>yeoD^H$ZRluGkgb0KLh(Vpntn^d|3$UC|BDo4hM_MK?fi@~+qw-2lDGyJA;# z1N0{Eie1qS(3`v~c11TpZ}P6#72N>6$-81#bOZDz?}}Z~4bYpsD|SUUKyUJ{*cIIX zy~(>`S9AmPChv+}(GAd>yeoD^H$ZRluGkgb0KLh(Vpntn^d|3$UC|BDo4hM_MK?fi z@~+qw-2lDGyJA;#1N0{Eie1qS(3`v~c11TpZ}P6#72N>6$-81#bOZDz?}}Z~4bYps zD|SUUKyUJ{*cIIXy~(>`S9AmPChv+}(GAd>yeoD^H$ZRluGkgb0KLh(Vpntn^d|3$ aUC|BDo4hM_MK?fi@~+qw-2lA_yZRRrfRaW4 literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/mean_annual_temperature_moja.json b/GCBM/layers/tiled/mean_annual_temperature_moja.json new file mode 100644 index 00000000..4a83b6e3 --- /dev/null +++ b/GCBM/layers/tiled/mean_annual_temperature_moja.json @@ -0,0 +1,11 @@ +{ + "layer_type": "GridLayer", + "layer_data": "Float32", + "nodata": 3.4e+38, + "tileLatSize": 1.0, + "tileLonSize": 1.0, + "blockLatSize": 0.1, + "blockLonSize": 0.1, + "cellLatSize": 0.00025, + "cellLonSize": 0.00025 +} \ No newline at end of file diff --git a/GCBM/layers/tiled/mean_annual_temperature_moja.tiff b/GCBM/layers/tiled/mean_annual_temperature_moja.tiff new file mode 100644 index 0000000000000000000000000000000000000000..6f85a9dd8a052e5a56bc5186198b1681a7d01bc7 GIT binary patch literal 77865 zcmeI0eO%3l9>>oSdCJVwb?rzIGi!+(HQdw|nl)mf(Z#jqxd#tfXmyHNvj>b3^Kcl} zTsP^G=7e%xv$&+XIdnQTFY}O8NcHL*r{67~V=vo$@BRB;pYwY0KEL<*orm7%QyoT+ zc2%`fsZ`H5{%N{&0#qusol0%HzOy~9sGs7RJ>i^f=i5EunjX99V*iAD{J347;<`V@ zc|XOy{)Bt{Lj9iNMyMOVGTRewYmL`3@=0gAE$E5++Tk?Sb1NNGkFRg*0J-8r2bI0; z_QN)pnrNqTwz;2d?qH&Ws+rC8?uaXCiOn9hZaNC~4|0BW&GhFdEQ|8aIl3h==2&miiK-YJ{k)h!9_rPT{!40#(l-b~!IpEc~pk*G|B@A>A2S-PM zp^;$h0x)SIn6?N!w-~%01u9FxZqcB}QgF;NaQ1RAAqL#~0hk^O=Ei|#TF@>5bX);? ztpvw^2+m&xuKEbnC4xsk1`Ae$6`z1DKLdMy4h~xbPFxE{t^-$p0q$N89^U{Oz69@W z1mEfi&gulVO#=ID27R`GlfMENZv{W!1}1L@PwoJXI)x%7~dJZ z&;^YC2K*u!-2W|jdLLN&7qEUm*eL~cI{^Bpf-??+F=^n&zk#WTz?{S2wRF&W1nl}9 zIPfSKpa*AWg4$!?mgC@|6X5wQ@Mbos{yV5S1rGiP71aBV0a#wm=EqM05ksu78Zh4m%!GSL6<9_cM%wD1Q!;ApPInEC16%5 zc;!d1`YPD&8rb(I@U`n;$PIAGO>pfka9NaR92kY*D9V$WBDsbdoaQZ!P*?n+B zHJI`MJW~T+tpzQ0V3&H(-3*SlfT0h;SSy&+0H!J6Iom(5udCIMgwhP`)*SR`0gkZ; zXSW0sT7g?zgXwL++_qqu18Dag=-3|gdLA6#0i53vT-6EGbq0@i0SkTyR&)hhb_09b zK4=Wn;CNzpFwzlR-2>e11Ri$=4L!koy}-7;!9IOJpBKT&eZj>qfuHvSlV1i;x`M`6 zz#2EOy*v1D-@W`X?+);JOw|4_f5%VBeso5BfbZio)sNnvmMT^ArvD0Qrcys*<8!oX zI==C|x>Z_Yy^TnP%4|nvbej&8k;~9hJ!fwX>aZ-j#sXtMropaA8s@_Te zuzh$#Vt>UiN!fKyxp+f+>;7-`FCXRq?kH7rJG?Tdac4#Q*LNDX-nrd@0^hnwZ3v%jIMfh?)!bps#DKan38Yima4Pu zhsSASx5PPQ4?VDa_(=0YJ7sA4Y^$GlOwC`lmrIgzOZ!Kxj|fo?{?q8??w&L#_OmFX zdG@4WZ>P|T+RO)$cDH`Kyut(v$%2clVBs{l7*-;T)6#rmL@>s1oMG!K&Eu++4a1c~0nu^Wlbw1fJx$9K9pCVZ3o19K_BGY# zH$=W`S6iiQzECqgNMD_9*2T7b+3SF!&)=SE(k^d1^hnl{Yo0p~MBNOj)fFY2tw;_r zXx+*#)ZOw)vnw)aTQ*+3qs?{v_R@)lJSA?}f+g0MO~GMGUPVaO9?j;-`sxvN^CM60 zDxaq;uz30^Ih7fk?wkm)m~|OSl&;WgrzJARoa$cKaJ*~#{`ujPO5*bxA9c*?N~N!9 z&fW(9@`iC1&p)qeNG*^1$Zhkzm=mEz2IaEVsi5KGVFRvJnFBHn+G**P{>Bw<=D>{O zvn*z({mS4>rq^XSEIcBeHv#%6(Ept2dez^PR%efhJ4op=FwJe)`fin!7R8hO)!zoW^@3Ro1<; zHlj49bmRBp0o)*1V41=fBscVlz`sfP4rR>QgoOL3*4Qv2zRq_C4m z4Yw~JZ}&rhSKQd@`Qh0+&PS$%)R}VwytEN@$zi_w0=K;(m$dFKQCaWVmjXDHmfm*#avaO)lbw6m}c>Gj{N?Hf8z*GnXBf0 zbHP8%$8?|}CZI0ademshYN+vvY&^x?wCl#ri0O*iVELdTIoCV1Ru>UYSDbWTaTMdvlvtzu`69udXb{A+d4fm*dPk zPEN@`A3WD5*2%f2$-1c`d3wmV2ZAhRhBl+V4D+!T&v<`+^!B*n*^9oi|DX9u=X|~8 zplhps;IGR6@T-y^uYMKh=MNDq!!o}rARTfuEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ HV>AB-+l?vS literal 0 HcmV?d00001 diff --git a/GCBM/layers/tiled/study_area.json b/GCBM/layers/tiled/study_area.json new file mode 100644 index 00000000..bdedbc94 --- /dev/null +++ b/GCBM/layers/tiled/study_area.json @@ -0,0 +1,85 @@ +{ + "tile_size": 1.0, + "block_size": 0.1, + "tiles": [ + { + "x": -106, + "y": 55, + "index": 12674 + } + ], + "pixel_size": 0.00025, + "layers": [ + { + "name": "initial_age", + "type": "VectorLayer" + }, + { + "name": "mean_annual_temperature", + "type": "VectorLayer" + }, + { + "name": "Classifier1", + "type": "VectorLayer", + "tags": [ + "classifier" + ] + }, + { + "name": "Classifier2", + "type": "VectorLayer", + "tags": [ + "classifier" + ] + }, + { + "name": "disturbances_2011", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + }, + { + "name": "disturbances_2012", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + }, + { + "name": "disturbances_2013", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + }, + { + "name": "disturbances_2014", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + }, + { + "name": "disturbances_2015", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + }, + { + "name": "disturbances_2016", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + }, + { + "name": "disturbances_2018", + "type": "DisturbanceLayer", + "tags": [ + "disturbance" + ] + } + ] +} \ No newline at end of file diff --git a/local/rest_api_gcbm/local_run.postman_collection b/local/rest_api_gcbm/local_run.postman_collection index 07193517..6bca619b 100644 --- a/local/rest_api_gcbm/local_run.postman_collection +++ b/local/rest_api_gcbm/local_run.postman_collection @@ -49,177 +49,177 @@ { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/variables.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/variables.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/spinup.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/spinup.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/provider_config.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/provider_config.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/pools_cbm.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/pools_cbm.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/modules_output.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/modules_output.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/modules_cbm.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/modules_cbm.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/localdomain.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/localdomain.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/internal_variables.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/internal_variables.json" }, { "key": "config_files", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/gcbm_config.cfg" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/config/gcbm_config.cfg" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/bounding_box.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/bounding_box.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier1_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier1_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier1_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier1_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier2_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier2_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/Classifier2_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier2_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2011_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2011_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2011_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2011_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2012_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2012_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2012_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2012_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2013_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2013_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2013_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2013_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2014_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2014_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2014_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2014_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2015_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2015_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2015_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2015_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2016_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2016_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2016_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2016_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2018_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2018_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/disturbances_2018_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2018_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/initial_age_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/initial_age_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/initial_age_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/initial_age_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/mean_annual_temperature_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/mean_annual_temperature_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/mean_annual_temperature_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/mean_annual_temperature_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/tiled/study_area.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/study_area.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/input_database/gcbm_input.db" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/input_database/gcbm_input.db" }, { "key": "db", "type": "file", - "src": "/C:/Users/nynal/Downloads/FLINT.Cloud-master/FLINT.Cloud-master/GCBM/config/input_database/gcbm_input.db" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/input_database/gcbm_input.db" }, { "key": "", From f1af3870471f5b9afec602096ef0ba6ffcd79cfc Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Sun, 10 Apr 2022 14:23:20 +0300 Subject: [PATCH 002/196] changed form data paths --- .../local_run.postman_collection | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/local/rest_api_gcbm/local_run.postman_collection b/local/rest_api_gcbm/local_run.postman_collection index 6bca619b..0fdc82bd 100644 --- a/local/rest_api_gcbm/local_run.postman_collection +++ b/local/rest_api_gcbm/local_run.postman_collection @@ -94,122 +94,122 @@ { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/bounding_box.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/bounding_box.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier1_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier1_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier1_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier1_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier2_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier2_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/Classifier2_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/Classifier2_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2011_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2011_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2011_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2011_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2012_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2012_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2012_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2012_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2013_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2013_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2013_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2013_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2014_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2014_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2014_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2014_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2015_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2015_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2015_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2015_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2016_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2016_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2016_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2016_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2018_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2018_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/disturbances_2018_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/disturbances_2018_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/initial_age_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/initial_age_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/initial_age_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/initial_age_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/mean_annual_temperature_moja.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/mean_annual_temperature_moja.json" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/mean_annual_temperature_moja.tiff" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/mean_annual_temperature_moja.tiff" }, { "key": "input", "type": "file", - "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/tiled/study_area.json" + "src": "/C:/Users/Vision/FLINT/FLINT.Cloud/GCBM/layers/tiled/study_area.json" }, { "key": "input", From 14ea0196b8863dbf6a650304f5b45a4d0150519d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 18:25:14 +0300 Subject: [PATCH 003/196] example sim report using cml --- .github/workflows/cml-report.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/cml-report.yml diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml new file mode 100644 index 00000000..558c2ac6 --- /dev/null +++ b/.github/workflows/cml-report.yml @@ -0,0 +1,18 @@ +name: perturbation-test + on: [push] + jobs: + run: + runs-on: [ubuntu-latest] + container: docker://dvcorg/cml-py3:latest + steps: + - uses: actions/checkout@v2 + - name: cml_run + env: + repot_token: ${{ secrets.GITHUB_TOKEN }} + run: | + + pip install -r pandas + python report.py + echo "## Simulation Summary" > report.md + cat local/rest_api_gcbm/input/summaries/*.txt >> report.md + cml-send-comment report.md \ No newline at end of file From 486184a6b47bc4766af0a28e4a7a02ec7e18197e Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:38:54 +0300 Subject: [PATCH 004/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 558c2ac6..58aa70e1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,6 +1,6 @@ name: perturbation-test - on: [push] - jobs: +on: [push] +jobs: run: runs-on: [ubuntu-latest] container: docker://dvcorg/cml-py3:latest @@ -10,9 +10,8 @@ name: perturbation-test env: repot_token: ${{ secrets.GITHUB_TOKEN }} run: | - - pip install -r pandas - python report.py - echo "## Simulation Summary" > report.md - cat local/rest_api_gcbm/input/summaries/*.txt >> report.md - cml-send-comment report.md \ No newline at end of file + pip install -r pandas + python report.py + echo "## Simulation Summary" > report.md + cat local/rest_api_gcbm/*_summary.txt >> report.md + cml-send-comment report.md From 93cb74848a3fa47d6411de2b54dd3965bd33a117 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:46:51 +0300 Subject: [PATCH 005/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 58aa70e1..b31bebb0 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -5,13 +5,14 @@ jobs: runs-on: [ubuntu-latest] container: docker://dvcorg/cml-py3:latest steps: - - uses: actions/checkout@v2 - - name: cml_run - env: - repot_token: ${{ secrets.GITHUB_TOKEN }} - run: | - pip install -r pandas - python report.py - echo "## Simulation Summary" > report.md - cat local/rest_api_gcbm/*_summary.txt >> report.md - cml-send-comment report.md + - uses: actions/checkout@v2 + - name: cml_run + env: + repot_token: ${{ secrets.GITHUB_TOKEN }} + run: | + pip install --upgrade pip + pip install -r pandas + python report.py + echo "## Simulation Summary" > report.md + cat local/rest_api_gcbm/*_summary.txt >> report.md + cml-send-comment report.md From 29138c073b69c0ca08614db7e71868dc969f4ffb Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:51:02 +0300 Subject: [PATCH 006/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b31bebb0..777960b6 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -10,8 +10,6 @@ jobs: env: repot_token: ${{ secrets.GITHUB_TOKEN }} run: | - pip install --upgrade pip - pip install -r pandas python report.py echo "## Simulation Summary" > report.md cat local/rest_api_gcbm/*_summary.txt >> report.md From 4991cf41e7739c5bd5eed30f5e2f39ff4964184f Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:04:25 +0300 Subject: [PATCH 007/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 777960b6..cf81e3ab 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -10,7 +10,7 @@ jobs: env: repot_token: ${{ secrets.GITHUB_TOKEN }} run: | - python report.py + python local/rest_api_gcbm/report.py echo "## Simulation Summary" > report.md cat local/rest_api_gcbm/*_summary.txt >> report.md cml-send-comment report.md From 7eb9cf6541fb164e461925fec5e415dd34fdced7 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:08:38 +0300 Subject: [PATCH 008/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index cf81e3ab..a1f27205 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,4 +1,4 @@ -name: perturbation-test +name: simulation-report on: [push] jobs: run: From 0d89ef4ca3a57993d344dbc59414f3d0e0085298 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:18:50 +0300 Subject: [PATCH 009/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index a1f27205..1297a07f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -10,6 +10,7 @@ jobs: env: repot_token: ${{ secrets.GITHUB_TOKEN }} run: | + python -m pip install --upgrade pip python local/rest_api_gcbm/report.py echo "## Simulation Summary" > report.md cat local/rest_api_gcbm/*_summary.txt >> report.md From 6b21e9685b94d75c19c2b99d4350b8690d616d29 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:20:12 +0300 Subject: [PATCH 010/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1297a07f..ec3b5750 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -11,6 +11,7 @@ jobs: repot_token: ${{ secrets.GITHUB_TOKEN }} run: | python -m pip install --upgrade pip + pip install pandas python local/rest_api_gcbm/report.py echo "## Simulation Summary" > report.md cat local/rest_api_gcbm/*_summary.txt >> report.md From 52e84459e9d960dcc90eccff1686f6645d4e3f58 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 19:49:09 +0300 Subject: [PATCH 011/196] test if cml is setup right --- local/rest_api_gcbm/sim_report.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 local/rest_api_gcbm/sim_report.py diff --git a/local/rest_api_gcbm/sim_report.py b/local/rest_api_gcbm/sim_report.py new file mode 100644 index 00000000..bb773368 --- /dev/null +++ b/local/rest_api_gcbm/sim_report.py @@ -0,0 +1,24 @@ +import os +import pandas as pd + +TEST_ROOT = "./local/rest_api_gcbm" +file_paths = os.path.join(TEST_ROOT,'input') +simulations = os.listdir(file_paths) +simulation_paths = [os.path.join(file_paths,s) for s in simulations] + +for sim in simulation_paths: + input_files = pd.DataFrame({"Input Files":[os.path.join(sim,match) for match in os.listdir(sim) if ".tiff" in match]}) + config_files = pd.DataFrame({"Config Files":[os.path.join(sim,match) for match in os.listdir(sim) if "config" in match]}) + logs = pd.DataFrame({"Log Files":[os.path.join(sim,match) for match in os.listdir(sim) if "log" in match]}) + output = os.path.join(sim,'output') + if os.path.exists(output): + output_msg = "Output files located in " + output + else: + output_msg = "We have to run the simulation first check README.md" + sim_name = os.path.basename(sim) + s = {"Input Files":input_files,"Config files":config_files,"Logs":logs,"Output":output_msg} + with open(f"{sim_name}_summary.txt","w") as outfile: + outfile.write(f"## Sim name:{sim_name}\n\n") + outfile.write(input_files.to_markdown()+"\n\n") + outfile.write(config_files.to_markdown()+"\n\n") + outfile.write(logs.to_markdown()) \ No newline at end of file From 66e819297812888349248a55e034a1f87feef8b9 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 19:56:43 +0300 Subject: [PATCH 012/196] add cml script --- local/{rest_api_gcbm/sim_report.py => tests/create_cml_report.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename local/{rest_api_gcbm/sim_report.py => tests/create_cml_report.py} (100%) diff --git a/local/rest_api_gcbm/sim_report.py b/local/tests/create_cml_report.py similarity index 100% rename from local/rest_api_gcbm/sim_report.py rename to local/tests/create_cml_report.py From ba0330660073322118c83f8f05f3f544fd7091d5 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 19:59:54 +0300 Subject: [PATCH 013/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ec3b5750..fc7cceba 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,7 +12,7 @@ jobs: run: | python -m pip install --upgrade pip pip install pandas - python local/rest_api_gcbm/report.py + python local/tests/create_cml_report.py echo "## Simulation Summary" > report.md cat local/rest_api_gcbm/*_summary.txt >> report.md cml-send-comment report.md From 5f5987718d6c640fed55baac56115c60fb90f3f2 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 20:05:37 +0300 Subject: [PATCH 014/196] changed file paths to not show local directories --- local/tests/create_cml_report.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index bb773368..2511f23c 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -1,15 +1,15 @@ import os import pandas as pd -TEST_ROOT = "./local/rest_api_gcbm" +TEST_ROOT = "local/rest_api_gcbm" file_paths = os.path.join(TEST_ROOT,'input') simulations = os.listdir(file_paths) simulation_paths = [os.path.join(file_paths,s) for s in simulations] for sim in simulation_paths: - input_files = pd.DataFrame({"Input Files":[os.path.join(sim,match) for match in os.listdir(sim) if ".tiff" in match]}) - config_files = pd.DataFrame({"Config Files":[os.path.join(sim,match) for match in os.listdir(sim) if "config" in match]}) - logs = pd.DataFrame({"Log Files":[os.path.join(sim,match) for match in os.listdir(sim) if "log" in match]}) + input_files = pd.DataFrame({"Input Files":[match for match in os.listdir(sim) if ".tiff" in match]}) + config_files = pd.DataFrame({"Config Files":[match for match in os.listdir(sim) if "config" in match]}) + logs = pd.DataFrame({"Log Files":[match for match in os.listdir(sim) if "log" in match]}) output = os.path.join(sim,'output') if os.path.exists(output): output_msg = "Output files located in " + output From 6266c5ebfe77d7b32a5d3876d314c3d7c5a09fd9 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 20:10:50 +0300 Subject: [PATCH 015/196] update cml report --- local/tests/create_cml_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index 2511f23c..abccc497 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -18,7 +18,7 @@ sim_name = os.path.basename(sim) s = {"Input Files":input_files,"Config files":config_files,"Logs":logs,"Output":output_msg} with open(f"{sim_name}_summary.txt","w") as outfile: - outfile.write(f"## Sim name:{sim_name}\n\n") + outfile.write(f"## Simulation name:{sim_name}\n\n") outfile.write(input_files.to_markdown()+"\n\n") outfile.write(config_files.to_markdown()+"\n\n") outfile.write(logs.to_markdown()) \ No newline at end of file From 437622f084f77262176fcece2412c5d05b5b6b4b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 21:51:14 +0300 Subject: [PATCH 016/196] setup gha script to show summary --- .github/workflows/cml-report.yml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index fc7cceba..1b20c8ef 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,18 +1,24 @@ name: simulation-report on: [push] jobs: - run: + sim-summary: runs-on: [ubuntu-latest] container: docker://dvcorg/cml-py3:latest steps: - - uses: actions/checkout@v2 + - name: Checkout Repository + uses: actions/checkout@v2 + + container: docker://dvcorg/cml-py3:latest - name: cml_run env: - repot_token: ${{ secrets.GITHUB_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - python -m pip install --upgrade pip - pip install pandas - python local/tests/create_cml_report.py - echo "## Simulation Summary" > report.md - cat local/rest_api_gcbm/*_summary.txt >> report.md - cml-send-comment report.md + cd ../tests + python create_cml_report.py + # This means that summary txt files should be in the below directory + cd ../rest_api_gcbm + echo ## > report.md + cat *_summary.txt >> report.md + cml-send-comment report.md + + From 472a51d3f44b63a387a189e1aa9c7a545388dd8f Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Mon, 11 Apr 2022 21:52:39 +0300 Subject: [PATCH 017/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1b20c8ef..cd804760 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -8,7 +8,6 @@ jobs: - name: Checkout Repository uses: actions/checkout@v2 - container: docker://dvcorg/cml-py3:latest - name: cml_run env: repo_token: ${{ secrets.GITHUB_TOKEN }} From 11b6ef7136d35b97008588151796fc8aad46dc74 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 22:48:48 +0300 Subject: [PATCH 018/196] setup GCBM summary --- .github/workflows/cml-report.yml | 3 +-- local/tests/create_cml_report.py | 34 ++++++++++++-------------------- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index cd804760..53e6881e 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -16,8 +16,7 @@ jobs: python create_cml_report.py # This means that summary txt files should be in the below directory cd ../rest_api_gcbm - echo ## > report.md - cat *_summary.txt >> report.md + cat *_summary.txt > report.md cml-send-comment report.md diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index abccc497..a602f6b9 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -1,24 +1,16 @@ import os import pandas as pd -TEST_ROOT = "local/rest_api_gcbm" -file_paths = os.path.join(TEST_ROOT,'input') -simulations = os.listdir(file_paths) -simulation_paths = [os.path.join(file_paths,s) for s in simulations] - -for sim in simulation_paths: - input_files = pd.DataFrame({"Input Files":[match for match in os.listdir(sim) if ".tiff" in match]}) - config_files = pd.DataFrame({"Config Files":[match for match in os.listdir(sim) if "config" in match]}) - logs = pd.DataFrame({"Log Files":[match for match in os.listdir(sim) if "log" in match]}) - output = os.path.join(sim,'output') - if os.path.exists(output): - output_msg = "Output files located in " + output - else: - output_msg = "We have to run the simulation first check README.md" - sim_name = os.path.basename(sim) - s = {"Input Files":input_files,"Config files":config_files,"Logs":logs,"Output":output_msg} - with open(f"{sim_name}_summary.txt","w") as outfile: - outfile.write(f"## Simulation name:{sim_name}\n\n") - outfile.write(input_files.to_markdown()+"\n\n") - outfile.write(config_files.to_markdown()+"\n\n") - outfile.write(logs.to_markdown()) \ No newline at end of file +GCBM_template_path = os.path.join('..','..','GCBM') +docker_path = os.path.join('app','input','your_sim_name') +inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) +api_inputs = pd.DataFrame({"Data Files":[os.path.join('@','input','simulation_name',file) for file in inputs]}) +configs = os.listdir(os.path.join(GCBM_template_path,'config')) +api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in os.listdir(configs)]}) +with open("GCBM_summary.txt",'w') as outfile: + outfile.write("## GCBM Model"+'\n') + outfile.write("### After your reproduce the GCBM Demo Run you docker image will have this structure"+'\n') + outfile.write(api_inputs.to_markdown()+"\n\n") + outfile.write(api_configs.to_markdown()+"\n\n") + outfile.write(f"your output configuration will be in {os.path.join('@','input','output.zip')}") + From 0ffe4a95009b9c96f42ed54b3be564a6e1b168f5 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 22:52:16 +0300 Subject: [PATCH 019/196] setup GCBM summary --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 53e6881e..439a09e0 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,7 +12,7 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - cd ../tests + cd local/tests python create_cml_report.py # This means that summary txt files should be in the below directory cd ../rest_api_gcbm From 49473c75dbd1c019198251c63581725b63cebe1f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 22:55:47 +0300 Subject: [PATCH 020/196] setup GCBM summary --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 439a09e0..14b76972 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,6 +12,8 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | + python -m pip install --upgrade pip + pip install pandas cd local/tests python create_cml_report.py # This means that summary txt files should be in the below directory From d109e1ee2974aca6dea3852d0a9e6b34d677e0f8 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:09:21 +0300 Subject: [PATCH 021/196] setup GCBM summary --- .github/workflows/cml-report.yml | 13 +++++++-- local/rest_api_gcbm/GCBM_summary.txt | 40 ++++++++++++++++++++++++++++ local/tests/create_cml_report.py | 7 ++--- 3 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 local/rest_api_gcbm/GCBM_summary.txt diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 14b76972..7a862bd0 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -7,6 +7,13 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 + + - name: Setup cml + uses: iterative/setup-cml@v1 + - name: Setup python + uses: actions/setup-python@v2 + with: + python-version: '3.x' - name: cml_run env: @@ -18,7 +25,9 @@ jobs: python create_cml_report.py # This means that summary txt files should be in the below directory cd ../rest_api_gcbm - cat *_summary.txt > report.md + echo "## GCBM Model" > report.md + echo "After you reproduce the GCBM Demo Run your structure will be:" >> report.md + cat GCBM_summary.txt >> report.md + echo "Your output configuration will be in ```@/input/simulation_name/output.zip```" > report.md cml-send-comment report.md - diff --git a/local/rest_api_gcbm/GCBM_summary.txt b/local/rest_api_gcbm/GCBM_summary.txt new file mode 100644 index 00000000..51114a09 --- /dev/null +++ b/local/rest_api_gcbm/GCBM_summary.txt @@ -0,0 +1,40 @@ +| | Data Files | +|---:|:----------------------------------------------------------| +| 0 | @\input\simulation_name\bounding_box.tiff | +| 1 | @\input\simulation_name\Classifier1_moja.json | +| 2 | @\input\simulation_name\Classifier1_moja.tiff | +| 3 | @\input\simulation_name\Classifier2_moja.json | +| 4 | @\input\simulation_name\Classifier2_moja.tiff | +| 5 | @\input\simulation_name\disturbances_2011_moja.json | +| 6 | @\input\simulation_name\disturbances_2011_moja.tiff | +| 7 | @\input\simulation_name\disturbances_2012_moja.json | +| 8 | @\input\simulation_name\disturbances_2012_moja.tiff | +| 9 | @\input\simulation_name\disturbances_2013_moja.json | +| 10 | @\input\simulation_name\disturbances_2013_moja.tiff | +| 11 | @\input\simulation_name\disturbances_2014_moja.json | +| 12 | @\input\simulation_name\disturbances_2014_moja.tiff | +| 13 | @\input\simulation_name\disturbances_2015_moja.json | +| 14 | @\input\simulation_name\disturbances_2015_moja.tiff | +| 15 | @\input\simulation_name\disturbances_2016_moja.json | +| 16 | @\input\simulation_name\disturbances_2016_moja.tiff | +| 17 | @\input\simulation_name\disturbances_2018_moja.json | +| 18 | @\input\simulation_name\disturbances_2018_moja.tiff | +| 19 | @\input\simulation_name\initial_age_moja.json | +| 20 | @\input\simulation_name\initial_age_moja.tiff | +| 21 | @\input\simulation_name\mean_annual_temperature_moja.json | +| 22 | @\input\simulation_name\mean_annual_temperature_moja.tiff | +| 23 | @\input\simulation_name\study_area.json | + +| | Config files | +|---:|:------------------------------------------------| +| 0 | @\input\simulation_name\gcbm_config.cfg | +| 1 | @\input\simulation_name\internal_variables.json | +| 2 | @\input\simulation_name\localdomain.json | +| 3 | @\input\simulation_name\logging.conf | +| 4 | @\input\simulation_name\modules_cbm.json | +| 5 | @\input\simulation_name\modules_output.json | +| 6 | @\input\simulation_name\pools_cbm.json | +| 7 | @\input\simulation_name\provider_config.json | +| 8 | @\input\simulation_name\spinup.json | +| 9 | @\input\simulation_name\variables.json | + diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index a602f6b9..1a2979b4 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -6,11 +6,8 @@ inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) api_inputs = pd.DataFrame({"Data Files":[os.path.join('@','input','simulation_name',file) for file in inputs]}) configs = os.listdir(os.path.join(GCBM_template_path,'config')) -api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in os.listdir(configs)]}) -with open("GCBM_summary.txt",'w') as outfile: - outfile.write("## GCBM Model"+'\n') - outfile.write("### After your reproduce the GCBM Demo Run you docker image will have this structure"+'\n') +api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) +with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: outfile.write(api_inputs.to_markdown()+"\n\n") outfile.write(api_configs.to_markdown()+"\n\n") - outfile.write(f"your output configuration will be in {os.path.join('@','input','output.zip')}") From c4dc48c07af1f2d76d230309671218741af840df Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:12:44 +0300 Subject: [PATCH 022/196] setup GCBM summary --- .github/workflows/cml-report.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 7a862bd0..fed46f90 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -3,7 +3,6 @@ on: [push] jobs: sim-summary: runs-on: [ubuntu-latest] - container: docker://dvcorg/cml-py3:latest steps: - name: Checkout Repository uses: actions/checkout@v2 From 88e78c428c5fd862b1254507270d8e1825377b0d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:15:42 +0300 Subject: [PATCH 023/196] setup GCBM summary --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index fed46f90..c09f088c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -11,8 +11,8 @@ jobs: uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 - with: - python-version: '3.x' + with: + python-version: '3.x' - name: cml_run env: From 6a33fae47e9d0a9e84c535c5a0612d565d840581 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:17:57 +0300 Subject: [PATCH 024/196] setup GCBM summary --- local/tests/create_cml_report.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index 1a2979b4..8f8f2862 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -8,6 +8,6 @@ configs = os.listdir(os.path.join(GCBM_template_path,'config')) api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: - outfile.write(api_inputs.to_markdown()+"\n\n") - outfile.write(api_configs.to_markdown()+"\n\n") + outfile.write(api_inputs.to_markdown()) + outfile.write(api_configs.to_markdown()) From 36ebf49cdc6b12fd499cdbf222cd42c66857b868 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:20:14 +0300 Subject: [PATCH 025/196] setup GCBM summary --- .github/workflows/cml-report.yml | 2 +- local/tests/create_cml_report.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c09f088c..bbe8522f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -27,6 +27,6 @@ jobs: echo "## GCBM Model" > report.md echo "After you reproduce the GCBM Demo Run your structure will be:" >> report.md cat GCBM_summary.txt >> report.md - echo "Your output configuration will be in ```@/input/simulation_name/output.zip```" > report.md + echo "Your output configuration will be in ```@/input/simulation_name/output.zip```" >> report.md cml-send-comment report.md diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index 8f8f2862..1a2979b4 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -8,6 +8,6 @@ configs = os.listdir(os.path.join(GCBM_template_path,'config')) api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: - outfile.write(api_inputs.to_markdown()) - outfile.write(api_configs.to_markdown()) + outfile.write(api_inputs.to_markdown()+"\n\n") + outfile.write(api_configs.to_markdown()+"\n\n") From 2c1212064f0fc7a4954d8644840c92efef81a240 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:22:31 +0300 Subject: [PATCH 026/196] setup GCBM summary --- local/tests/create_cml_report.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index 1a2979b4..e43fe2f4 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -8,6 +8,6 @@ configs = os.listdir(os.path.join(GCBM_template_path,'config')) api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: - outfile.write(api_inputs.to_markdown()+"\n\n") - outfile.write(api_configs.to_markdown()+"\n\n") + outfile.writelines(api_inputs.to_markdown()) + outfile.writelines(api_configs.to_markdown()) From bf6cd6a4878c6aebf889bc37d7899885230d5091 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:28:24 +0300 Subject: [PATCH 027/196] setup GCBM summary --- local/rest_api_gcbm/GCBM_summary.txt | 76 +++++++++++++--------------- local/tests/create_cml_report.py | 5 +- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/local/rest_api_gcbm/GCBM_summary.txt b/local/rest_api_gcbm/GCBM_summary.txt index 51114a09..50724402 100644 --- a/local/rest_api_gcbm/GCBM_summary.txt +++ b/local/rest_api_gcbm/GCBM_summary.txt @@ -1,40 +1,36 @@ -| | Data Files | -|---:|:----------------------------------------------------------| -| 0 | @\input\simulation_name\bounding_box.tiff | -| 1 | @\input\simulation_name\Classifier1_moja.json | -| 2 | @\input\simulation_name\Classifier1_moja.tiff | -| 3 | @\input\simulation_name\Classifier2_moja.json | -| 4 | @\input\simulation_name\Classifier2_moja.tiff | -| 5 | @\input\simulation_name\disturbances_2011_moja.json | -| 6 | @\input\simulation_name\disturbances_2011_moja.tiff | -| 7 | @\input\simulation_name\disturbances_2012_moja.json | -| 8 | @\input\simulation_name\disturbances_2012_moja.tiff | -| 9 | @\input\simulation_name\disturbances_2013_moja.json | -| 10 | @\input\simulation_name\disturbances_2013_moja.tiff | -| 11 | @\input\simulation_name\disturbances_2014_moja.json | -| 12 | @\input\simulation_name\disturbances_2014_moja.tiff | -| 13 | @\input\simulation_name\disturbances_2015_moja.json | -| 14 | @\input\simulation_name\disturbances_2015_moja.tiff | -| 15 | @\input\simulation_name\disturbances_2016_moja.json | -| 16 | @\input\simulation_name\disturbances_2016_moja.tiff | -| 17 | @\input\simulation_name\disturbances_2018_moja.json | -| 18 | @\input\simulation_name\disturbances_2018_moja.tiff | -| 19 | @\input\simulation_name\initial_age_moja.json | -| 20 | @\input\simulation_name\initial_age_moja.tiff | -| 21 | @\input\simulation_name\mean_annual_temperature_moja.json | -| 22 | @\input\simulation_name\mean_annual_temperature_moja.tiff | -| 23 | @\input\simulation_name\study_area.json | - -| | Config files | -|---:|:------------------------------------------------| -| 0 | @\input\simulation_name\gcbm_config.cfg | -| 1 | @\input\simulation_name\internal_variables.json | -| 2 | @\input\simulation_name\localdomain.json | -| 3 | @\input\simulation_name\logging.conf | -| 4 | @\input\simulation_name\modules_cbm.json | -| 5 | @\input\simulation_name\modules_output.json | -| 6 | @\input\simulation_name\pools_cbm.json | -| 7 | @\input\simulation_name\provider_config.json | -| 8 | @\input\simulation_name\spinup.json | -| 9 | @\input\simulation_name\variables.json | - +| Data Files | Config files | +|:----------------------------------------------------------|:------------------------------------------------| +| @\input\simulation_name\bounding_box.tiff | nan | +| @\input\simulation_name\Classifier1_moja.json | nan | +| @\input\simulation_name\Classifier1_moja.tiff | nan | +| @\input\simulation_name\Classifier2_moja.json | nan | +| @\input\simulation_name\Classifier2_moja.tiff | nan | +| @\input\simulation_name\disturbances_2011_moja.json | nan | +| @\input\simulation_name\disturbances_2011_moja.tiff | nan | +| @\input\simulation_name\disturbances_2012_moja.json | nan | +| @\input\simulation_name\disturbances_2012_moja.tiff | nan | +| @\input\simulation_name\disturbances_2013_moja.json | nan | +| @\input\simulation_name\disturbances_2013_moja.tiff | nan | +| @\input\simulation_name\disturbances_2014_moja.json | nan | +| @\input\simulation_name\disturbances_2014_moja.tiff | nan | +| @\input\simulation_name\disturbances_2015_moja.json | nan | +| @\input\simulation_name\disturbances_2015_moja.tiff | nan | +| @\input\simulation_name\disturbances_2016_moja.json | nan | +| @\input\simulation_name\disturbances_2016_moja.tiff | nan | +| @\input\simulation_name\disturbances_2018_moja.json | nan | +| @\input\simulation_name\disturbances_2018_moja.tiff | nan | +| @\input\simulation_name\initial_age_moja.json | nan | +| @\input\simulation_name\initial_age_moja.tiff | nan | +| @\input\simulation_name\mean_annual_temperature_moja.json | nan | +| @\input\simulation_name\mean_annual_temperature_moja.tiff | nan | +| @\input\simulation_name\study_area.json | nan | +| nan | @\input\simulation_name\gcbm_config.cfg | +| nan | @\input\simulation_name\internal_variables.json | +| nan | @\input\simulation_name\localdomain.json | +| nan | @\input\simulation_name\logging.conf | +| nan | @\input\simulation_name\modules_cbm.json | +| nan | @\input\simulation_name\modules_output.json | +| nan | @\input\simulation_name\pools_cbm.json | +| nan | @\input\simulation_name\provider_config.json | +| nan | @\input\simulation_name\spinup.json | +| nan | @\input\simulation_name\variables.json | \ No newline at end of file diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index e43fe2f4..8498d6d1 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -1,3 +1,4 @@ +from operator import index import os import pandas as pd @@ -7,7 +8,7 @@ api_inputs = pd.DataFrame({"Data Files":[os.path.join('@','input','simulation_name',file) for file in inputs]}) configs = os.listdir(os.path.join(GCBM_template_path,'config')) api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) +md = pd.concat([api_inputs,api_configs]) with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: - outfile.writelines(api_inputs.to_markdown()) - outfile.writelines(api_configs.to_markdown()) + outfile.write(md.to_markdown(index=False)) From 292ded16333de3387844cf8d5158dd57e160cfeb Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:31:21 +0300 Subject: [PATCH 028/196] setup GCBM summary --- .github/workflows/cml-report.yml | 1 + local/tests/create_cml_report.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index bbe8522f..4d09afa1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -20,6 +20,7 @@ jobs: run: | python -m pip install --upgrade pip pip install pandas + pip install tabulate cd local/tests python create_cml_report.py # This means that summary txt files should be in the below directory diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index 8498d6d1..7b2feafd 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -1,6 +1,6 @@ -from operator import index import os import pandas as pd +import tabulate GCBM_template_path = os.path.join('..','..','GCBM') docker_path = os.path.join('app','input','your_sim_name') From d9369233e8aefd00d30087cc709e7e7abb845c54 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 11 Apr 2022 23:34:14 +0300 Subject: [PATCH 029/196] setup GCBM summary --- local/rest_api_gcbm/GCBM_summary.txt | 73 ++++++++++++++-------------- local/tests/create_cml_report.py | 4 +- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/local/rest_api_gcbm/GCBM_summary.txt b/local/rest_api_gcbm/GCBM_summary.txt index 50724402..fba7f691 100644 --- a/local/rest_api_gcbm/GCBM_summary.txt +++ b/local/rest_api_gcbm/GCBM_summary.txt @@ -1,36 +1,37 @@ -| Data Files | Config files | -|:----------------------------------------------------------|:------------------------------------------------| -| @\input\simulation_name\bounding_box.tiff | nan | -| @\input\simulation_name\Classifier1_moja.json | nan | -| @\input\simulation_name\Classifier1_moja.tiff | nan | -| @\input\simulation_name\Classifier2_moja.json | nan | -| @\input\simulation_name\Classifier2_moja.tiff | nan | -| @\input\simulation_name\disturbances_2011_moja.json | nan | -| @\input\simulation_name\disturbances_2011_moja.tiff | nan | -| @\input\simulation_name\disturbances_2012_moja.json | nan | -| @\input\simulation_name\disturbances_2012_moja.tiff | nan | -| @\input\simulation_name\disturbances_2013_moja.json | nan | -| @\input\simulation_name\disturbances_2013_moja.tiff | nan | -| @\input\simulation_name\disturbances_2014_moja.json | nan | -| @\input\simulation_name\disturbances_2014_moja.tiff | nan | -| @\input\simulation_name\disturbances_2015_moja.json | nan | -| @\input\simulation_name\disturbances_2015_moja.tiff | nan | -| @\input\simulation_name\disturbances_2016_moja.json | nan | -| @\input\simulation_name\disturbances_2016_moja.tiff | nan | -| @\input\simulation_name\disturbances_2018_moja.json | nan | -| @\input\simulation_name\disturbances_2018_moja.tiff | nan | -| @\input\simulation_name\initial_age_moja.json | nan | -| @\input\simulation_name\initial_age_moja.tiff | nan | -| @\input\simulation_name\mean_annual_temperature_moja.json | nan | -| @\input\simulation_name\mean_annual_temperature_moja.tiff | nan | -| @\input\simulation_name\study_area.json | nan | -| nan | @\input\simulation_name\gcbm_config.cfg | -| nan | @\input\simulation_name\internal_variables.json | -| nan | @\input\simulation_name\localdomain.json | -| nan | @\input\simulation_name\logging.conf | -| nan | @\input\simulation_name\modules_cbm.json | -| nan | @\input\simulation_name\modules_output.json | -| nan | @\input\simulation_name\pools_cbm.json | -| nan | @\input\simulation_name\provider_config.json | -| nan | @\input\simulation_name\spinup.json | -| nan | @\input\simulation_name\variables.json | \ No newline at end of file +| Data Files | +|:----------------------------------------------------------| +| @\input\simulation_name\bounding_box.tiff | +| @\input\simulation_name\Classifier1_moja.json | +| @\input\simulation_name\Classifier1_moja.tiff | +| @\input\simulation_name\Classifier2_moja.json | +| @\input\simulation_name\Classifier2_moja.tiff | +| @\input\simulation_name\disturbances_2011_moja.json | +| @\input\simulation_name\disturbances_2011_moja.tiff | +| @\input\simulation_name\disturbances_2012_moja.json | +| @\input\simulation_name\disturbances_2012_moja.tiff | +| @\input\simulation_name\disturbances_2013_moja.json | +| @\input\simulation_name\disturbances_2013_moja.tiff | +| @\input\simulation_name\disturbances_2014_moja.json | +| @\input\simulation_name\disturbances_2014_moja.tiff | +| @\input\simulation_name\disturbances_2015_moja.json | +| @\input\simulation_name\disturbances_2015_moja.tiff | +| @\input\simulation_name\disturbances_2016_moja.json | +| @\input\simulation_name\disturbances_2016_moja.tiff | +| @\input\simulation_name\disturbances_2018_moja.json | +| @\input\simulation_name\disturbances_2018_moja.tiff | +| @\input\simulation_name\initial_age_moja.json | +| @\input\simulation_name\initial_age_moja.tiff | +| @\input\simulation_name\mean_annual_temperature_moja.json | +| @\input\simulation_name\mean_annual_temperature_moja.tiff | +| @\input\simulation_name\study_area.json || Config files | +|:------------------------------------------------| +| @\input\simulation_name\gcbm_config.cfg | +| @\input\simulation_name\internal_variables.json | +| @\input\simulation_name\localdomain.json | +| @\input\simulation_name\logging.conf | +| @\input\simulation_name\modules_cbm.json | +| @\input\simulation_name\modules_output.json | +| @\input\simulation_name\pools_cbm.json | +| @\input\simulation_name\provider_config.json | +| @\input\simulation_name\spinup.json | +| @\input\simulation_name\variables.json | \ No newline at end of file diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py index 7b2feafd..228b17a4 100644 --- a/local/tests/create_cml_report.py +++ b/local/tests/create_cml_report.py @@ -8,7 +8,7 @@ api_inputs = pd.DataFrame({"Data Files":[os.path.join('@','input','simulation_name',file) for file in inputs]}) configs = os.listdir(os.path.join(GCBM_template_path,'config')) api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) -md = pd.concat([api_inputs,api_configs]) with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: - outfile.write(md.to_markdown(index=False)) + outfile.write(api_inputs.to_markdown(index=False)+'\n\n') + outfile.write(api_configs.to_markdown(index=False)+'\n\n') From 5f0490e349cdfc2d6fbf989e1a2b6c418f886c09 Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 16:38:41 +0300 Subject: [PATCH 030/196] update cml_report script --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index cd804760..3c3eb726 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -8,7 +8,7 @@ jobs: - name: Checkout Repository uses: actions/checkout@v2 - - name: cml_run + - name: cml_report env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | @@ -16,7 +16,7 @@ jobs: python create_cml_report.py # This means that summary txt files should be in the below directory cd ../rest_api_gcbm - echo ## > report.md + echo "## GCBM model" > report.md cat *_summary.txt >> report.md cml-send-comment report.md From 300da4e4e8a5003188e28d632d400917c6dce106 Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 16:48:32 +0300 Subject: [PATCH 031/196] update cml script --- .github/workflows/cml-report.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 3c3eb726..bc165714 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -3,7 +3,8 @@ on: [push] jobs: sim-summary: runs-on: [ubuntu-latest] - container: docker://dvcorg/cml-py3:latest + env: + working-directory: ./local steps: - name: Checkout Repository uses: actions/checkout@v2 @@ -12,7 +13,7 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - cd ../tests + cd tests python create_cml_report.py # This means that summary txt files should be in the below directory cd ../rest_api_gcbm From f46377a4d1be65114acd3311701dd11618349b58 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 25 May 2022 16:50:25 +0300 Subject: [PATCH 032/196] update cml script --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index bc165714..8b8a147e 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -13,7 +13,7 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - cd tests + cd ./tests python create_cml_report.py # This means that summary txt files should be in the below directory cd ../rest_api_gcbm From 2363fa15bf8e9a44da60c02b555ce625e4718629 Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 16:53:30 +0300 Subject: [PATCH 033/196] update cml script --- .github/workflows/cml-report.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8b8a147e..a980097b 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -13,12 +13,13 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - cd ./tests - python create_cml_report.py - # This means that summary txt files should be in the below directory - cd ../rest_api_gcbm - echo "## GCBM model" > report.md - cat *_summary.txt >> report.md - cml-send-comment report.md + # cd ./tests + # python create_cml_report.py + # # This means that summary txt files should be in the below directory + # cd ../rest_api_gcbm + # echo "## GCBM model" > report.md + # cat *_summary.txt >> report.md + # cml-send-comment report.md + ls -R From a1f7dc88d1d0dc007d031a1b9658f7dd45600636 Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 17:05:06 +0300 Subject: [PATCH 034/196] update cml script --- .github/workflows/cml-report.yml | 39 +++++++++++++++++--------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index a980097b..9bec2e86 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -3,23 +3,26 @@ on: [push] jobs: sim-summary: runs-on: [ubuntu-latest] - env: - working-directory: ./local + steps: - - name: Checkout Repository - uses: actions/checkout@v2 - - - name: cml_report - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - # cd ./tests - # python create_cml_report.py - # # This means that summary txt files should be in the below directory - # cd ../rest_api_gcbm - # echo "## GCBM model" > report.md - # cat *_summary.txt >> report.md - # cml-send-comment report.md - ls -R - + - uses: actions/checkout@v2 + + - uses: iterative/setup-cml@v1 + + - uses: actions/setup-python@v3 + with: + python-version: '3.x' + architecture: 'x64' + + - name: Create report + run: | + cd ./local/tests + python create_cml_report.py + - name: Publish report + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + # echo "## GCBM model" > report.md + # cat *_summary.txt >> report.md + # cml-send-comment report.md \ No newline at end of file From 4f382b2928f81cff1086362d7ab3b8d276b6b6ab Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 17:08:05 +0300 Subject: [PATCH 035/196] update cml script --- .github/workflows/cml-report.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9bec2e86..68224e59 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -16,13 +16,14 @@ jobs: - name: Create report run: | - cd ./local/tests + cd local/tests python create_cml_report.py - name: Publish report env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - # echo "## GCBM model" > report.md - # cat *_summary.txt >> report.md - # cml-send-comment report.md \ No newline at end of file + echo "## GCBM model" > report.md + cd ../rest_api_gcbm + cat *_summary.txt >> report.md + cml-send-comment report.md \ No newline at end of file From db412518eeb479a3a33cb3794ebab0280867a9d2 Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 17:10:41 +0300 Subject: [PATCH 036/196] update cml script --- .github/workflows/cml-report.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 68224e59..d8ca9a4d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -14,16 +14,12 @@ jobs: python-version: '3.x' architecture: 'x64' - - name: Create report - run: | - cd local/tests - python create_cml_report.py - - name: Publish report env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | + cd local/rest_api_gcbm + python create_cml_report.py echo "## GCBM model" > report.md - cd ../rest_api_gcbm cat *_summary.txt >> report.md cml-send-comment report.md \ No newline at end of file From 89e5b08463120e13edfbe2ca2bd4b8efdc1baa72 Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Wed, 25 May 2022 17:53:36 +0300 Subject: [PATCH 037/196] update python script --- .../rest_api_gcbm/cml_report/GCBM_summary.txt | 42 +++++++++++++++++++ .../cml_report/create_cml_report.py | 23 ++++++++++ .../cml_report/report_requirements.txt | 2 + local/tests/create_cml_report.py | 14 ------- 4 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 local/rest_api_gcbm/cml_report/GCBM_summary.txt create mode 100644 local/rest_api_gcbm/cml_report/create_cml_report.py create mode 100644 local/rest_api_gcbm/cml_report/report_requirements.txt delete mode 100644 local/tests/create_cml_report.py diff --git a/local/rest_api_gcbm/cml_report/GCBM_summary.txt b/local/rest_api_gcbm/cml_report/GCBM_summary.txt new file mode 100644 index 00000000..44b8d0cc --- /dev/null +++ b/local/rest_api_gcbm/cml_report/GCBM_summary.txt @@ -0,0 +1,42 @@ +| Data Files | +|:----------------------------------| +| bounding_box.tiff | +| Classifier1_moja.json | +| Classifier1_moja.tiff | +| Classifier2_moja.json | +| Classifier2_moja.tiff | +| disturbances_2011_moja.json | +| disturbances_2011_moja.tiff | +| disturbances_2012_moja.json | +| disturbances_2012_moja.tiff | +| disturbances_2013_moja.json | +| disturbances_2013_moja.tiff | +| disturbances_2014_moja.json | +| disturbances_2014_moja.tiff | +| disturbances_2015_moja.json | +| disturbances_2015_moja.tiff | +| disturbances_2016_moja.json | +| disturbances_2016_moja.tiff | +| disturbances_2018_moja.json | +| disturbances_2018_moja.tiff | +| initial_age_moja.json | +| initial_age_moja.tiff | +| mean_annual_temperature_moja.json | +| mean_annual_temperature_moja.tiff | +| study_area.json | + +| Config files | +|:------------------------| +| gcbm_config.cfg | +| internal_variables.json | +| localdomain.json | +| logging.conf | +| modules_cbm.json | +| modules_output.json | +| output | +| pools_cbm.json | +| provider_config.json | +| spinup.json | +| variables.json | + +Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation. \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py new file mode 100644 index 00000000..352785b9 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -0,0 +1,23 @@ +from genericpath import isdir +import os +import pandas as pd +import tabulate +import zipfile +import glob + +# Unzip file +zip = os.path.join('..','..','..','GCBM_Demo_Run.zip') +with zipfile.ZipFile(zip,'r') as zip_ref: + zip_ref.extractall(os.path.join('..','..','..','GCBM')) + +# Define input template as dataframes +GCBM_template_path = os.path.join('..','..','..','GCBM') +inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) +api_inputs = pd.DataFrame({"Data Files":inputs}) +configs = os.listdir(os.path.join(GCBM_template_path,'config')) +api_configs = pd.DataFrame({"Config files":configs}) +output_config = f"Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation." +with open(os.path.join('GCBM_summary.txt'),'w') as outfile: + outfile.write(api_inputs.to_markdown(index=False)+'\n\n') + outfile.write(api_configs.to_markdown(index=False)+'\n\n') + outfile.write(output_config) diff --git a/local/rest_api_gcbm/cml_report/report_requirements.txt b/local/rest_api_gcbm/cml_report/report_requirements.txt new file mode 100644 index 00000000..debfb475 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/report_requirements.txt @@ -0,0 +1,2 @@ +pandas +tabulate \ No newline at end of file diff --git a/local/tests/create_cml_report.py b/local/tests/create_cml_report.py deleted file mode 100644 index 228b17a4..00000000 --- a/local/tests/create_cml_report.py +++ /dev/null @@ -1,14 +0,0 @@ -import os -import pandas as pd -import tabulate - -GCBM_template_path = os.path.join('..','..','GCBM') -docker_path = os.path.join('app','input','your_sim_name') -inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) -api_inputs = pd.DataFrame({"Data Files":[os.path.join('@','input','simulation_name',file) for file in inputs]}) -configs = os.listdir(os.path.join(GCBM_template_path,'config')) -api_configs = pd.DataFrame({"Config files":[os.path.join('@','input','simulation_name',file) for file in configs]}) -with open(os.path.join('..','rest_api_gcbm',"GCBM_summary.txt"),'w') as outfile: - outfile.write(api_inputs.to_markdown(index=False)+'\n\n') - outfile.write(api_configs.to_markdown(index=False)+'\n\n') - From 056c048b453af6a119bba9774085471de8730122 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Wed, 25 May 2022 17:59:52 +0300 Subject: [PATCH 038/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 38 +++++++++++++++++--------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index d8ca9a4d..4ac8d705 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -3,23 +3,25 @@ on: [push] jobs: sim-summary: runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v2 - - - uses: iterative/setup-cml@v1 + - name: Checkout Repository + uses: actions/checkout@v2 - - uses: actions/setup-python@v3 - with: - python-version: '3.x' - architecture: 'x64' - - - name: Publish report - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - cd local/rest_api_gcbm - python create_cml_report.py - echo "## GCBM model" > report.md - cat *_summary.txt >> report.md - cml-send-comment report.md \ No newline at end of file + - name: Setup cml + uses: iterative/setup-cml@v1 + - name: Setup python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Publish report + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + python -m pip install --upgrade pip + cd local/rest_api_gcbm/cml_report + pip install report_requirements.txt + python create_cml_report.py + echo "## GCBM Model" > report.md + cat GCBM_summary.txt >> report.md + cml-send-comment report.md From 08f8673793c4a62ecf587633e6b875d9d878a816 Mon Sep 17 00:00:00 2001 From: radistoubalidis <72709550+radistoubalidis@users.noreply.github.com> Date: Wed, 25 May 2022 18:08:46 +0300 Subject: [PATCH 039/196] Update cml-report.yml --- .github/workflows/cml-report.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4ac8d705..25fac3d1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -20,7 +20,8 @@ jobs: run: | python -m pip install --upgrade pip cd local/rest_api_gcbm/cml_report - pip install report_requirements.txt + pip install pandas + pip install tabulate python create_cml_report.py echo "## GCBM Model" > report.md cat GCBM_summary.txt >> report.md From 050998440b313f3745a92e30c800c08a7b084ebe Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 25 May 2022 18:44:48 +0300 Subject: [PATCH 040/196] run model summary --- .../rest_api_gcbm/cml_report/GCBM_summary.txt | 42 ------------------- .../cml_report/create_cml_report.py | 1 - .../cml_report/report_requirements.txt | 2 - 3 files changed, 45 deletions(-) delete mode 100644 local/rest_api_gcbm/cml_report/GCBM_summary.txt delete mode 100644 local/rest_api_gcbm/cml_report/report_requirements.txt diff --git a/local/rest_api_gcbm/cml_report/GCBM_summary.txt b/local/rest_api_gcbm/cml_report/GCBM_summary.txt deleted file mode 100644 index 44b8d0cc..00000000 --- a/local/rest_api_gcbm/cml_report/GCBM_summary.txt +++ /dev/null @@ -1,42 +0,0 @@ -| Data Files | -|:----------------------------------| -| bounding_box.tiff | -| Classifier1_moja.json | -| Classifier1_moja.tiff | -| Classifier2_moja.json | -| Classifier2_moja.tiff | -| disturbances_2011_moja.json | -| disturbances_2011_moja.tiff | -| disturbances_2012_moja.json | -| disturbances_2012_moja.tiff | -| disturbances_2013_moja.json | -| disturbances_2013_moja.tiff | -| disturbances_2014_moja.json | -| disturbances_2014_moja.tiff | -| disturbances_2015_moja.json | -| disturbances_2015_moja.tiff | -| disturbances_2016_moja.json | -| disturbances_2016_moja.tiff | -| disturbances_2018_moja.json | -| disturbances_2018_moja.tiff | -| initial_age_moja.json | -| initial_age_moja.tiff | -| mean_annual_temperature_moja.json | -| mean_annual_temperature_moja.tiff | -| study_area.json | - -| Config files | -|:------------------------| -| gcbm_config.cfg | -| internal_variables.json | -| localdomain.json | -| logging.conf | -| modules_cbm.json | -| modules_output.json | -| output | -| pools_cbm.json | -| provider_config.json | -| spinup.json | -| variables.json | - -Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation. \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index 352785b9..d61f4afd 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -3,7 +3,6 @@ import pandas as pd import tabulate import zipfile -import glob # Unzip file zip = os.path.join('..','..','..','GCBM_Demo_Run.zip') diff --git a/local/rest_api_gcbm/cml_report/report_requirements.txt b/local/rest_api_gcbm/cml_report/report_requirements.txt deleted file mode 100644 index debfb475..00000000 --- a/local/rest_api_gcbm/cml_report/report_requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -pandas -tabulate \ No newline at end of file From 3dc01e997733e93923fb8af87176f04133f1633e Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 25 May 2022 19:13:26 +0300 Subject: [PATCH 041/196] add sim start and end dates --- GCBM/config/gcbm_config.cfg | 7 - GCBM/config/internal_variables.json | 34 - GCBM/config/localdomain.json | 31 - GCBM/config/logging.conf | 17 - GCBM/config/modules_cbm.json | 65 -- GCBM/config/modules_output.json | 816 ------------------ GCBM/config/pools_cbm.json | 34 - GCBM/config/provider_config.json | 75 -- GCBM/config/spinup.json | 56 -- GCBM/config/variables.json | 257 ------ GCBM/input_database/gcbm_input.db | Bin 1482752 -> 0 bytes GCBM/layers/tiled/Classifier1_moja.json | 21 - GCBM/layers/tiled/Classifier1_moja.tiff | Bin 26867 -> 0 bytes GCBM/layers/tiled/Classifier2_moja.json | 17 - GCBM/layers/tiled/Classifier2_moja.tiff | Bin 26750 -> 0 bytes GCBM/layers/tiled/bounding_box.tiff | Bin 1390 -> 0 bytes GCBM/layers/tiled/disturbances_2011_moja.json | 18 - GCBM/layers/tiled/disturbances_2011_moja.tiff | Bin 26412 -> 0 bytes GCBM/layers/tiled/disturbances_2012_moja.json | 18 - GCBM/layers/tiled/disturbances_2012_moja.tiff | Bin 26429 -> 0 bytes GCBM/layers/tiled/disturbances_2013_moja.json | 23 - GCBM/layers/tiled/disturbances_2013_moja.tiff | Bin 26414 -> 0 bytes GCBM/layers/tiled/disturbances_2014_moja.json | 18 - GCBM/layers/tiled/disturbances_2014_moja.tiff | Bin 26302 -> 0 bytes GCBM/layers/tiled/disturbances_2015_moja.json | 18 - GCBM/layers/tiled/disturbances_2015_moja.tiff | Bin 26331 -> 0 bytes GCBM/layers/tiled/disturbances_2016_moja.json | 18 - GCBM/layers/tiled/disturbances_2016_moja.tiff | Bin 26267 -> 0 bytes GCBM/layers/tiled/disturbances_2018_moja.json | 18 - GCBM/layers/tiled/disturbances_2018_moja.tiff | Bin 26282 -> 0 bytes GCBM/layers/tiled/initial_age_moja.json | 11 - GCBM/layers/tiled/initial_age_moja.tiff | Bin 43875 -> 0 bytes .../tiled/mean_annual_temperature_moja.json | 11 - .../tiled/mean_annual_temperature_moja.tiff | Bin 77865 -> 0 bytes GCBM/layers/tiled/study_area.json | 85 -- .../cml_report/create_cml_report.py | 13 +- 36 files changed, 11 insertions(+), 1670 deletions(-) delete mode 100644 GCBM/config/gcbm_config.cfg delete mode 100644 GCBM/config/internal_variables.json delete mode 100644 GCBM/config/localdomain.json delete mode 100644 GCBM/config/logging.conf delete mode 100644 GCBM/config/modules_cbm.json delete mode 100644 GCBM/config/modules_output.json delete mode 100644 GCBM/config/pools_cbm.json delete mode 100644 GCBM/config/provider_config.json delete mode 100644 GCBM/config/spinup.json delete mode 100644 GCBM/config/variables.json delete mode 100644 GCBM/input_database/gcbm_input.db delete mode 100644 GCBM/layers/tiled/Classifier1_moja.json delete mode 100644 GCBM/layers/tiled/Classifier1_moja.tiff delete mode 100644 GCBM/layers/tiled/Classifier2_moja.json delete mode 100644 GCBM/layers/tiled/Classifier2_moja.tiff delete mode 100644 GCBM/layers/tiled/bounding_box.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2011_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2011_moja.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2012_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2012_moja.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2013_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2013_moja.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2014_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2014_moja.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2015_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2015_moja.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2016_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2016_moja.tiff delete mode 100644 GCBM/layers/tiled/disturbances_2018_moja.json delete mode 100644 GCBM/layers/tiled/disturbances_2018_moja.tiff delete mode 100644 GCBM/layers/tiled/initial_age_moja.json delete mode 100644 GCBM/layers/tiled/initial_age_moja.tiff delete mode 100644 GCBM/layers/tiled/mean_annual_temperature_moja.json delete mode 100644 GCBM/layers/tiled/mean_annual_temperature_moja.tiff delete mode 100644 GCBM/layers/tiled/study_area.json diff --git a/GCBM/config/gcbm_config.cfg b/GCBM/config/gcbm_config.cfg deleted file mode 100644 index e6640ac9..00000000 --- a/GCBM/config/gcbm_config.cfg +++ /dev/null @@ -1,7 +0,0 @@ -config=localdomain.json -config=pools_cbm.json -config=modules_cbm.json -config=modules_output.json -config=spinup.json -config=variables.json -config=internal_variables.json diff --git a/GCBM/config/internal_variables.json b/GCBM/config/internal_variables.json deleted file mode 100644 index d9f71537..00000000 --- a/GCBM/config/internal_variables.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Variables": { - "spatialLocationInfo": { - "flintdata": { - "type": "SpatialLocationInfo", - "library": "internal.flint", - "settings": {} - } - }, - "simulateLandUnit": true, - "is_decaying": true, - "spinup_moss_only": false, - "run_peatland": false, - "peatlandId": -1, - "is_forest": true, - "run_moss": false, - "run_delay": false, - "landUnitBuildSuccess": true, - "regen_delay": 0, - "age": 0, - "tileIndex": 0, - "blockIndex": 0, - "cellIndex": 0, - "LandUnitId": -1, - "landUnitArea": 0, - "classifier_set": {}, - "localDomainId": 0, - "LocalDomainId": 1, - "age_class": 0, - "historic_land_class": "FL", - "current_land_class": "FL", - "unfccc_land_class": "UNFCCC_FL_R_FL" - } -} \ No newline at end of file diff --git a/GCBM/config/localdomain.json b/GCBM/config/localdomain.json deleted file mode 100644 index 5bb04f33..00000000 --- a/GCBM/config/localdomain.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Libraries": { - "moja.modules.cbm": "external", - "moja.modules.gdal": "external" - }, - "LocalDomain": { - "start_date": "2010/01/01", - "end_date": "2021/01/01", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "simulateLandUnit": "simulateLandUnit", - "sequencer_library": "moja.modules.cbm", - "sequencer": "CBMSequencer", - "timing": "annual", - "type": "spatial_tiled", - "landscape": { - "provider": "RasterTiled", - "num_threads": 4, - "tiles": [ - { - "x": -106, - "y": 55, - "index": 12674 - } - ], - "x_pixels": 4000, - "y_pixels": 4000, - "tile_size_x": 1.0, - "tile_size_y": 1.0 - } - } -} \ No newline at end of file diff --git a/GCBM/config/logging.conf b/GCBM/config/logging.conf deleted file mode 100644 index a2c0b8e0..00000000 --- a/GCBM/config/logging.conf +++ /dev/null @@ -1,17 +0,0 @@ -[Core] -DisableLogging=false - -[Sinks.console] -Destination=Console -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= info" - -[Sinks.file] -Destination=TextFile -FileName="..\\output\\logs\\Moja_Debug.log" -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= debug" diff --git a/GCBM/config/modules_cbm.json b/GCBM/config/modules_cbm.json deleted file mode 100644 index 5be43b01..00000000 --- a/GCBM/config/modules_cbm.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "Modules": { - "CBMBuildLandUnitModule": { - "order": 1, - "library": "moja.modules.cbm" - }, - "CBMSequencer": { - "order": 2, - "library": "moja.modules.cbm" - }, - "CBMDisturbanceListener": { - "enabled": true, - "order": 3, - "library": "moja.modules.cbm", - "settings": { - "vars": [ - "disturbances_2012", - "disturbances_2011", - "disturbances_2015", - "disturbances_2016", - "disturbances_2018", - "disturbances_2014", - "disturbances_2013" - ] - } - }, - "CBMDisturbanceEventModule": { - "enabled": true, - "order": 4, - "library": "moja.modules.cbm" - }, - "CBMTransitionRulesModule": { - "enabled": true, - "order": 5, - "library": "moja.modules.cbm" - }, - "CBMLandClassTransitionModule": { - "enabled": true, - "order": 6, - "library": "moja.modules.cbm" - }, - "CBMGrowthModule": { - "enabled": true, - "order": 7, - "library": "moja.modules.cbm" - }, - "CBMDecayModule": { - "enabled": true, - "order": 8, - "library": "moja.modules.cbm", - "settings": { - "extra_decay_removals": false - } - }, - "CBMAgeIndicators": { - "enabled": true, - "order": 9, - "library": "moja.modules.cbm" - }, - "TransactionManagerAfterSubmitModule": { - "order": 10, - "library": "internal.flint" - } - } -} \ No newline at end of file diff --git a/GCBM/config/modules_output.json b/GCBM/config/modules_output.json deleted file mode 100644 index 717f648b..00000000 --- a/GCBM/config/modules_output.json +++ /dev/null @@ -1,816 +0,0 @@ -{ - "Modules": { - "WriteVariableGeotiff": { - "enabled": true, - "order": 11, - "library": "moja.modules.gdal", - "settings": { - "items": [ - { - "data_name": "Age", - "enabled": true, - "variable_data_type": "Int16", - "on_notification": "OutputStep", - "variable_name": "age" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther" - ], - "data_name": "AG_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Total_Ecosystem_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "data_name": "Total_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Dead_Organic_Matter_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "BelowGroundVeryFastSoil", - "BelowGroundSlowSoil" - ], - "data_name": "Soil_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - "data_name": "NPP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ], - "flux_source": "annual_process" - } - ], - "data_name": "NEP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "flux_source": "annual_process", - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "Decomp_Releases", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "NBP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - } - ], - "data_name": "Delta_Total_Ecosystem", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - } - ], - "data_name": "Delta_Total_Biomass", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO", - "Products" - ] - } - ], - "data_name": "Delta_Total_DOM", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ] - }, - "data_name": "Total_Biomass_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_DOM_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO2_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CH4" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CH4_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ] - } - ], - "data_name": "Ecosystem_Removals", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Bio_To_DOM_From_Disturbances", - "enabled": true, - "on_notification": "OutputStep" - } - ], - "output_path": "..\\output" - } - }, - "CBMAggregatorLandUnitData": { - "enabled": true, - "order": 12, - "library": "moja.modules.cbm", - "settings": { - "reporting_classifier_set": "reporting_classifiers" - } - }, - "CBMAggregatorSQLiteWriter": { - "enabled": true, - "order": 13, - "library": "moja.modules.cbm", - "settings": { - "databasename": "..\\output\\gcbm_output.db" - } - } - } -} \ No newline at end of file diff --git a/GCBM/config/pools_cbm.json b/GCBM/config/pools_cbm.json deleted file mode 100644 index 35979d38..00000000 --- a/GCBM/config/pools_cbm.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Pools": { - "AboveGroundFastSoil": 0.0, - "AboveGroundSlowSoil": 0.0, - "AboveGroundVeryFastSoil": 0.0, - "Atmosphere": 0.0, - "BelowGroundFastSoil": 0.0, - "BelowGroundSlowSoil": 0.0, - "BelowGroundVeryFastSoil": 0.0, - "BlackCarbon": 0.0, - "CH4": 0.0, - "CO": 0.0, - "CO2": 0.0, - "DissolvedOrganicCarbon": 0.0, - "HardwoodBranchSnag": 0.0, - "HardwoodCoarseRoots": 0.0, - "HardwoodFineRoots": 0.0, - "HardwoodFoliage": 0.0, - "HardwoodMerch": 0.0, - "HardwoodOther": 0.0, - "HardwoodStemSnag": 0.0, - "MediumSoil": 0.0, - "NO2": 0.0, - "Peat": 0.0, - "Products": 0.0, - "SoftwoodBranchSnag": 0.0, - "SoftwoodCoarseRoots": 0.0, - "SoftwoodFineRoots": 0.0, - "SoftwoodFoliage": 0.0, - "SoftwoodMerch": 0.0, - "SoftwoodOther": 0.0, - "SoftwoodStemSnag": 0.0 - } -} \ No newline at end of file diff --git a/GCBM/config/provider_config.json b/GCBM/config/provider_config.json deleted file mode 100644 index 434faca4..00000000 --- a/GCBM/config/provider_config.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "Providers": { - "SQLite": { - "path": "../input_database/gcbm_input.db", - "type": "SQLite" - }, - "RasterTiled": { - "layers": [ - { - "name": "disturbances_2012", - "layer_path": "../layers/tiled/disturbances_2012_moja.tiff", - "layer_prefix": "disturbances_2012_moja" - }, - { - "name": "disturbances_2011", - "layer_path": "../layers/tiled/disturbances_2011_moja.tiff", - "layer_prefix": "disturbances_2011_moja" - }, - { - "name": "disturbances_2015", - "layer_path": "../layers/tiled/disturbances_2015_moja.tiff", - "layer_prefix": "disturbances_2015_moja" - }, - { - "name": "disturbances_2014", - "layer_path": "../layers/tiled/disturbances_2014_moja.tiff", - "layer_prefix": "disturbances_2014_moja" - }, - { - "name": "disturbances_2018", - "layer_path": "../layers/tiled/disturbances_2018_moja.tiff", - "layer_prefix": "disturbances_2018_moja" - }, - { - "name": "disturbances_2016", - "layer_path": "../layers/tiled/disturbances_2016_moja.tiff", - "layer_prefix": "disturbances_2016_moja" - }, - { - "name": "Classifier2", - "layer_path": "../layers/tiled/Classifier2_moja.tiff", - "layer_prefix": "Classifier2_moja" - }, - { - "name": "initial_age", - "layer_path": "../layers/tiled/initial_age_moja.tiff", - "layer_prefix": "initial_age_moja" - }, - { - "name": "mean_annual_temperature", - "layer_path": "../layers/tiled/mean_annual_temperature_moja.tiff", - "layer_prefix": "mean_annual_temperature_moja" - }, - { - "name": "Classifier1", - "layer_path": "../layers/tiled/Classifier1_moja.tiff", - "layer_prefix": "Classifier1_moja" - }, - { - "name": "disturbances_2013", - "layer_path": "../layers/tiled/disturbances_2013_moja.tiff", - "layer_prefix": "disturbances_2013_moja" - } - ], - "blockLonSize": 0.1, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025, - "blockLatSize": 0.1, - "type": "RasterTiledGDAL", - "library": "moja.modules.gdal" - } - } -} \ No newline at end of file diff --git a/GCBM/config/spinup.json b/GCBM/config/spinup.json deleted file mode 100644 index 1365b141..00000000 --- a/GCBM/config/spinup.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "Spinup": { - "enabled": true, - "sequencer_library": "moja.modules.cbm", - "simulateLandUnit": "simulateLandUnit", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "sequencer": "CBMSpinupSequencer" - }, - "SpinupVariables": { - "delay": 0, - "minimum_rotation": 10, - "run_delay": false - }, - "Variables": { - "spinup_parameters": { - "transform": { - "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - } - }, - "SpinupModules": { - "CBMSpinupSequencer": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 1 - }, - "CBMBuildLandUnitModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 2 - }, - "CBMGrowthModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 3 - }, - "CBMDecayModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 4 - }, - "TransactionManagerAfterSubmitModule": { - "create_new": true, - "library": "internal.flint", - "order": 5 - }, - "CBMSpinupDisturbanceModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 6 - } - } -} \ No newline at end of file diff --git a/GCBM/config/variables.json b/GCBM/config/variables.json deleted file mode 100644 index f2d8bc2f..00000000 --- a/GCBM/config/variables.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "Variables": { - "enable_peatland": false, - "enable_moss": false, - "admin_boundary": "British Columbia", - "eco_boundary": "Taiga Plains", - "initial_age": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "initial_age" - } - }, - "initial_historic_land_class": "FL", - "initial_current_land_class": "FL", - "age_class_range": 20, - "age_maximum": 300, - "slow_ag_to_bg_mixing_rate": 0.006, - "disturbance_matrices": { - "transform": { - "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "softwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "reporting_classifiers": { - "transform": { - "allow_nulls": true, - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "classifier_set" - ] - } - }, - "land_class_transitions": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rules": { - "transform": { - "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_matches": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "TransitionRuleTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "spatial_unit_id": { - "transform": { - "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "hardwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "turnover_rates": { - "transform": { - "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbance_type_codes": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_classifiers": { - "transform": { - "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "initial_classifier_set": { - "transform": { - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "Classifier2", - "Classifier1" - ] - } - }, - "disturbance_matrix_associations": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "other_to_branch_snag_split": { - "transform": { - "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "growth_curve_id": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "GrowthCurveTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "volume_to_biomass_parameters": { - "transform": { - "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "spu": { - "transform": { - "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "land_class_data": { - "transform": { - "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "mean_annual_temperature": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "mean_annual_temperature" - } - }, - "decay_parameters": { - "transform": { - "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbances_2012": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2012" - } - }, - "disturbances_2011": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2011" - } - }, - "disturbances_2015": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2015" - } - }, - "disturbances_2014": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2014" - } - }, - "disturbances_2018": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2018" - } - }, - "disturbances_2016": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2016" - } - }, - "Classifier2": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier2" - } - }, - "Classifier1": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier1" - } - }, - "disturbances_2013": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2013" - } - } - } -} \ No newline at end of file diff --git a/GCBM/input_database/gcbm_input.db b/GCBM/input_database/gcbm_input.db deleted file mode 100644 index 9fd320de52359b38fdc8d51fb452467448e812ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482752 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

V 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 z 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%0AnPD5Y_Gt(nO=kXfU)AY{2ciafa{ zBy#5rR5`$~!Q!)wZv8&-87sQ2MK0Rsm8af)h?3$X$0#PsfKDXUBbM_3Wn@b@-|X9q zYU4F*z(b2<>Q42P@#-#zAtUKwq1u)HP|&4VdB0@@1V5KQXQ-JEjvp!Geqx@$`xNky z8zc*8c=EEg-M)dB-m1lWZsowG?+W8pd-lZ}S4AjPhvU<1y}kk8tnv#shoD9>HUOwL zyBnUSpM+91I;feFV3Oic1qmZ>lLBKT_8bl9_8qwphklh%RNj#m=X;m*wZQpHEEGJ*Qvj@%3!AKmu|j#ZwcL(J>fqQ*(~4{jxYfzk(b z?g*5vyJk06@feTuC~iW^=X9j)EdKg+VH{wsV|SAo8EJNovjB44*PQ#%ZZbGx!xq)2 zoxpWdmQ}&HB8VcM!wTmi;1-GLC<8mz2mQhF%Tf66Y|Y^+H7#e091R@Sy~+I?*6WkM znK9MRFqFi+ptS2G$>R&ysTyka7=MWB@Rk0et>uYr8{grRe-9AQ@f(Vmyg>|^+o7t; zostrF5FF{XSUHzR{F3iNo8`RO$uHMK4n_bWHHH4aH zZSSS;`YJ3&h9@CK(@K!3m3r>n1uG1IAgyB3%_eZ-^-U!fg+E8a7L=q>HWsN9> z`JBO~q8Ia4wc|%_I+S}4$Pr$vlwA+cTlfc7t=jOD& zo52ZZ*KA3O0I%eem_o1|cr0z@39ZsSfFD7dKkE^2=*0mP%_{NJ$k10N1uCx5%k__a z1ZG@?rZ=Gl8Z~4v;Re7b@e+FFl+HZc`n=6&QCXV1HjbD9{&^KlceJNE;kYMmd@}kT zQ1$l4a~m{e$p}@e!>8Z^i2~aBnJ0DzrzoAch1TcZc)WFi1q5V2Ioi)`HjiUSn<=2R zDLcj-(whUXnW6)}`jb4Slg-Xgxg_^##3jgQMbaLZ>*0B71GuqGa?egH#@(npilxLf zT@&2tv!(~U?kw48p!Wcu;qpyTTbTd-eNcZex%%Hjm1~09;;ItM|2>Hyz=wo-N-;H3 zfbD$VzCjglyF{-{k%BTe!o?X#^|EDX4t0HL<1J+V@Kj*dAs)QHPIJL{QiS(6A{!ms z_vYHPo>=*H=g9Q+2TXXJc(22I?AD?qT~@2dom$acA~q47H>olnP}y{fmjUEko4+iY zG8%mMyAl!`c-E7m62H5qWqKORc;K4w_Vq(79Cu>_rEO!;bi; zQ=z2Bv zz))fGJCi!J@bR?{J?>PaFhZCRfiq9h{NXonNgcPN z{D~I?I+(W~eRHDt{x?Keq(soN0#I@~VnP3CcO$47KG|6^#;-;oTyMqB6^;2I=NdEr*W%ziep|)9ZFCe2<=4sWm%S+STAC*nCs`=bDA7S&POJw< zt9ky9J3#$~b$~KY(sN}fU6_O?sMVC(c!TeF6oB%l&;l+fYWsz#X();IwEsT(juW$= z6icAK8$U%lDl9`s8I2CABLXC^T<&D&UKWoA5_93>^v_T!`zFPVc36?s%t*|YD z{DX1h%8w>dy{vakyn3?-su}q**lqG6GLtXOr)!?O`+7QKRS(DqJm0@SWm(p_)LB&R5c8bk$&ue$_htcHSu!>{m2h$3m>VW zKqiy{RoRpOydBNa&*-bsXB>Khg9b+V*rI4d+CCI5wi)IeIYJ6W<8co*JcfMY$Nx2g zI(CJbtfgPOvuJU>IpnibC={aq4ttBk2m2K3Z@V&q$Ey3B?sHGv3M5@oe27E>uNe$b+ZQ~>}ZB+BEU|eC!QV?Lf(^cQ6Q5+K1 z;9G-=$>65?8;sPrTB$oQ6?rln95S#2H1=FY)1*&|duyygUzjifRDFvWhAW{fmdnbw zbq|2(LXA7G#z#X0ZS24C4{vm$eS2dM`NT(cQV#gw31pX-TOf#pLr@tI`${FfSBHM^ zwjryd;yYdNvs)`YE-t6ZLKZ{q-2}CTTKeyU`lAi}{~D^MaHtdcd%I9j+Vy+)7xqrn zT&5R}YKXbB(Nz$bkq(gurNpvvO7NUf>trXOOzVxhEet{-IBBD_L>DD%+s|;3c7qXN z4n4ZwACG*ZNL-0Os%IdeF=O`?L>62@K@2AXf*9Ldifd0NU_d%am3EDV9OEhXck1)O zPw8;g(PtB&iA5Ai-Zzi;5JIv=wyXe$p*_A%XrloS=p0}RysEvLptiVyiRn2y2_=G^ zJfDV(l$_HRLTW*U=LxH35AfgVZl1Mt7c_Ryy%RflA}SGo*vUa{3ydmjJU78T0EN-s z`m<5&BqK1ZOa|4ZTb4e2cM`?umv}Bs@daKXa( z;bm_+<_$yb*#x!44g7aOWukfiG^ne%8Z6Wn#}SzZOBx&xMSwslJ!*2%SPCX@{^X$K zg$llR^ohGO9kMT7Uiq?5A9>X9U`rb3^;cwYdOC074kL6|;nJcyw_B(#_*hn>U_5Ab zz3}yLzwgLy?N;4K4Z5i6#szDoHMh}>==LjKeHKT)9mi|tPq;>DTyyu3Fz8I}k^X)y zph_QdHm>=;1CM_4VlHju8}h;9zWP=Nz8g5FJG7nUPzj!U4vbfO1K{~u^Mu^g_26wY z+w`7(G}zf0j@}jLGAv}h5Bc& zs+v%!+PQmol!!ygjMek1bJQqUceWwRyb_gK1l^v0rxEzmJDooHVLH`ox$~{;2w7C~ zy7s8jgrsIVto=ydlsD(R(0P>w3SE_Vqu!hil3|_iqKNh<@9DJo#%m3ZjSc|MstfLqWD6m3%C^fYD&gR) zHOpk>4t)IcVS8jp>d2kes7QJJGsBZ&sGpZ}ziYRTprEQ@ zzU$1rA^k1ymO^h0q|c_Rr@a`71GrQmmaPc4tYhv0$utdV4CImst9?=6Ob8S0i~%*Y zT~WPoIrtDBi@~er7_T@|Otmoq2by^?2}A8F94c+f|LaiMAcmiyvV6%upptR?M5NE! zWdB7_F;z>o32F<2GRS1z^!bx#=M|b9r?e^*aKzzhRFb^H^whfRP(X|qRz9Gl=IWJW z#?V?+{X9g%-~J&KmE-ThsxDBAc~+R5iz<4&jl0Bq3mu$qzgl&9JaWM?K6@pm^4c$; zGtbcadz!A-hiF0uDRS+;@;WeVX0(ynHjrjeV46H_6F!>%{k+OQWB>8Y)DkFQFB}1c zY1btWd{0IPxn24UkJ)s#7c?7J9d4VOi}kr(0=H@%My!jujhDMi(=%xCX#SDYt~q}7 z$M$j3=Q{hz}TtEO*< zEj$`L`4^2VG3SM~96K`p54U0RuQ1gA8&_h^bKyNP5m9+?ZZ<=0p#sILE*iIg&a-By zEx*fu7t}xZ_Ro3R8mJ<1`{z7qhT8H5{=2Tkf9~y{^SBvm%NzLbg8Jv){yC3?51D@V z+ds#qc{%^f&i%Wt#DD5Nk@K(_>VMg}e;3q$ucrT(jSkL(e=^iRcUAAV0;*`-{yFzr z0aY|^|D3z6fhrQWf6g7@ELl;%{c~=&V!1`*_RqN`FaMRJEVhcw{|74em8+C%E8AB_ zM|!x_U`aiRMdF(bPIAL!TX=SEV>(l+vux{!}&RMgOuGt|72KMkq^AJp zbK~E=>~RZ4O43f`C<~9LyIUb-=;o9c<8Fw8X6#YBseBMsRGeEd#;p#mS}rlB<2pYS z-lW^kA=#a?s10R|_AgU1Zr-)Aja)hJTLIObFo>+6gv5|`?K=ulux!pNf*sJ3R!|8KZdvY9F z0hQGRmrN%C*D=(XGFq_9lXk;mMypsTtq8^JpQli@WjX2oqwj?uval8nO}Fq-JWy~P zUa{%4xs$a8qdq?Z6GzQ=#%10pZ6_Hur$RdO2w}|x{pVXg>_nLsGw-<^J4dydOGM1w zsa<=Sq52m(I$|W`u=-sGIyHVTxF;P@7^m77V!A#gJqPe*^SMKqq!Dn&iffz+z_D+| zrxAN>;Fl8kw6c7FPz^JxlXWLXAs|pQ82oJiUMTx`&3~$&BEmBXqr4%H(B!sh4GZ?g zAt#zeqKzuM(E4g*xQ3hpIPJM^nA8hdJ}ROODQ2Q|l`9qIv`t2y8j07iuX8gqX75GD zPa@-aFWoL1k3zmqpKT3oSAsVq3jlMejKtQH_b-q+P8S)m#gFSXbQL@d0 z_3`f$lMjDHDF-KqdJVb`JPozD+I!<*+J-lm{WA4YBrR@Lg92t!gC>8`x|zcHin6B> zW}zt*v1Z;@7a4>0xa_$$^9&GVx2NVjedz=Kj+d{j?WP63SnGu$Q)f6kA(n1k(*I#|TD1dCe zk3Bc9HbSw4sAcgGCEurGyV3D>#hX4IABCLeDPnl!?vYyuwxNxc^w13ft+eIR8?H z;SUKWQ2p8UoT1{%^9$PkT+h)UZT_X6Bc=^LXcha3_^awUCt;5YzbOgNw#Th~3H&ks z(I>C_H)k1CpNNYeS{?@l4yGe^E`CID_|hk?g*-xn>Dk8($LxcVXQsemi%1lFpR>rU zLk1Ks2>Gb|=@saeZx5X`<}ymre0A-r%`zxGSLN_=?J1y$i@w?tl%-THv&8)~rRj3T ztlZm~I(g%p!^pNakfb;-CSq?EZ{&X_i! zmEkiUVFMa;hE&^fuOXc-dW@(8x`Yy~4q1zdmDC{2vm>;oHsHflHNYb*yEUc|NW2`Z z^Wn|LVOy=Q-2oRmP(vPGtWnC3Qa0k)wqm(OgY?aL*$SwlGT|ote-+Mkj#7hStzxG( zgA^$F(Q+eXr^qam-Y#`qa=*kj@nd2~@GtoP`Gffv+CupkH8d9l1hUJzEI4zI(&o`d zc&NG$w)R@=1p@kY8B56yBCHu%NFg-V2@hdMzv-pfN%AO@gn2}IqC$LoGWfm%ZKn%e zRj^}j3Fvzl@|i!3&bB8mC-o4`y+wKj)R1V*IG>wFt-aU33M)7v)mcHgpXYGMrte$o z;7h#i4mg4*$*Y<348mzXcpC_&Ns3C~%Q!NDEn||0={94Vp#InJNRu z-@Ofpy*LLl5Ptyn#|sT2-Uh@+`GBTXZt*A=@xBgo|Hm8vGXIA*3lyfy>&nfS-5_Hn zeMRbmd;QgOB_{SqT7%lKZd3PA!nR??|C!=^6$`MVpz-g2%|5zg0PE?8)}$9 zo3=Mev5~(at!@V&;$pn@7R43uRhfMVj~PpLq7H;Y{tdfwp4Wxg5N z3-|C#cVS25ibs?f&e~Nk&q3cm{ZHVrbBIv3tNI?#D6u^>hB`$!)KkPOy9p{KUPRl5qoh+c ztDh@QhFsFl8CDG6SZ9i6sLwV!SaRS01hqFis`wG=U_8dswx9VILY>?MwFRy$WYPO| zG6)#E18VXNY$>2vg38u2t*~6$cy<8Q-hz&i=83(a(*w|U{ju*WopwN2*VLCcO;_?{ z66j}x_VWuCPgQykNkphU+?FRhI$Xh}#0>3;y?@~O#&h8QF?gin?J3k?EyBY{p*HSh z#*?|%WAp1dA0XcfO~VTdK40fyE=fEf`J6F^J^F$dV@3{cie%gMf@dD@yL7ZU09W%n z5E&R=)k#fITYOjlHmLNl<(*aQn(#HDJz~7R+d&eu^FjaJk}Zc#mZML^dqC#` zD!@ti>z~bo`IC;Uxx|k|33W@pw(IH)Sq8N22X#rDjH4|ek??{hU4{%Vu_s%HzK0L2 z2a5+`j_CVCB28`3gy=am=LB3o&Rh{@S_W_EWE2&=-1<$=pvC3J`=-yaD&RAQ9@LOj zOxzf^1eK00P_ErE6^gNu{GtB6DWz%jZ;i@W>wPNae%ywGKIj9E3t4TZiE1#T3LA64 z1Uu7V`}LIJ!&XV&(w>qinKx|MElUopvbx-7QPcyR%JOpP$>@)e&d@NZi_>XxKV&e_ zAz4m5l@sL(zHByy=d}_0!{*e2PZkFUBAtfVeP$trmWLparH%QFXj|$xs~d)@ClqRL z6XQg4b12!qwz%MNAl1$4Op<$*F)E)%2x|jCz&PwvO1&5_mYUw2`j^(5Q15kZqc1HR zj9x9fL8wEJs;6Koe|bL45!(?MSUU&BNm+HqrvJ!=t=K0w_?+yqIR+)t;`w5r0YiA?=squGGN(>F@S#pM~=LD=Hhb^`XGacEEu$7pkL1LT$jU4yY=4 zX>K1=Gu>MI*F!s9VT@UHQsaR20^e;KmkQDz(7&?wt@;awup*~ zirs-?fZeUAU?3KvbjLcBgc5>Cigb5_h;OaE56-KxBW)&PBJ;?*wLHd zz3%kJaO}hrzbD&oqnIo_+1Og6YnhCp0#B$CdIq=VoP|n{!gu{v6+%^Je@lI*_TXuj zmvcv5)P>Vxb~W=p9>hi@gUYH)gi-y=cdyLtCxH0;;8purE0Kq3_5G|$9po?Mq^Eho z5_-^$bOZF^$Wj-%qiaw}&a~C19^Z!k9y^A68PuSRNsDV76`d$UZ{=ChJBz5Bz59$l zWpN(zRT^bft}8)N+fko|{MNwPsBCg(TLk{RMRw@^ix74A(xf@JM8Mx}*V|<+QQ)+= z*x`C&23!vl-CR_^&_>u=uLJ6D_lAG_732}q1U1ZwV&W1g&HIyuqh_r_`GZ^gO4J;O zwBuv2^T-5B{+Sl$g^i$8d&}U?buB7dK`d;hK+$v(Rg?-X_w!@-UbjRoRYQp@3h-}` zGEOvkg#t*bN9Gw+$&J<6_vrB0p(n?qFSQ%|jV7H(wcOm84b?(~{E1ST2ZidPNADTb zfd>o|t`K*1FkcLc;==oXa8QB(E;-PHkS*pKV~Ug__WIcb0hS9A$CTXzU(14r!(JwW zd;f*8pSKI*p_t5jD5fi63eV3Uiam#BDf#htVJPOO=M_f4hFYbq&L2+wRYQRvfJq%g z(diD(uUJ}Z9Ex}FbB_iuSVYM(c~+?EOPtpH^n9qq79VH*4pJ8?j47j0+$7JRm@Qq&3Ke6z@4?$W zDY;C#ZATqqj-3gP-Z>V5k#$LZ#mgz5YB@JAZGZq;r3OYQ(%${srnnObrf(4o=`-2UWKN zYNsbo^13^l2bHt~%6@9_EfQcMhZ--A33=gc3RMN?wd;-KC{`MwM|h*UH#FM;hH-=5 zd`Q}seGRJJy!XiQRjW}S>HA0b4}OYJP&^JBn~V}kSlNMlFmFXcTE4_dlsDkA+3`Kg zAZ0pn9@s#g`ff_57jhaEc5BZ*0Y&I7p5H4FD(XZC;}C++8B>%^A#|^X{n?36z?b-a zMc6>tOJdM;1a6Brq@3;Hj%Rg32h>g%@ZSY>*4yV*_U=Cms+gD>=Knje823L>U6Fah z=0eK_=L)RjKgf3py8+IYmdAhW^Iy1=|6jg^m>Ro^ew+OMFpPg{9twgy>_pKG?s=@Y zKgcMZJal~B<(|ii_yM((hYmyS9;abeNLQeCi_yA<21}dHayin|0AbiR&ZB_ z;(y{a%nItl1JFHA!>qtAK1`~Pf7(*M_zoR0JUc8Z-6y@&n(F9}uSVrW6)dK+SX;<^b?Hsk_|K%0@_qNpNmq6X9(iq<<@`rJ*$(xp=g0tBQ0) z4O)KQJ8q0ai~QbM7zTTzFq&jA9I~16_Ya9&K6ahQ-vLU-XY{FR zY*i1z#1M1o4e%i9{}wmkaDT4H^p7uyOJGYohN6>K*`FPXe=OA1)=Pd5^>>^o$YaXX zP)Q_}n?j+T;q9V&3yaZjSwo?E1T(s|v@X&JRo|M8Nq2CY9<~4 z`B$6lyqvX|!+uY51CjZav~S~@@{tEO47QC9PFPFr6e5NMVvx5iR@ud&8VZRG{mgd| zahZgZ$3U=kIdS-h2-@Ft8HAAR?B(adIe1NcyX!ud3G9;AgA+ZU6Rs z2zoa3jY#|)c&`QfcFx)YAu4+N$0k(3`)^m2vo5@X*W0zwp81!o&8!y@sH9@p>B7Z* zX}9pvP<1pvcbg%fIcj5iP*6Q2J31|CIwhJ<1hAV?3z^k|Iy7Z_(Clv_$;gewTl9T| z>I8S+A0jOWx->yzFS0WU-{pC5DryiW1erQCmfM3$okx3r!#8f$+i^3d>yS^n)YB$F zAra#nFNeUjkG&#e&x0GCin0I!t4X{$k+`~{n1j~_!NBdn&Tr_udm$j|pZoLM~z z3LFfHwE+ZhRn3019&!sr<4{}NN`VN*wE>43n>#Om@DMYhFpoX#MK-Jvzgn?Ys=x}bNKmzs@S*YF{rg3L4<(O1b>hfra z#PxO@%l<=V`o-ey^~PciYW`u8J~E#=`-1zBa&-$ueB+3{0t6EF%AA+ri`Cu7F1~=b zv~p}Bgm4KEzN=P~d4?B^1QU}#j60zIzTVA!SRs!gQb8r-U_y;orWX_{UGPHx_*r8p zKtx=Al^Q@=nTpQlsHOPKi%)ZoL6xj6A@M*n$%^h*h1#Cpt+3h=gjAWI5qTO|;Y^k% zs6Au&97@##O(XkP<4r^-scf=E-+P|K{T%jac|o1*&8+M~ zy3w*4O1ZD4j%0Wb96YWt+7SHkx*uOP7TiK^cs#q%7re3ix60B@U{CBsl+$g5t><@) z!S6Pxj^9EaF6&F4oC6hf*i1jF-)q|Z0+rVr5s;YtfpaZ3l~aP3$j>Z5_20t?qMK^Y zpH5L42USE>uTlzi+H`gh$|0RWxuhSwme|x3d$EmcIpU9q{mXZ>VYK0};=o>z+l!_& zpp>h(F_9n-%(-vi6lU2$+!6tz8KibIa{@VYZVI1UGZ}Jqk2uYX(TAAoH-x$aX!zrS zt)Je(GwfZ1^JpMuaKezsU;H43ad7~Dl2y~|HD3AiI)uBG#!>SZfbk&8)-um?@eZbXxq?L{)UjBd%eRM~kM8!TSro4b+ z?ZVfMgJ)CsPY6XEimHdKsQo5WY}Z5a%a%87Bl>{vYty*T$!g$j#c^73MiAoNMSZ28 zZ2+|Wa`Wd$s_=HhieZrkN8pCsg&VgXO~X*rX`Cr#+md7?;p`Db2^}QI;(#dR6@c$l=Bmz&hCKP)mi1c!8pm+KEkIRlU-0n zAA3wF_KJEeE>}hW+*zH~0kx~M`d@?klV{b;dL|cYrztdfN0$$~7}gUiJ{6ZprS$vZ z`%r)StM&n*G^jTF@Kppf#Zc2Ymva$?-;rMH9kD&i7m%Crxz$(Pub}EJ>5|{7PN8LQ z$MW|Q_d;Gf(obynEJ3Bi2DWI-)s4zp(n~G$Dl{?P$nCCXx*M|6u-b6 zVpfK}Zlv>!kgjEW^uxY+=s6|?VvYl9M;Wt2=kG=f8D9tRXEM!D%NnbG>BfD*1aqXs ztX7~T^12>88Jfv^cBdn?_Xy(#Q^2K67jd(Fg9H-@FB7~&)sNd7EdYf5RkmEY4;=2- zdCC)uC|P)F)IuzDi2uI~dw2)`zvKSzA{;K{hwuL}{9pLK@{uo?`X34ayjt;p?#ld6 zy(h9#teMc(-!2xvyC&lP^sjwSWPR#F>8pF(6IsdDYjL>4f4C;%+5GoA)Gv2WWPR+y zbpAWWU-h2IO6oe)U;LiPO5|Om@9y_R)(0EjREz(Odm<~L3oE~S+!I;xKcIGUp}>3g z-*tKVx%Wg?+z+UoTqyoVs6Y2c!HWF>wac^mU%Nd01kTEfvc{lz+DE?tw zSW>;3=ZOvYo`Jp%3@CT ztt6}P&qE!%`?SHNh%{87GHglQeoILHP}aC%$w#VB&mo!@hgkn(p%!$ZV!`#Cs3d*r zhr!rpHiJ&gfa(FXKP*%e`|GkwRLxC!7+kwvB1Sd~g<&qsu*FpFBHo(wzlX~9{#kl&uZLH5K| z2%&pxir`DzZ%=_(EVsty(GW?39CTSf%9E}urJr8eHIS9x6^u;AM%OX6?H3O3^XQKl zxem#{VWfMWFhcEQ{oBIyzYJqu7nW@NYz>)Xf>3!?5Dgr^fzkAdZcyP zKB#9@0gi2_c`5MG&0)gfSs!48-;h^*>K~wt;};cLd!3^Oti58YJ1CC2aZ;(tY``4& z^6=E*6`PEqXzK{G@ZQfL&|u*GRM#UA_)R$LQPOLOP`i1(@9Nj!vsZsZ!M#+7wVbCh zb>9wf9X`dQG&O>i`{$vK+mMwKyR8>0^P1dKW^6W8^t$$OX5be}vG?|)id%R6W1;4B zp(=wd?y(LPDoJ|DLUl@KgkkaX{za&4<=iW-;_soTRj}v8romKyJ#64o5d9yz_c|n= zqYf#?>p#5CRzlw6u83eU1^Pa1#O`$2QOH11!TYPzD0H36WBDE*GZlB0(ejYpYCcA9 zkQ0~b@Pjng(Y<#Q-fMB@C6sdWko`Xr&zTJHfM;24hjhUg|G3yk7u-meh}m%PCauni zYVd&2SeE&+vb!<{#M$N0PaFfT(aP_~pu;Hpw=r;veQ+WlEyuY7_{aat#^6gAmOM$r zesC8mlXe`%=KN4Y_Uir7DAzY03sxneatF%-x1XV&sm-El;*+9w3Te*Xkp1PQA>ztc zQ5~TKKCwkp>*HrGzWf6D({VHk9DWCq`IC*z4NM&JB6N@k$#RLmO|iM$oCE3Pu6G#n zX)ef2DE{X8UQJj9B3AIPNR};!0Ir>Wm@u6Y1in}Rk0Ws4g*4sNf@?hqU9Fjw)di>| zAV=Qo&qJLT@?|tD>km-%+2$vudiDJc>f`U^AwuT(xxv;&e;L%zKObrv@jx2lgQkt% zR(7kv6&|Nr0t6KcnBd9XoJb{lsMFnw1o$B z6rvg{vkOq8_RZ7Thm8y-*kHQrJ!ohVC5|hofEzVY$#~B|9oO=zF}PIup3_8-xi%x< z_}-D|<%CiktR;?`?h!X^FEnb`##t7gO6chJvYqOD(U5Tde*8xy1`FOgtE{-U0_Aaa z+S$y%N1Y$VEZ}UWW&wq6(^p|$8U!`GCT3m0xo#;}+|w9>>3pX>z#*O}n_og4Mc>&=$f&^rI^fLkFN2zH!@FSa-X5{d^eg;y zYV(&*H{ZX4KT?}t4jr{vd(FR4n`s{^w8$~h9c9eK1Fpr%CAi+x;t4KO4`0x=a?x`tdH{t#O5TRR=3Dyy(41u zKFmmH<(El8Zn`6%dHY^LRa{!XV&5Ju-_9IIXwUEg({9Oc0E$}DcbLDQ06vGldYFHU10S|*(CHHo zAbhL*rR-W~2sA!yntbjAM2?nE^?P0mFM}q1{5o(5hPsg_)b3FX!B98wgxWodAsFiV zKMVC2Erwv4zd3>WANU)P_lp-pFvfMfG5*@c5WHm9@?5grqZopruKBZ2f6-zHmNJ-i zKcnnta9)s>(48co&RmT`~((s17?okZEP*?JV+C7RP7^>;dhWZaJhG3{G zctY(S#SjeDgg4Y~Q4FyWwqD)=wL@0+yU$qM{6A3)Vfz1R9sGX-od362bhF4Y;hRF| z1Rn@^@JI1|W~Z^@L_|frd0Fn|(^j5qpn`d`Q`$36ow@PZ7S$3Z#MUoRIWd-mPEtKq z(UnHjSWa89f+Dxp`;_S!qPkE;fvG36k@P;9Ig9&mLcvTk6J;9Ej`zsKj1lIg89QTZ z{TGn5kPZQ+tkYO5w)pQR^51@o^Ups>lfMNO{jXyqV;4%rc#J^l%!{bjC1sWJ^hl^? zw40Q`ZK7)p;3*!g_omJMVU+?)@zkzx6vEX>rpmsyeqD;=I&o7~>2o;>4v)AqcRj*R zluJ0D8m1wGqRMMiJ^0bbnwMXTwqE!l9^B)>1a+t5AIAI*3vwltqUr`&g13*88rCHO z+UF~WOW+Voj5TFbAU0;}qe-*G;KR|4Qkt@F!1E^YiGIRr;@yeK=jI1g5+eaG4=7~v z3{U}f6AgMQ3sp%c_t!pkgyx~NZG7jEr46SI7Qn^^u*g&U`1H#_6c(4JaAp_|M8FZ_ zD;pQXS|*JbC7SP$Uvo_!mD3ii8gPI%^`C=M(&%P1q%wsYYJmFT9~!&H4~3Ic;tB!(#BkcEF434zL<|S9kOMwL>oT z+5wd+F}t45)TCxzi$0@$IT|(Ve9yZOI0LHBcx))Yb&*mIb?YCeQI7J4RFeib>M#D% zdb`F8^sd0|k+R(~)M~SSGfu77YvV3u`x}E+CiSU61&^~MUdXS6A=+x?E!W%8m-&hk z&sgqIv3Jaf%KHbYdyUg|mAsEZZoliNXFl8sCF8%2^nO+Y@A%Aj&rrPu?jp;@r3@Ot zA8h3}RB(VZWv@nvoeBhh5lixly$zQ(YV?mW>Bnm50#p~P*VK4tsO**Fz&bF4S{Mj& zl;Z_dYvyb5>S!KRt10&7JHeq;u79ie<~j_um@z9*GIx`LfwU@ek9fS=%=ZO{?|Ls$ zE%s2Dqx)o2TU{n{5UU;__L>iUTfr!Y=XpJ^=(A@B3Y4hN5Q%rA#Mphl^;tZX+9~gJ zSmw?VC~V$y?XBr(C_dB}zsaOGa0W~=@VRy!0>sOANqg#nYs~qSLKj=`$oi%>R8}5* z#+u0-nB@vihfrqYhb&fo7oh&hji}mp#*U#TGeF1BL}SX7QpDLXY46uXk2owH;RnlW z0}#d3?7^E+?4mX%L>w8PDdON9a}x55y5~Pkp5!X>4 z`AnHPXP730t|%3MT<;DcQs1J()31Ub{=dV%c|oKXtv`b+SQy{uN`F?Z4bS#OzU5@R zQTRXwBUPscKBGA)sP1a=Q@^#Bpc+;lwC*>65;#xG@p*3DO<3RSeybEl-hMFY_BjLO zOJ|A;p-|e;Wj-wJ)6^VeeHXnIqrVY^Gusv##BEz7eV9vLXb?y8U?-YW9b0!=zlde# z(^MhnK-%J6v+Tj+#yKx#;m_dFG5~LYYayXS8GPOqC$?0;2W}#>fB&!KD_J#Nn04;L zsi3_ZJ@}}j^IvRaO zL3Ak;Mf5qOdTuswM(-wW=n$&@@wn1H83eqd=k{M{^xI9T+25AFI`TQnovnV$YC<&Ryj$q8Nm-ui`Pnh=hSg=%@KM?0 z;~Rb8o2{K?X@3Zz*a5@LwbD@f$$5SIoc2eu3N|eUs){In+T~;C2W5i)S+~+?9R;L5 z+@kVRZUV}fAel6HdEOsF0Y1-ksWC;iP%=r-X-91a_)ZsoAvf<8c<)?(^ZA!E5N-b| z#nXKrc+W_@!LhW5_?OkYkn&b=h@T@eN?Dp!^#f|BB=`K;ea}aPV0y?VlAtk-(i%nf z9Vb+?tzed6(i?0W?<}IFUP6gw(Zh$b$!l`P8<_L>!~SD_15g5OH^D*)!xjC1`TI5%rLI0`ucnD4sSviHa6ZlsPc{EXCp{`&kHepq1fpC8xby zgww?#pEz+0tpG&Y%}ZGjNCGG}3Bp?vzEK|uk$oJAm=scUE!=P;7n~V#5v#HbP;rt` z^A|j;hv}6_4LOcY;LV&+>y$+MNVRaNo=xnGV&NM;FXE>jHFJ$r#@rMSP*PisUNhk* zsESze_u394+n&77$+n2;c@2aW-CLEzJD{Vdg>;lJgxQki-rhy(W8v+!c62JtOn zRdnH)r7&RL{?%zvLGm%i22rEy7>RoYu`FMI3rZqo-eGGNN^l-I(Cz6oy_v((l-#js zmOI+VgeyU`u<|LlQ%0P=E3l!5Q9OFAMq7G73zN{n86rc!2GR5Sj4xMajG}~TLl*^V zTqf;EMVWXp`BH^sFIZ;}#rVu7VdM|tKAOgN9E>0|T10Wg=xXrw%psl!@cQ1Zsfq&n zV0*%UjQ+u(l}+N z<1^39hq`A2iBryxXf00AhQU_T-b2E7{V5Mdv48ykL}n}@@&?IJ-hu`$e~|L_Ya&V! zu*Q^{Olap)C2s9u_yegpW8lE4Jy2v7_VAlo33$_X@Jqlu?|M$vo)AbRZ-^3X*|9Ah zznUjQESLB6ij?gvpR>w%uk<`7h61WdWRm=NYRXaEV{d(p>NRM>B~-qkw`fXsCo@~s zT*GX`ol*YZ9e=iaDBje`*S-h+=9o9}vXn9U+P3;6%Sf zC&L}$g(6kLD*XYqlR_SrbNpRUxq)dv3u;LhpmvWoFsqo!|BGYp|05-a{kZ?{{c-;f zXZx|@{$G3Q|J}cbYgh+63Ok)FQ^?P-9A~**4*Q(h$otFL{V=C!KXj`=B4`v;uS+vA z$$UTwjaOf~|Bg0lbW=^Zn_Z;WG{a!+$VY4xk)1hrrgRmg_D!k17w7^r?baRKXX=PP ze+uo>^T}6CP}is|OcH?^R{hT;=pRDa4ns8u?X{$o2F`R!TJJ%fYk8mPT=E98W8-T+ z#?(N`eE%COw+;j^Y4^kF)f2(xQCs*!#nlieajSj%&^6$vF@DO#;0y>KGr#TZFe`Y; zDmfwhBn{WF4s<~Mm%a91fBC;s?7*Ft{T)NmS+}XX7d!CE-`6n)ov!@uQS87__wt0= zJ&GL|>K>j@yGOADL*4zeq5eaQ9X7(&yE>r$>wf(&zlQ&jVh5h}ogG8b>9*B9iX9m0 z4xUiEN3jD#-QEGUlWGTalVS&kx{W8)?osT($E>X#P&++lb@O6}^#SWG^cZwr?dYz> z4!qJgcT9h05B1+x0rF^*qvbdZxAXY7SgSRoi_Hj-#CK z<)xOV+R?O=?`>LZo}ie1W^ZmE&qi^>_k6mx>ouCs8 z*p7(vesJdcWeHq1L<6;P;Fv8j&=9!-v$s9FmJe@5}9h=A`)8}mJ zyDwJU2l5+lPTyml3SOf{NyiGjpUywSmU#@3*v1=E7$9`sz$1L;2S60I^JeLlLXgN# zlDKTW+D7QV260x%!`;d*=r@RV?~Y8_3ntv)+rJ9pMjJt%3w9r!Ko8Y&)Lh3GA=H#2 zY%t$vJ*pqfM1fZ_@>Xb|1D5-v5^?W}jR!QUH-R=4fK^YHkHrD) z=nJtJw`)KQPemJ6(G~_OD3>wlhCEE1!QwgUU;)!^Po^u^%ORif5(i(L*&gY84g9b} z`SYp=kVQnbyCfkN8{y+nYVaMmULiv=6&@a%d&p;rK7KX@ctYK^+gdx<1uFZrX!gco z)f01OUakw0N7Z~sSD=-Xpv-l)mu$v9s%LnW^UU{}s1d2xWX_L6`h71q9UI(^9^IOG z?6_<;s%CPD!D#um9WfZ z5&3ySxb+fn^{wo&p@5PAnEwynP?$*Xg<@j zZ#E^e^!e#fb!*B-j|mV+B5K;Z;ZQ6_1mEi5$^-*|?@=qEocq@x9_`*W&XEn?uf`pc zzIq2zxjh|M#)BL~Wp_aB?AY?RL0!h|ygv^rizn30MVKBj6{@&NJ#v?K>V7?X4V4`n zJ|6RZphkrprFKw)B-}xu52`1#(40e7sU~9=UQfj;s*7*KuvI?%@TAV95X58 zZfb$^&}nmuO3m=B9_fJE>9)i*YpEdA!l1)ENfHgO2hH_+d;knKAY*?VK17G6Pm1QS z@sS0~@6r4b-tS#!tN<@=NKo8Cj-cM~wXh7QR%|}nigK~R)6=*W)WRX6A8+*@Mjhmy zk_s)D43VN;Dz9ekj({M>^9O?c9`FC`Tm^wK$(Y7*82o10d7r#c2JR%dYW`?=fe!)r z*oL86bwKTOTM|9)K2=x(DhbO%P>)jUgTrM^Dp3LBzXR%82JuWmXKg zsTM8vK}l(BoQR~s5nu=gXeK_^;X?)_oDxNLYaLMCN!o=SsMoQ>4KiP%1crR^hnGzr z{<#O}9))~9m8m<5`oQ}^KDUMsng`+22$^d(_{<4vuHPd75pO@_h=kRH&m&`fyeY%; zSNqII4Vz+ZW__3owKLa4eAZN*ciGDTDu)`cW*1jch67cEY-U_V&4WxPFAzSHrr z*(Pa-LFAO}tCtTegQ>xWPcMKu%J3houUkACzM8xCUZeC0z*lovN`n&0S4=~#OZHNH zJ$rw;dan{@thQAUPydceMbMJall!2pEkpOx=53U1=ByyCxl1AHQHtmN7Go%0_jO)T zays~NUcTAsu@8LWyroyl#25RR?5s`4&yC9zM_E5 z!)QAx1TP~kpLvN(Td&5{7A!Kw%}ju{Yvq_-@Mnk};6KhbhQ;+S$V(Y4tBUmf@VB?pTf5WXSwLNG`m zk-vzqjjsn=U1E~BvDgOD6H?l&iGR5MmcL8emI6|^ne<9R=))A8Ry$evg#}Sg%{sU^~+fw&9LbAU7 zfZF-C)IE-ntTtE-` zoaQ|gKW)3>X3+lD@}li>|LU$DTbTF4?j|I1Rx{K8U(})hUnIU$>=f?*-w}2e3K9Gy zP$t0Qm**SG2G*iK-2XfMAGi8aD zl1oWX#S4n)D)Kt;upXs=6SKjWRuis+xIpUC-h^~TJY@7qR0 zIZf7>hox#nMz;%9YsI;!DfWRXCbSpYm_J7?8hdUhTss0^F2R6N5%fx5O&^_Jgwjh*9xcCEP+^mu?3r!o55>_Z-8f2o+s43 zDJ+pScvh1?1nQSgqvVb9g86sUqRi4*L;Dx@kXt>b^5MwSR1Yn)6-Fw-sC3#opVde7 zK>Nzvz_xu_D4L@LW){lGP5St=6BmnNkn^b#FU~cggd*j!8m|w+JG=3&Grfg_JsvCG z_6tfW$6i~83q>13x|Z70Ak~LZ82!CL;nEX82@;FHZaNMj zieH8}=hi@6KP8ABGZxUPCRb(EPY`?WiqV;m67VoYW9jrqxMyh7lP6SqUG2ol@N_Ia zCAxG^@3#5afSB9GDZ@RXmW)BrvSO(o?l+?%QX;>Y2(whe_Z5yCilV3N)w?}80yW}_ zdGHrUw3zEe;zv~a-fz%XWJoIEXxgL0V~3s`kHWKth7HtEh6*8K=kkc!(~s%z=hD6L z(UAY<`HWP-LWp7#>4Agww}UP@Ld2z5539Q_5H)4&qJ2;Lg2zyyb&>PDz=3gkpn}Qzri6s(w*hLw5%&SFL(qyM zV~_c*;b;S9iHuBHg%U5&{RE`l@JzJS{1S?$SxItG%>4Uk`h3TgQ(E_<&qZ|BFC;TV zN1g1)(2Y{)0D5&Orlp_C;6ap|Tk^n(_~hJagyiLN9Ov%r*EVg@D7~D z(Izt(s%!_;P7Y~*A5=45dUQag52b(n4;0RrHoj_13Y6dKO&n^dUNcFv z&=XY=4#t5>sMJwOp7c3|;-^*fmOT9+z7k$Z!9&mxDX@+|Xo;SrE{}@VmO^PQyUBL~ zL!w=lcz}F9myvEGxH_5Rjmit=4!c#6B$LId|@w2L1HH9tv#Oghv-4sxtc zlARFT@usx8;u&~y&js-Z=~fUVaFxIDM5%N%nW|tpGLnLByd8=vzRj-<+EwXqy;xu=nzqKPd$a23B9d< zn_fNFsKkLQA!lyB8Ml;(b?}v8?xi>2U+pEp`d!lCWDRR!G9NX zB=KS1*AUJ8&|*If%2>y4_+r< zqr@2Y1}c5zuQY2wE>x~~#($PCfZ0PRkg5DUl}gj7+cv18&`+M6Q)Z^6wV*XPOMM49Xaf7zld5u4am| zDY(&#ZZ0J35#Yav#=tY$pJ@+7G`<84u>i0q_9y&R)@C+RT&SJZ_wZS?{g$_72~@1D zI5xE5=?{f!{mk>5tsY&4YM+gZj%GX%Lyb%4?HJNjb45|j)l;VT+Xl(Qrwuz; z?nRw+m+!wfy$-5yF|<7NL*ApAF;|V}mA=N1{0y){Q8%U$*%x%KDgNzra-y-}m-#xHq8h0ucVb_cD>tH^m=53JRng}yQS2wKNPU_c1- z!bKHVIj{NCUZQn#+kzIGokF1`{NqbA{C?%;au2_yT$&{3Z1b9DlGDKL!l$(d!dF7D zrvIMd4MO0-h5VL~I0oo~z00L0$D&slsyI)mpQhOiv;7VgIwnoXN0^$j=zzK3G=EgB zy*+fI*Ip=p-0ORd(^^W=;n<#_arvn2)$LlPt^4N^5fIM{Tvy4pD#7n4X*vTU= z9A+US-E}V&!%b0yU4{54uU9B(tIm6+!Fk9)-pqf|R{`{?)OotWnW{gqv~yGkIhZZM zc3RIPrX9E_1YUW3vzKULmUi|2xFgE-*nMcP;i6C_a2MbxC_m1Fs3_$X~_D~Ae#A#;-s$qTb!Sq+C^0!wq>tze=QJN-VZw3}%^71xRGfMnjVSg5yf}PS#7Zjlg#_SBmDAnTdp51!ixh8n2v)o*C zd&d7b6d!!Zr7#b_h#5u2P&|YF20s`neuO!3Hw{9?R{|IZr*Th@lB?b`pyF`M0k zcVYV%KW4LKy0Eaj$1$5N&AW^Ks~@x3QoN_Ln;f&*l3jq>J&xIIi7r6x9>;99IB%$h z-J|x*R_FrM?ooSY%Xa~4_ozLyd-8@_&^_*nY%$(Y3%f^4jNOYj)Za7Pe^EI)TeKtp zPg-7Ts3hR~KI#A86LAp^r|SUx{NMS$^2z*fP%1>E=DELI{^ou}=cp+PKRGB#4>2)Qgj_oc@k zv{Qz(`4u3YC|Mr9L@6Yf;LTUGpJ{zV&|})77KNG6VG3Y0k#^ff*`Akl3r}T09*GZC z{Y+VmqMNdiK}Yp!K`xhA;iTVA>WdKK^yGE##MO{O=fRJKcqVNY!q%>R_gwo6INTpX z(tUC1OQT~9I=THq(JMM17%FKmd_`(dASsawqv}#xr}m?!%f~=R&A0fq@}6ga&VjP% zV)=Fym?+jdQt&xy2&MCik+EaywYCa%aQ-%{`mTu!hi{Y7)Ah%E(3&U1WRs?>KwfoH z#~MyNg%7l-$B;Tv!p#TZ`u`V;5S74|TnXhVGa- zYR#v8UZIMst*eoxtphmx6Nx_Y4l<}-ASox=3K2VAV0C&F6f)X7SRfe4ezJWeN+X>| zjxE*018YqmwZJygAlVm->S;p625R+ZT6{+x$zr^pb4V2sH<|LZ2VVP%StK#;B$^rJF;W!X+Kl+ z`El!Xc1RPvUGVWjI(7!>aqYb6LT7{;^zHMl8^*&9GvDWj)3>8|sn+dp&y42?U8Mzx z=v4T<_(5nOq!fR*Pv6=Bl444<8#7WCLL zcga^NC{oov7+Bd1#cJ>89G|-yI1?w|jd#5PK1WVogmd@7GdQ|ZrEnVr$lKm(Z$AWX zF9-KtO1*{`M_9QI1HWLXYCjn&hc8lJS%%^u{uXx;HH#hKw#cFCglj8m8+9>aA7?)r zaN=M@{$W5al&+0?EVe5lt*ME#kaEm|hoaL4p%9B*e2?!{QBs*RB;R}~rOu|F2$~t^ z3PtP3SiUfy3dPq0&ZzO{VQ89tYkTlPpmW3G38m2xsH9@>;_^=L+@CW(?};$B*OyAV zs`U*VFW%c}i^gK8s(%)0Pp#BXg4v!Zo1wNr$LD4ryIn@_2K|F)br4Uemt}9{ZVZEp z^8*!zC+(qhUZ>7Iomqg&Ll=Fh<(~#6@gE8_7A8=AK8j5G>L-gL-(qK-upBVvF399L zrcP>ny-|aKqv&eYg`ivPcYWphap>i4H6Nqb(NMl@-|J!1KY_WopxDqhO;j#7=IYQ> zQq=T*`nr23U7+^1AF(+vVgvavoFga2`a6Po0&Wrwoi7hIB7V59d;Zf!Zl`)rra;1lC-wpZHL>+z?pAs1k zYZV=;0@ZWqS2D$4LtD0^ucjF~(f3MFKi0U@jxqDl6GlV9k@iY7%AfZL?ZHt94rh)* zC1w-g1}bXeQWu6WEDvy;M@ze@evD}iwR1UPJS>2`64lzl2^x^b1Vw@WsJ3RwFdcB- z^9s{<<^f|Cu?#Xvh*A%G2=iF*0vky{&`P4ZH^KdXB`(xX`~O9<6K}Z4W<$k{0%Joj zF$$(_jdPOt4msaZBc9V z$-M7Xx-gpSI^%*}N*=fAp@!R+ZKT%TMKcrSRyuv+L!t6?LIkCJ)6bt@zZZ2tsQqR{ z!&E5Pw6=Y>;|wTDy1J=yekI^m=61JAU+~Iy>oMD{9y3!8>nb_}1iTt_T6D$+2!1qY zo!!(#aB-Qhy}f-4en{DrL^`==~&K-48my+COG-tVu z8)~`u;N_FVRJ3$xaP=0Q)97h$=@7j^#;8t>M4mXHRV|#ESu-6`)R;@prq7>_ng|(W zL=DRk%}i>n7<7LSU4qX5OKCa6Rlj>5A-U+(A|}+S!7T07?!VY{9&Y%jF&xjD}a3NlN9c84d)Pz zhEOaYA9KeC;T|K z;@*9g_u5ki(KH{BAN)wtMO7`lB4Nr?&S9wictVXAIxA{B87kHtH_v&ph0-q7t*|nP zL6uLkjs%P0m@SJo$;EquD4BWd7S^3uf*QA+(YZ674@Tb)))D?FhR|7`7$L(dl+*s? zWza`)P_tJam!j!_Vjf1F3424KobW-eUq&54quQRID%((w5|^BASTMLJM9tC+-Mqc$ z52k4Lta}UP7F>kFxJx@Xan!(noS$c1;aUjYZlid)4MEK6+gD{q_Xi}f}H2i8%JGm0GHLzJ0L$&<<7;p)gd{ETQuf*&jyvu*xM7_f9+m-3=-nW1DVBXVR z)IDzhZ1tZG^`CnCXRG~rsK4m#pRL*jsNLiC&mPnTsNLiC&mQ>aq5h(`f3`{&pmvYj zKUr>nrx4H1R~w#;?)(qZ#?JTJp`t(G8n{p@OqmVUy3jIssAfvrl)!D;QJbf5 zvfi7Pr@|@)mg1>h;V7hH$i*UlSCq;~@IZgq;wq)jh1bdlmefRTmD81l!lu~BB>Q%_MSCBySfs6aym3v@&Z4kOD~MDtQ`ZYDTD7m z{-%J^ruC?>m=g(K77yHIAl-_TvUm34$f%>N=H>}&RaR2^iNR=F$qj0!qxvZUA0^1C z7WA2AcMS^XYHcyd2041s0Lyr2_Kp1P5KkX1+JT<05Sa z0UU4gg#qxG{_zA^DHv{J7vSQMWlY3@@}|LZn<*J=IZHEmP&!xrRwyn#7#HT@8_pvh zwOAW{Q{g}L_DDM#^>mZlUTb%BMu5(yKtKsY!Zc!K&gKWyST3F8;h+LM%ZKikFZGkB1QPjTSvZ z=-NR!r)|f=y-VgP)fIZ+Zc}_j^YA&in?XwNQ^A(u^02%y+*%u+TUqXrE$d&t5QIu~ zTD(XN&9xxj)hHjQKJQ5mfNYu^HInL?x|$HPD5b_I&k4(9PzAF^K_#73p$QFbv_cux zaE(KzCIl%ieyoVz-Yz(=U2lXMTxok4GcVW%PO*g$E-peN&S}f3=c;&Z-GiK0YCIER1+inA=1#w_?IHz^E1lZ?^{6) z-j{LLl*1=TXOSaAfwU7h_uc^qu3kJ12aIExAq>9re!}-p(#Rj@&tu&zhyM-<^w300 z`!qGjSl>lydNRcxx;C;8Whk*94o*TKj5S7q&t$~;o}|Y!w-aHAmQvG zJpVQDoHqG62shk>_gb8J$-0eU{+1r!=|MAx8^>M6B$87ThvIbc*|w-AqR%1KbF-n6 zF&?LSHPFE%=xbmxiMmJY5?v?SU7iA7BxpjmoFj0b-kZ?=+lPi)oLd5)CO$EkJl&nc z!g=>gzK5V)1GP?!jEP3RzJpu)O4LGI3%yFIO?w#aWkL3A!Rs>Pp@VlD`6W2 zh}jCk?^WISU1ql+2yZA@Hw+%yj0f~xVvuoU3F{PwTW)Q^t+;mrmkrrm6ZEQ{#2RBR zrSOT^)-<33F2Ajm_6e9m3C_s1!4ruZW?I|g$FpO0kq7Nwp^Pe+QAg{JjgQdZauvC} z-s&}$bput>TZADpXPh?>hvdw=xj+*)$l!qWUHowmvfFnN0}CkTMv)_I)w9#Q0{jLp z#E-*Rh@`iYBf!MA?11nc@@ua3yb7;AsLotFD0eSLTiOM*n6nq!JRYhU9};TedF;eJ zH~_W0(_4z25uoZG8hu7Vl#Kv5K-GRn%H*8M6 z@8QhqQ5-hI&_uJj8@2}yHds%+he*a4fUR}7{5xZ#_CdkX$%-MYA_yb?Q1h_m zJL&7&WkbSR@^G|4%mVrS=VJPRGj`b?en1-@Fop!{Fxq0?XusSZ@(vFVR3*`wAk_TU zVv(I3c6|=4VU9Kj780J!?EsP36!~3Sgx?S-fZN8Grl%(LL|O?FireZFP=aR0t)Q*K@F4<+=k%6DMqVDTZro8psg4&CPUw0- z$)tIG&m5XS-SXde$@pRbq{#}ls}GQc;)7>x`B&(J$4%>Vy=s;M$~?JDU^g2+jJvxz zBXKPF2-iRCbI=qL5~(r1n5A@UrKrk!<>6B?+I-$)2OYYFvwG4e9R_Q-!FH7pri>m{cSf5V2@bFcPUP2K_CFK1;G$*XE(wAsATX85;x zPnQycs@~o#<-1?0DFdZG2)#>2b=o`o?X35Lsx1}%R(cIk_sncX{6K5eTr_W_>?C~< zk3K(exbbe}vMtQGB{B_;+7~SIeBXwY#iiR1g@>X9*;?-{Yp`|F&_my1mC}%kz0cSS zNx~@U%_H^0H{WA^U|fWQycP9mt@3qA&;F3czB=)WPz)4#Sly8vkO%HHi*lPUI72`+ zr6kt65)#JOCO;DFgHteuK5MaxgGAB6-m)LG!S#cy_4RAPDj4k--e}WOXahQ^Vt6Jz zoz7aftB&2YeYsxkmrpm}zXIfNAlww2u|O_1u)^n4nBtZ;>{#{%lu1%aGA=?6vAx4y zABK#V70Mw#X)Dbs>MQMQ&6bm@k>Zn-6R{As6xtDAhvDh5Z4XiBuMgPnXanYr0VH-C69u?s>s_9P{Tovy#b3MtRIJgx`eP|CDsAr6Y zP)zfMI|r8z#Q{FVk*5wCxTmD{C#q57*7rga36FK;OSm(MzMyhgcJvt^&E%#_gwu&H zhdDws=rjq$wVZ)9I64l$f${D~Z^G10C&r7U@aojmP{+kkh<$3X83_a~D8lEdui#IZ z;G$b0lo;LUFNFyD1+*WYa&yq^r@L=y-v5xVKc2)Myx~@o(5d70Q2tfb*>j!IVThBuSvg^Z50)z4i#i-^M6f!oA5KM>A z?E`;2cMn420O98zyCOm;m%-2By5haYHaN;IPuS-%+%717%WdhK4wOFpW>zvcpXz<- z!HIk|7gXvxHpqBHB$N}i$NZI)K=S>`!cntOOW2kx_vI9Vv)?v7@~XImo{y-0vv55h zY9P*0@{c;;B0I(i6E$NFTf9>oVDqH2c@{M&fcD_q02yRoDmz6TZ)Fy99(L8y%6kEY zW41-$^C|@4udY717W}W#1}6}P*BH)P1eEUBhNF=nP=?Nd0}mnrIryDziQ!7{?v|8| z2r4;0F#syq6Z=M=SD^GS%Xn{%0aSCYu+Kc9gHZjr*6u)gF7`_LXY#Mun=sBUXzNO_ z3Ps_}FeoG2`m!cU%aC4msK%FZu&f~YN#d6%(Y?et^$Du;Zp!=cUIwHr9wiwCUqxQa z%%=@%JcinZ-aBNh2|!xR`v$xOHO4r*G;#Q8mCz(Kmz%M8mn1N*+4y5xk3=x5xPa@J zS=f&h4@Dv3xR{km_-;V1w2ch}F&FOo&JlPJC4m{ZP|ZKd z?EkR$-f>kV+50d}kj$7Ps2ISA2!aCYX)%Ej6)^`8bHs>>0n7nKF-OcGDj+%5C8H>c zB8sAta})uQ^j1|j%G9euj0tLvQe1o7(~poDs%E=3iN9GYQ^o}+H4x=8mX6xgxL%m>D?Bd?qH`Xu!p70zsZ{KJC@kU#y7Q~0Ru zY=>`C<+|2?KwnF~MNR!62g9x&@U=V;gd*i98z}1tpkybZzRQBaqPK|!a(mIo%cJxT zY9E7=Ps1!@=XrraaICZJwM>*YLSID-il87sf0I|dJGS23(9){aQh2p=k>WXnZII<_ zm-X~O4m|X7)Ch$O;5|drO0a4?BtFU>x5Zr(LKh|5)~iLrYaR7*T?&@LW6k;*g&j*7 zJq))Q(J~@KqZ1R82*O`tjG9hE>3^H^_md{-d~qmSIVJscYBA(FQ4tx`a@`SxR$RG( zJ-VQpb`$~CEU>oiqT)ERbcM8u*&G*iX~PK;r-e#rBUK#qzI3u*k6e-0Cu*>YsyaL=lw`7cOV<+Ztbc^~JXF?kzbGDAGkbGPw(V_MnZ?bUO{s?xEnZPff7n;j-X zX2|~8=0mqY-g^H4lhczRNMB)wb8QFk-l=8rwwERNT@1K7{7fV~s2{MVU$Pej4{JZE z5kgjb8PQ!B&4}3DzPWMSV<^a-3o{5 z$+8m0DkO0h)tsiw*Vu?ZT6SYn!Kja@>;rDyt$qQ+@6Yw99q|Y@QFCHhfn*;lM@5Sl zDz}rhv4ul?lkg3_mvm!yC~&Kr@$&B0?nU;H@o}A`V2&yT@+PdlSPp`NV<85^X+~a> z$XJ-+lJ55)p(f9!|9?a(nK$9M=#5CJ{$H#}OsQNkPoZAETCP$~K~_~pS9)TL6;cOq z55P@4f=R-^K_q@)VTZmjVaK1ZT(j%z>&r*$37AVAdPW$Wg_7=Po+wpTLdnXJ$5-U} z{;XFn3{~&1Lj6T=ml*1>zY0~@$Mz?^NMoo&|0-0iUFUC`Z}LNVJ&Wd?T(JVO-?ZMD zaj6H}s+;uu&&LHn@dnlv3ROOOq{*1+P^fWGOf_bXFj@Z3%2vk~-#Q%BrY*j6_%T-j z*H>YcGjYqZ#|re3%3%%Ijt3-h>v$z9f6w`Zv|cNC9w=*uyfNh_#3=x!ubDJwbJlz` z*eBJwCLNP;lA+4UkPt9ec;aRRS-z+XLn+VLw-7l#X}Nr zm}jzo7sTau+Cn!h*Ux}LY=fThd<(0bqS(c1%L!C?Yn_Higf6Y~pbhfpN;XvTn)ZW`j>YnXUT*0qQt#Y%%%ni)ZyKG67$1&IT_iU+ z%fz6!QukyEGbchc&b+}X_w2SU*epbD1f0(0ZUFWO2Gl{IaxB& zI;>>N*uD#|bwS^-OFI5DL6i0YXCptZWrRuyeP}=x(&jzrBe@O}3d3|1{C`Aqcte~7 z&W8U-s52uqHonKRK7%xk1*r?b4<}OR`XUI}KMZqC1Q5yzv%!ZKY`?_)EGsW-aFxx) z$rHOU)WO1_W@l0nG8EJkGS5jUuaaGjSw<+6OpdeMp@;xqy8z0lTmDXgSS~Szmq)XA z+q6i%dJT<12fLJ27TZRcvua}nA^f` zUP)^lNbhNXE3DOF$mHI62%xRiwh%}*(f14RyycCdWyeh+n(w_nrj|tA;bv&Rcbz}E zV5pixp=MMrtv&kT?}JLB8x#xw0F~Nh|I<*h@6DhFs7)vxA)8e9cl@D{63CR;VKLN; z9_3JH9$ARz2y?9TTpT;$`O*@VjB59J=}bJGCS|vRJk)I@9^f5O_33?hvJ;NX=6cT_ z&J2UI?Z`0hhCtq)hRGw_TIt&A(c+L!k_b#b2*mHw$p>t`s;U0lFgx^&wtuYIA#RIU_}ycjZnygiiR22@Z6bsy(iR$i6#a!i3azKJ?j34;6urmNGZy9X%)A25@r!N8 zkUXO<&3_bKB`T#3?ELXj45P6Rzds5RZj*Qe&E^cketZ<2I08W9qagf(*|&aw6vHkP z$|p2F3i1h>U;X=|;Ff^u{~3Xp#JQ$A0OGFrm*0r>liSTiOOvy*iT6Yta&XWAPAY;z zoZ5xCpq8j6<%zuXZi&nnOu)hxV7p;7mp~8nKqV7Y<^lQd)i$?X&=n5xx|Kim@qw^C&{Clf^ zW=JzOtY}pKjCM1iibnO%XbFcZBGo@LxEWAIqxxqwoAH4a@#>!$)SPD^+SNa!(TpuG z8r45D&`zkB?ti5EX9hIqQT$I-|4e^w{_l$O|C9zRj#HS2{r{KB&Xt)dy`jZwsY8-i zBtpak7#}g$pJ4otyEYSqb!~D9Gb`sF&IDeAMQoGUR@s#6jxs0swD7&J28CP)f|c z#tv(qYJgxOoi;!a2|pd&8lH2q58kMd=VVLj#sAhDOB-^nnys<$T#YEI>)vkaR(7sP$f4lgz+3Z5QUnpA-YXe z=Mm@DTe%ZrdG2T^5iQJ_D3BrzO#N!4&4uowd%V_`iaN@}*%iUu=q-!02Y}47$*bCT z#Wv7|cg_3gNrEpCJpYyfp(MM0Vlu?6>fZr73c#Jo*?Eih$HEQjHlS_0*lz5$t@Efx6ulzO1g2$RW>+<)molcDW7=eA z)jWZmZ_-SwiC57w&VK_ww=$}|{(8MYj8mSV8N7n!J{I}vstsg^xYD!>cIynPIfD$2 zY!8_os73^0h!ueKIS3;2hj(nr`g$m3I1 zswh3-2CBX^YSGvfZ!n5=PFc7^wjupnAm5Xwf5Vdg-9g`ZBSb`Ftq}F`1JT&SetAncnj2F zIL{M2$ZuaC3_*77quTYjXKQXZy5S-G>z@9PAHv@V(r|9klJ5UKNW9X94IrCdY3##b zG3D=H>9~R2l&k&!%}P@fnm?>Gb|z3lu%K`9#`z$&!agC8?e(m;boYa7yY*C>2;YNN?XLRJ6IGI^o+X>0xR7e+po9yZ zM>P{}D2b~YLf?LytXgK6!d`yhk~12SI3VE7?NLK$eIc=R=%0WzdJ|dbd-VQJ+&sgv z6~M7e`m>v#a6_g{r)KCP{k7(czyEF(4lMp zsYijoY0&T}{`LL;!>*v;;XY76EnIrBJ^Gutf7$7YO6StpJSgJGLaY>*Nsr3;R)yi3 zHd9V5IEMVmv`zjQ$|tc)@9#k0kPhlgzH~&_xkxDVlE_7`g+psziyV*R<*|VVL{H?- z`+W?j_4?FrJxs4rgS71d2oKDlv}Q)QSE3ppFm*c@ zi3d=6UPbn8(IQkM*HcfBUxa$xjrAD)ej*&Nl}QMA`wrC%ZdDRKsS7gTf-T_Qt!s&$ zY+O*~u3dU9!=jM(6FH|fU#yVe)9SgQgxbojva1uMR=WGmJL2o&bIUFV|Phn-9)U9a_bl zNW?dl;RNcBSI$3d;Gbm>oXJa%!>L#wE1Dh};>fXQ7~ALcel08^#+G_m!7Ywk24^29 zB#2KOf_JWg(B=G-GLNT;qbf(&iY^1qp>&`9%V~SDZZmx)z#Eg;fp6;J15x=O! zgVDF0k2R$~p2Ur%1m5z$Z1vBK7ru}pQvEaIY%TunLN=aqm|XRXSO3gdI|(X)Zp6g@ z7k=s_NFg7ZSz*g_by8DKhZ(~C$` z*6aaf@>%q}tsr{KSwunxv1Fd{?RQzLe)VpL`ty*^+xU3aOU~MLb`}K6ToT{XdmM!E zc7;!IF#?!5<7WgsAdgNn~3Rw+-Pc@4F&$xIi2m*j~k^IaSdT8Y&m(R%8F>Vg)Q-Y ztwj}OYd)*3z5|A)=jIxJ+lc%)_kQ%9kOg+1LZ*9iBl~wqhKn1Cm#7YU>pF2GHYZ1B zrioqpseeIle|td;Tj4qBN5@vPJI8Xm>{Q++Kb!ljLojvfQUw7$Qno@6j?HCmtph(b z@h3R57Gf=wa^ioR4o;(v44oL|jG@kKfcmcmX5)zkxm2X334S)kI0H`HF@tJ2S8_Co z+FeQ@!F@k6Rb<&?lrF+rJ5tpaWbj(SY$EYHb{@icA8z#Z!)H8R1QhvTe3$Y2!5^n6 zfK3s2Od4aO`C1xo<4I*w$Yc!F^e;k%Ix5uNg}$z!W`t0pac}%PsVw+XK^(n|(a#HY zhES-eWbC%2nT@NeMN=;1QB_74>|}TdN|dQPD=UFTjR(Wje}~E&0{*b7$`-maYnS|C zRaeegRCpInQn)MT-nY*`wW@Z~cGDZ6Hg4H}{R!mK*|nblB5#^+~-({-8`H#8cU?H z+M^(YJI>&7k5gFW{26@rKYg<^x)LHOF+?50u(=$5MIecbjt2p;Vi*>QH~6%MN73ZF zOb!E$$53z~8K>P}X1m{^DfZ}#;J1LoYOYYiP{lvX;Q2A}UMM^CaZH<;;{lQax^!Cn z9SQg=M%9O>n5wk^4ddLV!5!!4VDgthV#3#wcVk|nX@{}}IF%gvjid|_wgWMd*l?S* zDd&!@OfE|XvIbGV2?*nvKf&!kkn8~n=cC1=B$V-=7zX!nio}J|1USp(bYrL{LZLpg zU-L5OJwA!ETlOE|z#5d7%AA{a3YExyy(HJ=9^~IE_RBN%W7~$hq@La3iM~3lO~m?n z)cQ(*kMZln$aA>f8m-xe=v#{is`D<*LoDxi`_NnFXikkAs@q#SK>hAeWVpobRjBwG zocz&2qf=1`e7fRr?C`jFcE4%AxoD*>juc;GBsDi1at?{jyL-GFM9B0Bs2(Dgkh*^-le%m{HG%m;}dA2q#Uv*{)(ysEWa(;bXj~V8kHED}O|^{)So^2=AocbJ^|?2ubwWsQ1zZ(B5F{ zx%YR0=U1@<8#XW}k@#uplLZ8`OHA$6-&vJ^;@ zcX31#loB&QnFuH)uB(I91u|=?DI{7cSGPDEn@v+%?9w{)p0m(Ex+JP9AR2|-cE-NU z2L-KW)6p-o;&wKq?$qhGf0!)G)(*lZ3ftICEAug_Z91fnySmA+Fc31kkk6YZ_pJTY-<(w>ZIX7l0)$PDO5(`I7yP~v# zWm8>`96yikA|B;_m?LKZ`Mt%Hwrz=IyC{pzKAyN3eY@4C>g(h&$Y^WFW3AXru-$Zz zSG%$4sO0dHoiFEB!bHK;teEa+(UX1con~&?g{n1`N{1Zli6+?<9&q_)k6s?=yWu@#s2y2tEHweLGqm65t{e`bTXq?##oho9pVu3DrS*ddtCitSFFhdY z^yMp3={?|aZPtl%4kuu5YcFXB*_{~bB%x5TlQ!09Lm|g*WVOf5AtwkbTF~p-nD0`M zN6d4(`mwU8ExyQzqw31r*{)kG(S|(gMGo%N$kYIRA(tENl93raz51Si%Hq257X{*6 z3K3ebOY(j+5Vh_O4S^Dl7sbx$#yOd0P{Rv-$Rz1Gk#>N1H{wA36&{!o2+;$k;g82z zh)ksXYN!h{?LhK|ET*7J zx__1+^EZ2{yqEMscQ5WIRCAO@KHFB4&@7&i8hO3HOMC@`$~h4|tc}0f_0}9+^qkTR zw?IBeu4Lyt;*5w>X-w2=$XraWfYA_4BX5R-Kh1dS3eN*M=ijirn8jwch2Zyj$CMqu zX5iC_vOncyXNvtMRz>{(TF9)D-qYf;l)Gf4#C!145*@Udt@dlmWoM9Hv_L|w333aBh)53$(V5` z8m(l;tPyGx-6srHG+N2b%w|9pjdG8f*vOJ@Y{KwAX~r|)b$!2l29cfcD&c=aN6t(j z^Z!<2{lt`Nm0BxmD2$dLCZ{7iL1vNk<`ze!u1R`I#E5@ns+e|S{cuxcwXmj0K31$0 zejfw*TsMyG#idiBQhVZZjH6w+ehe#V)E@s1e^gUK8$O`!Kez9wQF-VZ4VcwMRV}gc zs)apj2pL-=X-K?LQG){2gqQ8V=A-Ohkwm$$lkC=FF3mKZOW4CBa-3~#lY}!{IcHXX zl1X;&1E8yN%Po|0A(W&p>z;&|J~ux554#NBT%a)ST(07wGEE$Q(EQ-BmbAHrrWJwW zeA#x$@#beo>!LmaiMih4mt$|C?Muz~IiEWYZ=9TM9dpeDVwNY*rOw`hhVe#`4_+@X z-J3d`l{e}gF|nsMyL^Mj7vByVkdgdAUhBm&$TH}aqi}E@M0C7dVq?7>1U8 z)|zQ9$Kj=;x_h~gBE)>!73wkSK0IsL!dgbFH~2W9D?TrKVyMf7LRG6h@NL9ape-*R{gs^gYMywQwkUiM+#) z%o?DJPNyR}phhN?Ew9D6Wu*fa9>-d*Tks+RY{(mIsJN$a8K(6%c_J8VbcN6beI z_V3Jc!Ald^{_bQBX@yGHzMSqjAr=bXWZc@PzMPdM$(9SAp(7%fap`RSDJwg@S?r4-f)9mbNZ&3l^L&@Dm(>OsaiswUqpHC&8^(w5jB0n^u<}Esq z>$1B||Cz<$M{RBmz;mgKv*fuIfDX69@rrxFi}-WrK8FbEfIk)P++O*1h(TJ|AO{dK#2{RNm?EP@nj=NDRP8r8hho~jLf!~ZAXn}tTBKfqe zJqDbmZW@gzo(j1w$tU+dcyFe`-{6VeYlh@sf^eKjYj!RRykAI2e;NJ+Vt8wh2b{tZ zL$zpt+SHd+bfB6Gg&KGPSBImZh;svB^@s3oC0u$2lyu#`{Au21w#6}=ct5B>An8j6 zUq)zz{;icYWy$c+p=0)}(KX4~uq9yO(`AI8P*NK}TmQR!K)@QWIF&K_r(~pPk%|zFVlO z;MnN1wk@DUhDK39`2ccsKSx>Ew?M4g1?IkLv*3QBIEvvJR;30wEMlQ2>cO)!94NzK zE&9T_*}ycO(vXlCJHteFAfymdWaSIiY9W_CoJyh@+@3=^`Nwfd5VLIf=4w+Xh&cVM zB4p@ih;qp)@)chU(VN@ee)U)Y^vHRA5$+tsc{9t)?WFA%HLUiZD=GeeLmr79UF`q` zIN*D#;{N~IP5qk@n`(7^FY0aCZpM^(kC40g_4XdhYtcuNMB4re>gkp;pgPqaMbr{P zUMyr2BGO(+gDfp0h^a2`ngv z3vp(3CK2a~=d8^V&cY^h7LAOA%-8F8<8Th}b0&GMOTd?Yp3NY#4Lb!h2q5aLp|Ygm z0eDP52$R4i;cUl#7YE}@^8y0(|DrVH;cRW=Y5O3bO9jU{*?no+2NaVMW4aiW(35!) zs^E&BkuP~B3c^-N>k_v?)hg=y0Or)4XE#dc@+l#W9O#Rr8>2B&^>^K$`gAlr;WA-Z zyB?gkSiHEdLGSf7kWQR(R(6K_m}>L7a5{K!7D(`Uz|JFzbLYcz$3@{@746{(|NFff zkL>wEm-AmSvT~|4{0HR`m;J73P(+iuJFsHksBiyI3w4j(JPzvragIr~HNgA*?_+n@ zj5%`Undy)0Zr+UJcXl`Czl489bBfPS@fcD4PqDi>{r`J0@yMn-0L*)_3fv+Plek7t zwkF zmNx^cXjK2qvY#00-&_4NONB!fk?NnZY=qiG@sE!y(Ww5JC5=#l8ARN+o>YrICoRapdSO3g{W-O;@RR7HUW}IW9UHvoj zxcUFm2K~RO{7SjqvW_y&(!niWNo7mcNVbwt6E|Q?#FqXS^nctTv=P=)D&UfjA%EVQ zp^MQ1R{89U`_HfKM+L+-`R-RJ;9KSr91#cA=u*3J(0!2SrjyD(7ooLXC zLca3Sk%089h{*F(Pzh&VjV59_hJx1@*E?$* zX61+O9kMnu5vA+UjvVAt;cHKp;Yf3+dQ(qpSA`=;bMW2OdfIhp|H&jAx}AZ(Wzm*3 zG8jF5srpSRur@t<8P5|@a_};Bo3YQJVL17r%)%n}o;JL0z3#mI)X(fjnj(D((r7zZ z39=qgED+%0D4+7_H3ad0KLKa#4x!uoq&!J_4bcWIw~afz6Yh3ioM5IQhoSBe3iSd_ z28F!qwTpA7WUw9WxkTeUcb(vA8qrV?dr#}L$pTjL&1EvPLsj9cPhM`*J|sm~LK%90 zK=-KAxHu~31`kMQ*w&S;b6cS+nO?mX%}qkz3dop18rp8$75mYDKMEX|ykN=UW$=Nt zd-D&ld%ts0x#?VLI%JUtJ?tO^A5LFUvfly%NHFsGR0!u2k9^WuISG;m`6IjGhRP@AYvpx|8QQLV4Wkk56d*=|Im zr-q3HT*?I$ai;mK1koC+*`jJJ+s9iB4bOkl%53FDdVhkDlz- zT=ak_yj$EtMRc~<0WENEJIK6n9(qhwsBIhH)pa>^?hC1obes>Fs)l5afHhB5SZ}Wf zya6&q@_E;Sta*9zH_9QV6P<)WU~HCheZDka)ol$>o2XAj2cl`{C7Kw3Z)3!J_HH} zZo|)6ik0y1dGpG)OQ`0R9QlHR{K0jj?{5!6*V&tgc4wraBEt5lJ%;*j9y>{YwJ!2q z|Ek-UjFadqO^jZKWrYJ;JAi5u{OX4pqpy_--#Kaq>!KSH6UtBLd%La7nQZ{S*N{K70R2CwQSp-^|xFb^motcz!U!oREh_jSm= zG2y${Z$y^-iCd0CNHC8CMsP0t$dd>%x9>uqsQ1Po7-CYKd}Xo=`he%!ZJ4D$epksb z-4{XDP1*am9(IBNl^M@Ju9JeGQ}I&_p6fy=AN~{SOBMeRRZh}=2EiSghSCB<-6$05 z@M{IgV;&S@7xRuaCak#KC$V_n4k*4fCrd_J2a>i>87Nef*dgNpRCiCNFms|YnxwMk zo5|<)aGp2usQcUnKi^r1_0hy;?s)pm@s$KJva5-K1X_OnnO=S3Z{U7UCF@ec09Nf9 zg^>_T9EF$@aC_?)LV|&_m<%=Z zy*h?!B@}AAqo3}K9t-&vGOk*~l35K^ow$x_%TcMiUVpL9t)V1$fkV#^o!GVyclI=K zO+w$9-_FErw?+D=b_QqdsYbWz*@*3*+Q93{naP`{WwM77LLZ4g9tv4qzS^(&Fd6bpx8&L!lLNub zn5TBpQ^D7%N=HA$1l+^l_uedd2Cl7B?X7nCA_Th^zlYOn-~n7)t+BrxL){<@YJQn) ztz6;?D43ma(B8O!6_#IIt441(sJFVC)kf`J=+U07Oh&RjDlS{({87RN8Na`BvCrJo zDC$njsP3t%sNi6@R!Ij_G{bhH zZ|{4!8S-qe>X|5?2A|afyJx#OfcNl9uMacuop-BspMBpJgWHH35Bodyhp?D1uc{p~ zaAkq6^U#!P40XLws5qGbU$vlsy9lzHfv>~O+pwrCyews?!bd2I-9^H@St(atob7%d z)eRf%Q5!>-#}&S4xtL3#xbV9=AeyUGvJOEz2~EfTVbuRX$6cM)P9}V ziOVRAFXY~FMmdef{}~dONSHW|bK#9}$qHqgOP*9nDsC1p!RZ4b!jVtCkggi4?pg7SE|Q^Dbr2l0)Xl}{Le-)ezC zCX$q`i1xC+szBS_AQ&X*8LL*7E;wb_}3lWH+-=K zcrSZFd=kOsX-85}V5n<_LZyX_9uzFlBZ(kvSB^J?a+5vAEj-c#^6Ci@+l+1TZKxOi zB~&9u|4h_<--j^mc5jhWcKvMq8U6zCy~fLSE>Z^Gk_Cd~ska%b=Z-xzj(2;wzQEeH zi;5%Li7QUoEf(B$KkMM2IY&OXf-I`Z9|l3#1YoASF8Fc&0^o~ne=^IIAoRmlvYy~e zZ3r~Mou&(|#8B4=g=%s7+xldLtyd-=L%$Q5^P8X7bFd6qM)hJqp|+Z;XH z8I^C?u*EZVG#c$+s$QNm6~)dUJZI!0-yg}eF;A`;PjG{LyYHLDPb7ig>>2f&Zk_}8 z?~{hk7@7^C<_==7huDB~fog7q<`@XM1`3z2Rlvp1!=J0R_oefHaYHeQfxH9Yzv%#o z8#1%R*8CUsKc)^mz|(dtJxTn(83YBQQ7$q&gg4RtW2iq@xyWp9gxW;4C@v~B6k|=> zzkd^LOHEvBm#c{cpQtpJGERG~^kIdb}j=hEPGgw1>R4MBinoO*a%Pk0$a*D2+K2 zF+N-ovT0WL9x%byi)QtqD7Bv^X^la>am0HEiDFnjFW$GP<2IE2y2VY84JNFZ3N=>* zOJ-!m;zC=LXF0ZK#hxjwSt^aa#X-nv)R$5M(m&Pg(6bYVU``1No?}Lg!zro|B}gnE z6W9fw6j^t~-nk&)``!MWgvxgLK7|JKO_aw_7(xFQP#{fxwpq2dIFEdr7AoRf`GpTV zzFPQEij_QAfrA9>P&Ki?p7a*=y{Mu0LgOB~FrVsnP&F1fzkB!qdh2vqg--1R7iyWQ zjOwq?B(rriyN8Zf;o}N)hlIP9hXZHbYsK2c(3OQuKE*XNf3QKC#zF|fj>4C6dxPJy z4E=kT10j@`E=Mn3z2oKrd+<(^T(fmT3f!!VTs!~!Lkv~E0csPaBNXCkFcwEa{_3~` z+8)wu?{=H=JeS`T(FPxrt~dxe8lLgcBS>cZha2!1OI$OLYJ-b{+{+P{&SI!?LZK3M zqh2WFV>$ws|FKGsvIc*1azL4+=j!<#3aE8y7%MiPG@4tWZ=7HaRQumpw_|WO^cb@u ze!FuL)okx-xxSqR;@JS;j@@k!l&nX^gq`B%2c!AS_E&DyWS^BHvfW#6Sz8)VUjZ4| zN42>0EM)b#TUI_O47dL%p9KO)1aMd!ATIkI!bsMH=RFVzq_7fL4;~Jo3R4VKRw&e! zW0nt7*^T8tGzFS%8`OoU@lZ-76|cf4Ok2QA9#-nxnjR};-=K;qmj*0zn2oyfITu03 z#8Y<{Dy4I=8I4xHf&0m@Xcgp>3Bb7^n2FVIEh^5SbbI}*10S|Q7WbC2RxRoBLb6!3 zv)w8e$RZSwrDwq>uluF@`mezEoXsQb^9~_b=re}k+*J1?PU?_&^(qFb3Z7Sd_8-fi zhoQ;{g}N+!V(h*!C{%Q>Q4x1#hfUB;mP)BXMdd~h)(pal&DO;kOZzLaZDJma$+caL zzHx4=s2`&(mGvYJ-MTh472WEDik~0U)HL1<0|yS>;C6OD3N5r)cU093l|7F%5qn~a zwB}7RE4gFe1O=2T zF@YV#suN>>M5Khfr?-P5V$#p*vyyo2@thRZJf4K-2U(Oooik3TGvgzRL2)B9u*C(EjW#_;hQ<*WkOWS`?f=m+F z+_46NNSMlpa&YIP(<4YWis>YXyBgg){8J7%(@+z6I1uo-V>>78TD-4?P^jF~g?u~+ zk~IruI}DS+G$Kos*PiYeC@^k);qW&LRw4~c;9Y7^9XERdd5(958r*3L=o4BBL%E?T z3MM8qIq~QVf8zGy=gU!HapQ~~)%1JzYDqi1jd&e zL_=_Z-1L=m7DE7kKHgs6&iqtc2XLt*R`FlJmHUcejFJr)oBYcB>KK>rlMuRPJH<&a zTK@_Pu2W}gcJLTFAwy*un*G^|RZvt{yf8*#Gb=?uxYJSXa@&1XT`i#_Zz|+Nb^c>f zA-+E0Q@K$sAF!WW-mkohzJV?Igx5v?d3>5qGRh0TLpqtxI@p0Xx8>o{^mbd1JnaNe zc?D%j1r7Ry?0ZTcG!3A1RK7EP3jc z0JXfSN8PGml1zdIPKjJp$}EDNmzPy(FX)ZFwNAx^p)ioXGfaE(kY#Y1_*ZmThrV!x zQ5Z?B7j~oQYY*Qz2p&Q*O>yYU?&-~&etf0(GVB!36GFSuI2-Ui%w0yqj2+hC0WC!C z@gdgU5Q=$*b0(C77e4M5+}wnr;uI}9{*rET=l-Wq`Ptx~p~~q}JBU9(9bGs7R6LBt zx16Y~_x~VNF`-bEG^}+)IzzsW`UL;XI<_G`z2a0~3#)nVP;yWub4-~6+kIJZr;{Vn z(f4(uPF;#VkMte;j%e9G8r>MbIQxbrPN=wDqf(}+gl5~H-81`+7u?p--@KviQdE^# z>#UnU74@GWV;(ncFbaKLRA0L@>_=9|!jc62vkx(=<5gInxiKKn?HyIp!T@~THYRk= zoDJ?vr=`hW62R3eojZowogql~L(wSL#qeO(42xUqr{GEP9-&bA4O+-CnOSA0`#4-^ z7%HYo2YaCC92dAF#`6Md?u38Jw%rdhw++1Hhh(Fxm^qt%It``qWl{q%GyogGn0na@ z7<(?3X$J3+;A>j8ZJw=WBL{Ye0+&aU#*agp)l#W7~Q`8dncH08kqs6^` zTXu(S@s=ZoejiL|0W*-yun)OThW*e@9Bk(LiA9y?N9Qg{Hi9u0_KxvMHs}U9Eslkv zGVTkDwA77DGTzIfDEzx2@EyG8uYwz2bFMY%+#DY=i6_o ziOYLM5I0sZ{S)`Uqr?#Tm4p|7f5WE#tp1l@DV{(Nz2A#}{4dI<|EP&$P#g+Hqj+MD z3U4G8ibnCo91#w+Ks00z%+5v?SQEEwyn%o5D=2fI5o6OY>93A)zwj+vC>qynW?wU) z{-<}(pX-{<*!_c0f39mbW7`a}z9y89oyw*p6(3TP7Z3V~EEQ4sY( z7Ck#^)jT+XtZ8DYbYtVWVFH##9GqtbK~|eHgLgce3Ic8%1@1Gb9v?#PpYU2@yc6P- z&J^isbc1_+sQV@yI(VYW&X62@HFHh})l4Fvt zi&yVt83|$`V1mk=X|^#Mzjfq80tA_mpokOTIbCd5!YCae z&BX5W1n`bzYEFI)&pD%R2*s8R5yeNCv(13IxT{!FNwz6%_U>vu^7mCDlfA&vkYQ8oOrXQI0nMIm=En&)f0SGuO?-59u4ker`>dm zdk6QI^t}Zy-ejIbgb|*GHBwe-NJ8Rr@f&Wi&DAMqV(0V!>^1H>9VFw9I zRL)a73hn1q9Qc&>q7Y{ zt&-tI0remdwC0qpXdTZvNyYZ)*aHB*awg9(pU>;a=4LAFw6pZz$L@K_3HP&y9(9j7 zY6Q9GmV1|ml!HIl-v$4UB+mB=xF%X`i3?W)s;5KOYcKIq`_n5Hx{j?GwS zg&fmf-dT|UV(r?ZsmoZ6?V2UVN>wObYWBDxC%Z%Zp^HnFc-~-J+**>5uGI-u7Moc* z+?s~QQR!MPx`M<%KQc)Xh-p)<5HekL!0qjmJ>W8A!-Te#G6IRq*3T|&%R&=#9ACK` zTtmU3M{c^FY6J0VQ*YP|4r6ysTug0%vsPFqz^J8=J1HS=oFfiV?t4-2^maG|dLAt| zxo!^r54!1&i?awF8@Hz|UQeQ_!EndN#ZU$6w%k5cF_aXo8o%-;$ zDy&wVn%jn><52cfbE8RhDe}8{jZhF3%WXob zY>xUBwc)78v9b^smCNYmyFNaQ+d%XtV#SW(AH|T)v(DX?R=h#)#jSp&+jUIaa zvTOU$C6L4s*+uU;@gvD z+XwGRlKMPDR-BtNHo3D=eYeFO&Og&fV>=+dWiz^f6Ui6u5-E`0CVg$rmq296O&%bU zGZ{b?I6i&t{A$#7h0|-}5C;@V-1FsAA(qIi7wRMLoV-wAGn!D6N5h= z8Q{VTrEg>tR*De_5Rou;1$WN8fN>DM+<);I{IpO{HeQepK}f!I!Yy-sR|$W+_Wb@Xq>;J>k0E>qV;z&t9!b}Zs( z{z0RCwI)5#Db8ktWsg$I2W#y}>r%+%KN?w-I5rMKDKYR0gl#6Xd;}pI((rVx3k0Z> z`^PnKr$G}oaC7$5N$b{LVJr0)g02?!02TBna@qQtpp- zwWx;B4+RBi8WzE?>*SB3In5KRz)wnTt*AO2GH~3)uDuH(i`(cB#hc29p0@0wb!;63 zkpEhH2vFEk%&Vw@$8kl!4fo81vn14^4a1zXwfVPab|bqN4?{$j-pklGE_9QxuZYll znd6O6n|^&S*eH(jsDb>4&eF@vU4>t{s=0z{{M36N>%Ui`D+Bff#2OwEh$-~8pKa)e zX7BBLP=5S;xLaO3KIFqDfrJZ36rJ$mWY+@I=_oiuvU^2|{f}3!rE#CMZ<;{vsrNof z1!@qk9JesfaW@3snDyJZr!wGQ{zb9c=`eWIU)*HXeJ;3+{<`1DvI@?#*im#FT23S}7_j^pGDar!PBI#!`BFixX0}B>g0wi>EP__&59y{J<0~ z6=AfGq6jj@{)W%(3-Z0XTd|#QZ=P|YY%3L9)yt7dW$|pVfUWl*9yU}m*)sK`)?Sk zvT&%>+Uc)D<;gsMhMLL8)-*!p`Wk3bq}J{8-xvIYP`flhZQ_&$5oz_{RqfmWwTV+& zgrIg33RN_|M|f2`Hb8B11B*tHfT4D1fZF5+{(lAa?=2EA)b>K5ibj!up|%qWRWv%# z7;0OgP(`ByZM%J68v^zJXhDl^2O6()YoY5b8Xag1wUtn)qS1l26WiCa0csOd75IzY z*I%v!jhFkkhG)>!C-^TugP*knjh9=g0cw-WE#e($&i~JV&i{Y({a2uFfSCXP-}(Ow zH~!-XkBxrtvT|HLX!dT(|AJy~A`xG~igEt!f{vfZrg)`xMYeHny_Gu|z?T6IwqfbO zb{NX})gH(GytpBcYKY!x%5XuuIdlMx4h;X8m@=saxnx8qw(iMuoa3Y83TwQ;%TWYc_d zcN(EKaUzNi)Z5K~%JWb1clYUq$7Jk)TQq|ll?GwUbICj?8oMoNrqv`?1`jwcM5m*g z>$++K0yZIa3uV)%^WD)oKF0V9$-aIc0Ml|7y__)U1rm@6$GEHLWB0-2t%mWtZ$zDl z?1vIb18bxJ5^3jaS)<8on)ZTT*T#H@EQL+3PsXw1cbH6q6`aM$Lr95y@GOs(yud|5=oJ*PF1GVG6H3O(X*I>TFh3gC;Am zdmeCO#*DTk^5Yw1Pn6BIf9?sMoK*sNQd?Y02$yj4&Hb$kLU@T^*b^Dd#3=#K3*D7* zBayk;45-}<$FIM674m&Y+ON90k{uT~s$MRs6qVY>d~&_A6Y^K76^iT1v+eI+ueU!c ziAuz0zuDh^6Vk3;bZBZ@ee~G)jjsB8eF0;7*&=$&7Busyt3cst9(WhTPi=ktsX*LL z=GqW#MKt;2;tSF8;V7z&L~Dtm;Xm?XKF<4iA;J`LvM-Kt+N2DzCWe{G>Jkukv9Ly0 z#|OM?O_tr*T?g)cCLCX_l>p8~XF~B2Y}sY&d=UloF&gK_krw|lV_@|h=vIL>fH|Y z=OKvmuZM6Pjg8Z(A&gkP&jN79Tqt|LKycJNLt?NQr$(qvp1?&!=6^gG@`)U~V=&wO z0}Y@@1$-2EAt!`nWtGe%J34MbRTpUg8uVJx@M-ke*NjLuQDrbrXIbzJ#;8Q-_MTad zoZnu>O7GuL=>p%?27V*ZD3>j6ZU@ewsNV0$uQa}^4K^g{wh!@VOcydq_qp;81g0hS zw7(SwfxM5BVA^Q3(P}6}aBXr3ryA;3@Q||?V6HbpZSn*b6{y#m0aY}H5X@EKP>XqM zp8P_}eq?)E5bN+ED4*oWPtJk7iuS|~ot5LfqXc56SZCaFGMYYRV(?loJvgAUBI012q0)Ebtd`3CdZ4K|#3 zI-BMMX+zFv8c+m&KawkC{vCX$QzPi-+N0A`d+d^6B{>HaRHsuK^7TqN>eU4*mnBR< zw;T-Lh25Ts^05&|2fGBAW8)kn7c~&Y9iv|hL5q~Vn`UKMAq(x#{jOTrKp+l(->5a2 z72_!ZoA+}GSef^VuRb2A1lc5aWAQBD3|XdwH~DMLu7v0=)KLKhNi^yMoY#f!4k#6e zThtkU0duc8P_3|=R37C2Rj7)u>pE>I`w{9%m631MGyeb;JMOF2H(KKVQ&8^;hguXN z5>qthig2jK=`$+hk~+X&epe^UUQ^n%_{Vn@=fKE>fBnO|x+nIuem@vaNyZZY*t_b| z2({_&s)%sIFLVBXYyRy2_pkYX|Gob|We?!il14+nrHRitlrZ|Iu{9dxarRB@;CU&Z zaGDq@O+JKeE#^a!!E+t#o53pV&zo?(-DFfw;@sv;1XZ5E_egnm?|BmQQ4N2W<8R#X zm}8|0TC~>h8@>G=n!(-C;4)_^*JzeuJB}Q8-5_(vvnk(>org?AWz1zxfp9`hx56PA zyvLKkYB4dMf@t2-?k;Dv1DB@kz*i;-40WJTsA7pN6E?>{{&{PCy`Uu4%wA#n+c#%W z`F6v^fkTf%(JJXSpN&J=&XP-4AI$8IN{>c8cbkxm23fD3=)AceIWO7Ld7()MR9|kb zY&A6wnSC8L(J99eTrGwU2&!BwkO<7N{vLb-&0jF^-QGpIC@d{w*|-ChKi;_OUv}1v zP=TCh6AjIln81@t<6)f_^n(Zo%hgF!1HkX2<8K;Wec)mHp&4tv%;4@S&xINa9bk`g zYhB%t4cL-t0D($6Xicr^pV~W?sG^M0-Jo#m#|K3zU*YTHv)GmG=+D~M!OPiS*mC{} zBm0ZCurSnqLZOOA3kyT-D-^0|eA6)0KEk1LE|`D$^Zj#OwJ}t6p-@HRs*Rzl35O~Y zS8WWncLUTWZe^m}M+O>7@=C^0UI zt#0QH`HKqgn)lITJD8Ky;X0JfcY^Xb3vgDPvlK^_iIevzy?zH1Cwx|2qTT@oX>TN1 zyQpMuP>A`9dYH0TCHhoP7Ziz$%(B>#C|iwcP0lfzF*9cs3N_ML^ZkuVqs+_3 zyG-z6#bLZW#AVsXIG;90(^{<_h0RI z4(=4r&zNN?1E&^v?+6-D#P|ze)e@c?lgH71*p9K(YZ?{cJl+kKg;2zeCs{ErQUFzx z)1qeuYRQLmUg9Rr==&)$z#obp<_s~coq|SpK2fAF2@WS~F2Z8Vouz(2;l977L6hVs~I9+}<_E+H9A4g)IXenMC2L-&%wzUP< zc+J|c)S**l6=V_CQr&wH@P7Yjq{N2jFvRUY^cRyrH`BUCP^8U0gGeHx)Q{Xx|-l$Jk^C7E2L z0Nb6$D|ADJ*zN`IJt&;?)>!=%uu2@y4pm}14m?u?-IZ}KJ>};i=PHlE*y;$CAxeZn z#t%&fg%9tCJUBmiluQi92i!r^I=|nVv~w`}*o(^H;59WC>B8D3apLi`&I+Y_P&GnsK2q9}vnxkVlw%p|x!P=a?~=l!MB?C&tb&k%f|>WCvYirP_DJUNlLldKgFKY;#sd z-@Ml+bc?2yY(sS^oawq&o$P@Cv>$x1&&*|qd{nkjEZ(=n9MHR-p}XbdYZNz-GGSOL z?&SYHN2mPl;Z`0=kcE@l%{1g7h^HC`7!N=4Rjv;Nx7Rl6pMy7an~)xvpW0)`8j{)` z3=c^_`Ds7qaWkM|(i%>NhkQc%v3SPze?VzJsN@9a>r@~JtvRVRj8)o5n4&uWAA4^d zP*t|Rk8=(U5+*i+qGEypiom?BfbuMQ6>WZt7@KqUn$OAkTLfR9Aj z%XGalPtZ{(8D*0e3A=E}o^fEbDXe59iQ(He4;AC~cKpGEv1bJ%A`<$e@UldrfkI_- ziUJ%}7b7#=HG*R+U?&Obn0r7VNt6t|%g~CoA8=lQ0XVR4o7IicS}X2S7i~(wC)quo zMv#U@zBs4@!q}oQT?iaVf{q?Q1TpEBpMo$?^l?&{3EXY97mF;y;Tnzo;CVCyDh~&O zn7aJ+fu@w-p47Du(Z3HgTg!CZ^EhhkzYH`-lTRR;PQt;aRQ^)~O`dympo+xomiMq3 zP(@>Q%X4ei{C@=2|F8MK2LRwnF%Vki&nCqMRCfhAbjNLh>PLHAyZGrN6kKDINuZEw z#TnIsB||zSi@`agk>U9dw+kdT(+IhGDIzU5hLH=(X5c~#l+1Pr+A@Qy$%dx~ocpqi z_|65b^XL}aG@R5p7%|JusL<tmU-Bs?WK zPc5S%@k(o)J#_)xoeJjSLJmwF849D03P^}r>~+Y>V`J2qK9a140TptcZh5pFm64z- zU{vOE^Q-@`E6~$5%YA5aOLRXuEh6&56jV8e?15LJHe7~4Lla;f?UqBcLfPO!6tXVc zswe*mydr0cHamXPpVEvONaxxx!nSlHp9BcyvZ@4|Byb+!5D2LcZTofEOd!=ACI@+N z?t<^giIe+cs0PBJ5--E@zYaBErpw-utNsAB?SN(L+9yqIEIq7qV)p@P78i^2&q37} z3YGgTW@C+RKy*u{n+o0)j<7&E^%wA__$1`gY9vO&h;$&DqS99x)nY**&>y#_VO zg?%pCLTXJ*@(4hv)l~8`;7k4(CyF8P{XKGOgb0$@r`-$uZ?`4se&Fsx+7kWos*Y%Y z+QhL!RA@R3Rj&bR6UPb>f;wC%RMFsd@Tv|I3RN_C9Sl`hC{)qlbud&N;ZQ|_*TGPS zHb8Ci4gB9CJAN#$gP{&-fZF66_`e19$MQND>R_QzMT6JDPzMQxDjK{FhN>+Ts%Y>! z7^;>~sG`B^V5kFyLKO{Ohs^(#dDq2c&$0~wW-{*55mN6Z^CZP3+KZ3jZ{%Hske*{pfw)-QSMF-RFe!loIeakQn-oXbe|L z9)!7GJQ0MK9BaHclb*#=aXs_8(A|*sdIt$X1;j=3KPLaV))_#K@ykMPLbRFjBX_;F z;EJoP@sHrbwpp4u>YVq?ZWyN*2tUVOdg^UQ-{@6FWo@65 z2tY7+>D2Ys93A9eKVW=@b5~Ru%UX=lP|nW(NG#3$`FCtl#s8&r*eg|keRZ#V?t}>yO<5nMx`Vvx2r|tbaf{Oxso_V4BjIpwy1X% z3Zt2fP{WNJZDZJL1;45 zwn#^GxPktuRf=o|1xoH0MFd&YF39xy+NPCc5Fh1n&qB`1N0&z~8q0{&`dCygaU(_9 zM;rRgw)(KZT?Vn$tD2usr7{V}9tOiX58s*P>`Vm}Q8zR)a$~*2D3r{TC;GrkQpY?k zhuI!P?TX0`RrVP>`#~x(QAeGHz*m+%(ZSUae7*0zmt{OaguI#&31NbP120;OLHK*# ziOt(J!EzL(|>5GDdc(T~;qiL0P>w?_4_67rv+lzB``PndxSCP9=Er zX;ivo)0u0D4oF3!_g>c+W8|{?dhygeGl9fKT+oqFgeI0J%Dq}Y2b>2gejhzuMIg4@ z%UWkpSV&Psos)LnNfb9%?@OiX2#Aw%oRb~5h&kLt*LdpSNJ#U##J^^C5;AuU);&0R z2t>(kyeiwp7Q$3}4B6GPGq}BO({5*GI^6N;;<)~rGCYhvZDMAq17~094>%F!$O~%* zR8rfLa2T?KGDwpOGyOQr?4rucGiOz=x(NBW1zi07J*M+{%+_AphibVz3ms0uu!Bup zwLz3$TbI@Sf2bw?NkJ);iq4f!5G640zIM!)BcR%5)<6E0-=a8x<&Hog7TO z!_OfF`^~n^>H~hO6Fxl}y9j(+vI*@FcW)QTIf3WSk*?!9jfdNA_4a*3p279iXNz#Y z1TVB1Q1@GlwV(YFvZIWS+o@MJ4vZ_$J}B$d-y90}9*>{4XEmcd)pyp0#ipo=KmEeY zCwkE8p3 zpLGoxRqr2LWAF+c$Ikh2a|fY{i6jH)BJ|33SMI*l6WrKX08LbHN99b5FXztmP^v>= zTr6IHj)KKlMIYVnk zOhpshnpJ;zYYKB&jo3U?b`V$a1UQ1;7nci57h0p)ZP~MmK$ebp(MqfwTfM6aB1k9H zq#R&1ZC(AC-MzR|7n!S>$3xnZo8Hl}M<5U0{v(}6Rbdi!ZJpo+$@j~7Je|8D>4|96lLmno2ulP^o zdP~(7L&8u`x~qe6^sR~Vu&@>%ZDB0QTndOrH>o86)pP18;0~3cTs7J^Dmh|ouCclT zNG9Sf!v~N|gKNMyQUZT!R)LRsT%CutGd$lq_K?l-Wf0FvdLL1RCR`)Wie3VSI#npt zvU6A*`wp_m>10(H(}n&$$_(P+ou?;cQ!N@JNstz$q6&Tb^D6;@d?PVL7hwkt56l2bvPCELy(Il7JX~I8MQ5J z>KDq~zwt_MrPh#jkf(f8w}j!-5GYjr`TP94PbJVqi4zifY8L2>_rk*3FCnOcsz<<_ z_B_GC*-0Ii^?fA}pL}g^iiSHf88&~#*W^Cv_K5OctyeRR=js*fSqToL-U@4p%Yz`r z!|OCI1A<`7WhAc*e7xA49|+%0!s~j&^Q5)odF9iCe#<pwux`MkrL#pwwCaKkvPmVjl%)Va7H9I7)d+dP_VNkLE{^*}qa- z{Ezeg?veec`}c$>2MRS=OD$x7B(eDpjD{*5n-?6<#p-+s$g^yTvj}7v@d<1pFseBt zNlx2H>&~i2)^?ug2w|i~en!O~U$@G!j064qb05_jJcLc`(N|U=(HqCZRu-Ve3p=-! zwY7tToI~j~o@wITLB^&99kZvz-z92%NFmm)IcgASBHJ&{605k$6g?#gVvNXqei~p) zESq2Zz<6V12OABzMBH+_dhej_)I-+Qu=8Uce`Ivs-c331DHY{}nY}C$ z9|M_jFH<$A$1@#X$>>-6w?c)rv1J#xX`_D0%g!HAbV8mn?e^UbpMt8LaRs+!0AhNE zc-)^g6S*y2YU|wbn1Cno?Zb_yX)w6wA0z8?g3v#CkTk^;B(G3{@3SOYE- z_4PeI>cFY&a~c!#m3bfRd29u(%zw~Fus_9zLgILP=?mE;@4IyfqhiU5J2xX-kWAz0vVD_ zyyVAS0_!bL&He1rA1*=1y2H{tRR84?M5VnCnGB-`n&-~_{^B3I1h0kP@C8%?16gJ* zqEB46WVG#7NvbC*tZ->uSU2ka_8_=J-H8IJIJ|gnu4o3Uype-@^jU;YRHDN)W{c9Uc}Vg1S$}qD z0)z()8THDt7YMo%0xlgwEl4}b0eC{pi~5h@&L$d`c}aqVUQgk@vfIH$ZZy$agC~Tw z#Xe(hK7$-mlhP&F0@e01Aom#LuY0rAYI_&;iO0Vz=Tb zJ5*l$O}E9TgJ4GKA@s22$EOabo#89)HOF>RSk0013A=CJh-=S-eB4{G=IChHYM;1o zOVM4FeN&xSbKoVla58JZ;hq(P4e-Xg+U)wd{qS}5YM#cWT=1l%I|LGQ>F0~^=HenL z%wxhEu7>0}tE^fE&QvuaSo#_dK!Q z1T*q8*OcIn6;zH5yj%08!1S*kuT|~tqTq{;g(?FIQ6&+QtjYmny3XhZW!_MZ3NcnW zHs=1nkiAbP2~f(t!&hX`r#g8Xy{}TSMOEd(bD;eg#t^`E&Uc0oZiX4k{_*4>l9tGT zH@$Sc1bbQb#n#k&O&YKBUt_z4zTkdRHk|je8LR%+F2&DE{PW_Q0aY}Je_ot$sD<>4 z3Ry%C*{?U#L7h!rLK#@Ph5KG08<*GPTz^Jl1@WvaqZ%ptPVVxmwsV=sbL65o-7m$@ z7F8~dp6WfJ5{=QlPUJLjm#WrK@z{lj)u*?FDX|l8D)QCPv*nefR;Dozdh32N&^Lt? z{EJju429Hp1K%#}HV*usD=V(9c>%u3FY%8oA(R^zg$*CjwOqdi2yixu*z{z0%xa6q z@!mBDDr*3QEIQU?w8jw|`WsY;*>#E6rjW;lV#%qo-!W9dW?Iccoy2qw+ zE1qVdx}sKZH?^-pI&^Xc?(CGMk3gIZpjLi@QCvNVfUVi-@LK{)Kf3iy<2FBOY~PbC zgbn+kk3&~Lz-nQoAjs97*zZBW(!2xU{-S+PU+;*4TjAz7732=@t#GIXWg;=o;k{@E zRM8mc@M8Z4)L(O)!+S0qY9W0F|N3hwX;r(?N$_)(Dh>k3pS7 zd8kY}A=>ZMn}!WBI35~-i_ylRw`V`&{3c6S!bX&=MkzFQn;E3Uj+hzi9xOcsDJx1o zemyx3QrU0s7!Zg}$Nf+zz;h;>JOEKd$8-27Ji{vg^=+5HL;QtRjVXo;lrP70-9lk> zUEwIU2@#Rfp7u2SFBYxV(DoEYrq|z2ng5 zkz`}g0X`5<%C100S%v*?pr3UHv|{gk;ZVr|dg5P)DqF)Jz4OZ-9V9DnBu)r91;05+ z4iVM_Da_ZNW4OropK_4kRh=gks%Q|C80uW1P(_27#8Br5g(@2R2n=<$aHuRd`q#Hi zKi5ePL!BiYsz{vV>~`;+Nuf4Lt&2LdjxWIsp_f3knRR@_n+dz&MTA+m+rD=?fl6rg zCa87MW!CXJn+jcL(O}l?rT0#2fZ7DP{{I(dT@G9Om3fE66txuqPyaonKTB0fsYniy zm>|B8zo~^8s{rVXe}UtFVUmykY{JI%@8mu?o|z9>`D)^^c@vl+myagpcif7SLetdd zUsW(1V=~=w*fR&F-RP9NLt3^(Rg=do`F1@cq%v(@>q!c#$baqxHBa7pR4es&;?&J2vw6uk+8{G|77mi`h*!=9N0-g&g#MMOOX*)H9MRXy4`NjZ%X}H53S1Y3TthvSr3L2bn z>3Du;bsJI^b{iXQ@etDRXsln#GKeBg3A4^ZD3>DWYuptZVlRMztDg27AL8x#>J{9e zxp=(nMyO5t8w;s58*OKXJMr0Gvopr$qhD$8@JKo*;Q(FW>qxjL5Apn?u8NeBf}Y_>9# zjg`AQY2aQ|wT`uo7#4kfbME;AKu%jD<_CuPLlRC7#v!0El7@1iPt?K*-zh}`k06n0rL<+i9UEinijrffXik6W{t7(u%8yo@{)cW#758Y&qZeQ zz6;MK`Nha=-nV9~+OJJ!^S(CYO)45>Ht$O_pn4QMUKehFS)+%_ee*mUlPk*9T1{TG zZz2?wpLPDO9m1#&%CFiqLmpLJn~&>YbWk5BBkzMlvyk_cp(?|9_XQI78Kr%uZGW7UNQw0ny#9INB@w|hQvrSe3H8p@(tCJ zSxxIi(DZmPpxs#k@}QCfRMw9+el~mu1JK}u?PO=6$~!G_uylE&@sHaOHpW6*ZRFmp zoa7?i#%aOv?JvO>7cb!A0q`C&JGPrUZg=3~p%I(7&>8|Owh#|1Jfsl`yo}~RrF~g{ z8S1@K?e!_={s?vab2V4>L8uYx?V8(ta@!yi{Sz87%6HH|1vR}HP(@=J!~2ZSf8?y( z9K<3ql;M369yU|R8Fq4pv(iipRI_Ku+Q>J<@uBJ4llO^Z8CkY9el@Ce9`{Z%wHS?D z7d)v}<~4dG)#LNPjyF)TBsKLmL>*iuJuBOcP$}n5Zx}PaV>7(Ppq4}im4-8W7E?84 zic%%cSQrjzYzfjF2;w3S9?>x*L~Etj&(<@8=UkN8W4wW$d`Yo1{`m7hW}G%Q&@fG$1)-=- z9#K?5R;T&4?=E^Vd}0HiaRnu?=4C1PRNuj5a92HsUx4GnPK%*B&!@AT4}>9Y?n2ME zZx_{8-B}=+#7@c4GWkXBXT{VZtn+M*dE)a?wVT7;8?EMo^4^bOgWJAEA*4q{RR^9{ zuz7gQ?s$5k(Zr?d7foTJ#ot@c} z{RQh$At(OLCj~Yt7om<#l+;BRO>t$wjsK4p~$c&kRaFZ--y$ zsESj^7l_Zp{+~4r-`wNyjb5gx=$m?*o^>0MN#d~&>o(V;qr_cwz8=*@hbw5U?hE5s zgqCR1fWi5N=f%-C+z6qk84at*%Wda@Y zf~DR`7E3Bg^bjA;TPn8b&(Ht-Vpd4;@2VLwF`mSK{0Hn$N@E9O(E~z|U4R@~ea)!N zWyx(+K(d$3)FF>cJ1(aAdKRcoj;$|+d}8iA>$~uv#i84~;ERhvVG%}X3pBW>Mt+z7Xt+xNP1u3za78orm?Gos_AS>1Pey(x z50FtSe4}g1>~0wCvw_uvA(ivqhOn)wst`of`C1Hw)4+X*wCO?OZo#{I+3v}~mEc4V zT)dh_s7<`)u@hf34oR<>7&R_md@FUDKq}=RA(bX#LMSm&n4bpkV+nFq1EoOF&B`whMZxo#17zzC>;>20 zR>ZFXmoKwEWnOhNpzc2L$RVi^vLh9`9uQAyoYEA`?j9IoCI#QxD7IDdng=D{?@sJ6 zOdnMT=@}K~wns*#cV)9IPQc+IBTf3PG(;szGrr7DGe#r4SN0n|Di66;+AR)tuSDN0 z=gvI-U<#NHRhv+A%M5)nP#ptzv>6pMqn+yI>zJ)M&b!vMyAR2pxs&=BO@ee?sX>!2 zNS0$YC zEh0te8$BS48b>Vzye0T#zu_q4Ke?RQqo_9&ycVhm_B~lF2)H zJ@xryRjtjBzIBlqGWx`k4PP*e-RGg^CWn_$z{+SkF?>>djw>$9m+mAoDVSQG+d_IX zpeH!h7c(lT-XZ?t9}E? z)jl;)J3k&|c{3hNj_S%H8VikiOpi{iN(>ckr%tMT>LG?Yw(?sURgy6C@#kUi#ihd@ z+gc-pwG-)f`vmf&nn2SFE#ZPrlAbRu9NBF?syWsFn?k1z4Pr7BgUiun>kcw4=~t9# zP-~>)jNMQdS4btq+q8}lJfU*@j1RrQ3loJ2o&xY@n_70mi_Z1g(i6ABWAfAJBalLL z{3Ya-H3KSs_ic%J3|Uk_!YI?eQQB}(Q_>8m?Hu@Dw<|%GmAQSLT{1Ilvg@iY{m-K;|162xo+^-bVC@AfrM^tN zx38cy<{7H+^szMGnib+YE&YavWB_uRTNZU?t_8|0-ZHhNk35W&%QB3;qKRIMInSMB z`v_Ih-6R?s?sMz>l`kmfOr3S={yva6IrWqEwA99sq7>O9R*pS~LZ(5;Q0)$<0NqGc z^J|E{;ZJMzT9Oq804m+O9D{h3^^e#{| zMqRw3MyS94z%+bc$Oq=X1oa1xx_E^@FVr7A>f#kN1FC3@x_J4*p^C_;iyRU6NFweT zJw;r-m-+;i+`vtGI?0evCT5m#4391N!Xq<$c)}-iG~md9u%mq}QAES{+l7@@!0vXB zIviC4p_GAv5+*z5|||zh8bbuMAaFi6gS$V&$H7G{$j-z2G&c4%w#8 zh6zI2Ne}sFXL<=UnppsNX#hE_}s=e6WT@6tGotflzBba}rUXCBfKXz%YV{p$M{=h#fj1T@&%=`=g zNbEUn(Td?~N!#c@#XsU}uv7Ro5N!??-}1H%*PzL#TQoRW40T5X)Fz*9(I6%Yph(esyBf&V28-|Gb=y%;c|6Ok$8*g@gRXiAnrmZu!q38z}%N5)EP! zL)|PCs%Q|C7^<~!s3Jj3VyK&hLKO{SQciXy_WySjQ>;-?kl87HM#@<-NaDSCp13$) zlGhRE0fO8b*-MHY#B|y7KmOIMBOm{NGJcqwRDSTGcokb{2U(=`Tk9Uw;vjUVtJ@G_ zr}RspniZV`s#&nju2Yw@hJ`DoO=ixyhb~*4AafT~fHTUlof?K0bvV8rJwT7Yu<6^V z@-sVnfT773TD#55LlIocnF2TUv{^*!%aUtZ0W+j>Ah;inzI4U4STpVi?jHj+S1>=-dbJ=T$hy$K&k$2rsY6;%`za$bNu zl8YK$&hYz@dHOt5Bi{p$TH_6!6qeW*#Mz+JI=98DUF=aUjowDxUM;;WZk!5_4cUVu zDj!XfU?(FJTv&^f@KAV%+ikJ*xiL?C_Xa9LPN6CAkfuc9>AOM@r)Lg4R$a4$*B(Y}8#BY#fLgLe-!Gm5c@S$n$ z@QNch66cWf_fBwS3w&F^E!;&qT#&-<<4|}^(h{_I;E44xcwWSpYP_eLI2z!E<{AhZpbG6~3UNIz+|GGD$KUl~$qE03LG4PO>we}3qT;V9}l0FLImd^bK<5E=jo=AFW2~x zHhJe3<6R}5BtcdvJ6B@b(QOjSp8C`X&pIGCzG`-Pt4>fyzo@8|nvjuB+w7{7JAIK2 z*_{~eM-}Qjabru3VF_(z0w>=(nTOSV1w1;jL({q90xx#=v#~J}X3K3l*-KrY-ri;H zMo2AKziRY~VGzJg@_eT%;QXi&5TTVQ<@Cr3Vx~@7xAsbEqt)?dmms_++`^X?4)xz2 z(*N&fKtFac!mG!pIW_iu^!qJ;BSFJ&#+^+ra+h7rKj9^==omU_`5#VrdNgJHUru;9 zG<n`BSP1WRX0OH1{T z94?_FKAf-5n=Ll)&*uOC@t@gk-`9q)DC7=n;x2>Y&3>(U7W*KJxbf$`#!}KY5#z8W z7IF$R(qyEELMd_k8_3|Es*Hm!Zzk`C{8kqaRhZv}iV4eiEb5fc$k<;eLIAMQYSqrZ zax^MVAW7|O1#+6~-HA3-y4E{quYort>}&c9^pZAW!4f)=Mtt=;m$ji`dVMZ$fW)?&AK zU+V_&O}sdp4gROaxP4!%28>NF@Ch{s)8HSnz!#@LUCAF8xSGvn`)z?~d>kxc?-PZ8 zY=O7$Yx&o~7sZk8G007~+l#vlpy=o*>>Jl;&fWcUf#1DPnSdt@U=x2qu{G;&fK2Mr zXH-~TZa#Y7R^g%Hnn_Hn9fV66+0c-HirL;bYsjy%$LDfeC>W%Ex*D8O#bnmp0v&@p zx~LUhLY~*wVa1L(Byh)SlVNNW2zsMI^8ao^@qOZg@kR~n|9--qWxIVYLnbGV+3Z8b zF)!~VPcMJ*9#XJdC({?fgTWsvzS>LyKl~U+T)7KRo~^{mm0l1*D@))Dr*88nt|Iv| zERIp4mjGV`8Clu?a2fC=Uy=p))@7<}XYirPMuDOZNI75P#|Yj@{IKEeOOv>$dsD zj+7XZ{NIK2lO8GYjVLGdM*Ovpl=#glOCkQrn^QE7lo+Z^1JousE>W2x+1c!qZh-px z&0ymgNrb0Jc%h{l&^P&s6pbkohAJr>Dwba39_wFxiiBUr5)^8agKqf6r%1&Auf!`6 z<9}7GRTNVYZ=ou$E~hIyNyc1yi_}rc8xr2)PkALgSuve|J>v@}%1Wr^9EX`^l88bm z88>EF{*brmX$5f-_JO2X({JVQi=mWwq}N8Fx?7|eO$Cj(Fm#0Rz*O2VO*a1?(gH}LM+gW9?a2DK-~6Ue0$8N=U;tCW>0Q4Pt*m}89Ecwf4| z__Q9nM4FLDSD~^il~H{<%?Bkm;9?beoHh>^C6uCEYCu4`G`bxL6ImC!8Jxa&?bUWWr&e0iFp%vM;Nw<9BWb zR8k!<`xazzC*l5bSnH9Uhl-}r5{*1u+t5CJHX|#^&I(ZZm(P-#L)>8EY^x6o++|So zpsywiltVX9LNc_ zdHhbop%$~^qeYNC;40A(F=|(NIL5;htKfdenXwN5ewJikLT zpt_Gft$FAaWYRzbMx!o=_}Wnc7xbG;Z1SBiF#JnIZ)J{ZVjh#UaMW5ce&@W+8_}iJ zt9cria#1O1V8z1}*sV5xYLC9i4~KegtIJ2(uWGSe#R(0HQ*!KEIt@L;?dC&5@BQ&v z)sXJC|IvO(yUsWr+?5LSQ8op?%(8o+DGvhY4Nt7f0{}&`Z8Q)?SF@qImEXP@P@Se) z?(x=uEahYSu5_Em7#^|fXp!uTvJG{{-AK6wsp|x8hNC2zE*Y)2Ejyc!N+XVZ$@Vfr zeJ3wntmYDpoX)QI%H@^e3F@1;{R)Mso!+aA9wU1r_oe!2dhMR{d%aE zl%E)hVn?p-e`Qn%#7Q~M$&OppXz@;)cYcG^ma~v~CVu~8r}YqddD_yH%YGnOAg8UM zZw+4Oy&Zds4*<6dMvE#gT7v7N3XK4bqj0k8Aimm&(|na?Ks~Q7xYyDRvhEc7rMJ~> z%tbrZvLoHNO z=@OeIZiuF7-ODZ?vK!9tTA|pl)kA@pM;JU%4n(Fa{Y(rcOHo+J>$9V?!x%AfAA7M_ z3&#GsUYGXh9HdS-y-~WdFJx3KZQV+|0wOkUFAVuI3w)=7XcFlmgm+0$4ABYVAw=JPGZz`vzO2hv(r4$wo!atc|Va=SV4zc)cgy-Qj7yQpU z#NxMZ&H{_*5R2dH?|>JPAr`--J&zRtG&#e31PiKE{b!qRrE!W!=do@p+;)`?L+&1Qw860(1?7K8kP zx!4~tgAro`?bHSQRflkvojFq75jCOu`FXfX`wvjPBl%dUA-(5Ax?QXZLO1uw+0KpF zh$`cB$;%o|>7QYBVdP5`aYp)Lq$81dr8Mk{~DWaet0m;%0&` z4i{+Q=m?%zx{E6SAb{JDxsZ(UU8gZS*5f~eY#b0m2^I4|ChnHQ=M>>%LAJ$iI&`@{ zSvOR7EwaXWW4NUNRZ&Gd(&7>hZzPc%zOSg>)NJv6i*RI$OXx89fxIzeV)K0JZ*ua@ zbQ_zBH-cEnjJs`cO#0|R2vTdm%T_80LRcO24hSW7afA5~h8q)C4vqrvE-OiOAUNU8 z?}IN4hT6RWYE$HP$pT-?5q<`c$vPO?F}>DOZ+rpQ9g}zG`V z__(27m7Qd*!sO6C8UTe#sYDB=5MI&E6@{o?=i%NqRD8^lB!MB*X(Q&9-S~up+FkAL zd%l0;HugwYntq>*jrce;5z+=;+*I${1^h-%)0GthzTBXa39T+6)6)sn0cGFe zIcJ2aTceAUCby&cYr85R149&^^rrjqTVcQ^gG|d|_L{Si9*`Qx7CJ)OhgJjK)_6lG zdw*&|@Vp1OazF+Gs00Kei1a7+Gd%91i9;0(;i!3_WK}ka^61t8waHZ#8K|m4p-v)) z;_i@%3kbB6U6@wvMc#l4v|qSubnXE8SYz-d;V{(Th|+dlagpdMwuTc;9QpLl1JzgH zHO2qtmd|eJ`}YmkcOP?Uu=t>t_}q#EE}=yK8acy)v2yLMF?$S9nqHe15nU1*n<{K3 zP$D6f3uMXgW35{dK#W=KgTa3s%V*p-@GG-^5Tm3WF*l{3eFlK`2zw;5RYU z_CleG2EU1+stAQD8vG`P+D<4`(cm{R)V4yQiUz+)^Z(a~k?emi^*=!}S5iizi?|+t zRtq!I2B6fIw?@qFZ=Ly@^)CsTyO(jk+Dy{IJ?SmenZyQmX^RTDe$srZyl2F}ur_N{ zzlkmKMswIXSGR`1epFV7n-#TcLsIB~3+=~ogD>_E5r|{yD`o-EG@^Cw;Ex{Dv^}O1 zH{e=jNsI4OvGW^?6(EhAB$s7E&=ix%Y;Aq;$A72^y-q{KEY=VV5u|=KGYOo(oW-Zd z({Pb`ZLg5zk?dr>I7m zw7w;wp$itxbau5zB<~HI8UzwFvl>(etFIYxW+%ksh=nu0b%Ito^tf!L`EcssQC0Bm z^2}M)t1iMP>ab!qjizmf8SHP=9#X~9Fzpcqf}O8M4mH~XzHFYL82F4fg%u^A;8{E! z-JW{zm|P6FY4RaCEh36PK)8FTOxk)Sc63123KI2Q{Lj0uIn~CGa$jrygb;tQ!MwNd z8@80%`5_A@Yx9qEWqQ*F2~=QTRCy4pp@5afjAF#u(!*7#y4!Mn>*^VxV&*Z=wr)1M zeKdO>9>@rIF=W2D8%^&!BVYA%4us;nzkR|Yf&6cXO|EJgH-5>&`NLEC*Pel9pcYy{NN@vOu7fG@brJ%oCDS0xs@t5U``k1#VtH^KQaSaKpoXpE z1uqHl%V;omiS1TQd^hI_#0F0r5EYaG_go|#R(Kb|8Jtno_Ukf!-)2BnVAGx;gCr*J zy~C&rs0z4%$ha0LLq64}F=BzSLvb^RK#crB=cvJ`Sy%r2d#ym_n$biajJkAaYZG{ghoTUhp#$;sJi;`Lg;HyE%9CF{hg4d( z4v%TZI0U`9X`WKP9D>~0=m3Zz2n!K}&`S+>uoGC{SdQOEIMfmmc~-kM1FC2Y5csOX zp_Zv{JTP$15oqpfsqtBjI(K`8Y3U!H)!gXQ-S3%N|Msj7DQmZJ(ByyoS?y2f|Mp@^ zofNecCbw8EzgzB{>^+$f=|rgv$y&))5(C6X@n`eairF{oDE~Kp5hh!7gpn;3TKC%O zUcU#KteId8qvP0V!{!s}sDzt*=dUOs6?ITgC+nz=Q!tNR6#Uv>;u1PZB&jpA1rl36 zyXJi>LDTwe8=xdD0SP#M4`*Kb@t#o7zNmkg!#T;M6GxoXdV|C~j+cg=gl8KNe>a}q-xDio>)J4=O( zuD3|{6{9^`ejCnBLB%OreVMY=kVn(U7|AeF{cVb>HP{I{m@2C7-1I~PMRq4+xGyMr z=|XEw$3wXArZrKtp}3s;es^BXLuFjrMnf%CByJcm$^Q%=;!_uoJgm!XbbXHhiiPha zmq8I1?9h`KcoMu-Vep78Zt4vQv|A7&X_-6tlTxL17s2&xH`33Gp$-uSwfwQu;H!!V zGH4Gwqo&Oc3Q_*K&i3u1+CmoB?lu*$uj&5WVK@-#wVrz^`V2QPrYK2l4gr+UMK1M5cJ-yVda4i*aaUUiy%>TAfF zvh|9N>@8-djl&@O%ZpKQNqjrUHu{h|zRYRZ+A~b2nOnt=Gc!=7LBXl=!S{eS_sT4p zYEyLE^w_xuy2XDym@27dLt^`6m7z95%+yw;8M1gpl z8VJ%I|4A$UK6nKzxby6}H+Vd3)kAY$E?mfaIArm*Cpgt&5P?eMkWFmapqz40kcrzl z@bumS)qf?=z;GxcNsjllsy$yT~Bu zJ1ZiAaCXn34-s5J+l@Ot&!4aR05?e_!}_*(Ikkl@CzlbBfdg=G?Fge?%4QFsqCOhL zfdaW)2U+g|lI>)M>KC$|a%d2aZ_GNp1wG_sEcJO)dcNADim-+0Q1Z$`2)Lhg0oMTt zWS6j1W23Ss=8T4R%YtwyVT}}~jO9ieA(-yT{tH;vBIzuXn+m@4_k%|=od*ogF9I}3 z_lQT#5r`mlAJdcJ?zyp>?B0F?FI?(|(PF4t!l0IM^`@Cg0~UOr@670$d`UR;!U~m< zOu~8Xaor)C+`>o?U@x;kY!%5{@I{8(S3J$K-UT;j(OT9DTeg7?&7fN+xJOD=Mj-)@ z>wle113}SK8{e6u_>Y;EwC|NMm!^5HX(W9`-x$(%vTqCU!&Mi!coqC{5pHYGMHwk`kjZ25v4Wn=#)s9YY-`6sl+t%^2zcp-@GGXvR?c3xz5gTQv-|pKz#D ztJvIK=}&rC#!&nIXsC@F@Sp3jjG^`s3RN@?%h*hG>uO3Vf*JoU0jhYsd8D2K%}8eM6o;I089T%*`m1 zdUU1Js4ghxOP_FcWbo1nAC7h40L`&Sh382^sus+^;rLTpVi7p4#S=(Twg4@jJOeA& z&mwywiw~<{I+9eZaSs`5Qz{NmO=DY!A&t!QMA zIJttE(s@N(&;0(VaE@=8yKORLt*)AycTXN4g-=>I2yp!RtU?^&=z{vi9Cyl|Rs>tt z96~e0_M@6JMDwkKjE1GVbX@isd4Bg&_>%fcAl9!$71PJaB<-DYteYc>tSg zJ|JvH2DryfoBd&5E7(=LK3wNqDPK>xH?D%~mdG?y6O8UX#R64PTQ}s#y+X3*A3!Br zC*X(51E%|>_}Rj+ims&X54bdEdF zFknVskG-QCbsVW|ot^}w9^@(C)GdKv8Zr!l#0$Co420Ls$LV(Z5XJG|_eoa&qOstj zv#i}mg?Ien%~(z?!pV}CN3Qu${q|$Y!5V*5FEI=U+6zE~tA{$silp!P zDAd#^?@8JNcyt2WkEo%_}(|a`a{Iq0$eZV2vNj7xK0vWxRJpvaz$@v z@J9%TS}q!+0=~9zs5L}iGB5{UO>%&9WyW=8BRNpnmu_RDEgnK1>&c$QNRg!Uh^wfu zo4ZrN+zm+Iuqyq`#6lD`czoZCAQe=wfpu%6R&&_yZ#c;%71f8(#&~XofCB3!X5nc7 zB+%k)X5V6Zo=f5?=2Ec>vBSwO5SF2dXA*nBHC-Hwhm_$NF@MUuhxmT1BN05> zS$hD1%b-<$1xnw+q2kiWiB|{l4fy!oD<|cQ|CiTCsimU2!r&I8<@M!e$S#-JDt(gu z2Y>b8|G!`Vzbo*+EAYQ7@V_hYzbo+Lt^lvM(321&amQxc8ugWsLhVVog>)0E^?-bm z?&#_Pwad;CMJK9s>48;MWlH5Q$@?w4!?!9rcP)nK<3Z5-uO=Ni>@c)yd479<1vVzP}`u z*h!EyZXfOywrlXqf)7r4Rk42suejM%BG)9yQZR8@aDz@Cc(wRCG$W_B@SWTz$20RG zD_>1KHg5tmTmrcSy^YsA@89l)j!3Qkgcd z^&|yV_tZm0pX!J>O11GgQ^mw1`%OsyssI)e7c-H4RXmr-bc-{~% z6ze{2PfSZ&Tu;~CV0Gab#x82UjrA#GNDbLH+gx`uWUcoPFgY^`g7jKUcd1nY?;V4d zyzOBDewP9q_0L6uYkj{peLg*g;9>11DSO(&O~pjb%Bw-V91OP^0j`Cb?9d0YKN5YR z1EZljV0?yiS5$DE%x)wg&$4CI%kQ#`_=GNPl7kZQIE!6Aq;+T2BWpWPbcB|AqvDUR zu}?V;^zYAoRBP}MHcfn5zjm;!K%#fSKJ&@~w0L3Xwz9T%aF9zBZeVk4TF})^A@yW= z$03EYPz0LDlGbYQC3&tXNf1MlnzW|@%U5mog9pYNBRkk=z$IBr|6{v)^FCs@%}6#a zz|lZh76{oylUewR>E4S?a6|c|!m$rN`_m3aMqH5`;?qzCjp9XWr;POttv!&ptjZgo zxmQrR3oEfk+K=A%-Tmz-+o#S8dM_!x=vWAkIfE!EVpR^L6GQ8CAUk!5u#9j~cOcnM@t?v3HUj=LXwZ67Mf)pgi41I81- zsx9rMf`Vuw6)NDQ%TxArAr1f($+D7$D4l&&C%~jLpM$;Mok#4v@P0*OuGt11N??7j zWrM6C^-`zE*%o6UP&V^;tk+Hmprh`_M(~h3CS(K%(cA_k0GGJqQ93Vx>i^AY{@>UZ z^W?4M_RC(DamP9Uf#hq6ED0%bb-pfdl9>75+{$6W$hZa-MH5N@hS!62^g|j6z0N(& z$jXso^T#Ni(teQd?f9wd_LYnn_eQIUBQ^9-kjW{l>g;P1ki*>@m@9e*pK+sVx6Aio zr)Ph~nGzk)XSOD5ut0@6@X_(?_q-FEw?qEbV??FSbmo{(i)7XT1xdJ@O)Mw`l26Tg zxvl>&@U@T{{yOD0c;Q@aLkB}h-0F^h<_#ne-W8V=o+4p{X5QdH9ab3XSfNlcjfr*k zkWOCyY67M$7jVZ(_8^Dk87_Xs$iE`wlmL};%3;$PYdd^-F$;O>uxv1@*dFL6xG0Yn zax&Yy@g!;dJ}My(Z4Y_GD6X!-f?MQIBnk;d3=QcX&saOt=OmdvH;~R{{e@sM+;El| zcpaIa`nbm;2%}sa1hGDcY6vyhk1v`U_z}JH?&lclm>&#PAd~uHp3#^xWD%G$PXF~L zcu4|zgU+Fv9F}@-sEmgjnED-6w?M%2m@&xQwli8nbO1wna7l`NS1<}Rw~X0n&ZTwF zCMNY)kU^aZ@DShlnyQcCG47vV>+uBy3m0jn*Utw3x&wRl7mI`Ua+XDgdpLA#c`sY6 zc^^%n{)y(D5i4r-77rRAU5ag5vk-`B(s=Crul~cXn2JFG*ZN!7idBFkgA)gsZgzW6 z6z-$N))C}O`q%pM8|o}j0(~o^ubhNsE(wi~k4FhylHF_K)i91`_I0A3z0X}wEZ(ze zHe?ffz1a;2=D7JsSOC8@Zwkb3BIdmzaF-I~5J~=ca)IFZB;vy<@qCPNlu(QtDaJH( za8*vf6bk{b1-a9kK};1v%UoTu53Bjdfvwr7AR zgoW-3DCFya?}_WH&la7AP&T%11h}6Zr^O6+#kZ`Huv=D)Ee`GinWy@HQ|Poon9oR{ zJfDs2N1ktnm|a;C4SBk1uk}B_6{t)gsna`AXo6$3M)+5Tw|b&nC#!htEi-%)d!B?0Jd7C7wHz}1^l{kkYj}iz*EioL0q1yu5FEpa zIc*4Lw@54D&bPo+4=&;>MnJ2B$0}Uyaa&p=T_qCkKr)goo58C0<>{p^!$+0SWCgYo{x2&2SJq6zZm~+o#(MMnXY-7<^ z9ivZneBxZK4X;Iax4;jcIniBWshGi9_v@O*a&#`%>5hJI_LZZ0`A?(2;0LHad>Q?_Qtt&i}s@xHykSZ5j@d5UO7=zZ`Q=_ zla6N;EyvHkYmY^rU4>3#PPEU%2P+NTJhbS2T%z!yc=U=~wsBQG@&dYo!QywL*N$`= zQCPWe^!)etqMayu5f_T{dq*#<=yCq1@8(1=D!2#)eEBM8?A8(8nnibRSpc8)I-+&^ zXNoGE2mk4!{{9X2FB%sONk6^do(5f_`(};WI4uGuZSBJ9OOr20yUAYu7FvepBF9fC zUHq&lCcjDX;u^bC#x^ad?YjNHemHG)&cv2-#U8P|{fy{`u*M^pTcbtN+3_qHgQ92a zi4_&17sRaZanYl4MfDxGjw{z-^$e}+f4!*R|19joMIS)FR=IXK`o)r?e>^mOc=TJk z3Pt~2i`wP-Mg5CdBel-|L{a}5)<~_>|K~;h?`nOQTuDzny!@hZ%K-RN@w}pi^1BI7 z$rkc$S}-MN^cZSMKavLWYw{&!hj3N_cUCg&MlXsXwo=iDz#I=w@zG6 z%Ng1K@|t1Qe}ILZ@LQ)1qu212qW|IOY5ZDsjbqUhwD5BDB7S(Z+2QDUa$Sxdm7kA3 zMPCHf`dq)LmK=GxN>;&~oc*wZUF|DHKf&D6M)9KPSF{jQ^pD;9F7LlTf!`J#5vx^qEBb}6#xK4W^^(K?b6{aA7=5^?H>VMxX`g)4`_lU3MYMEGZuDic zJ?D%VgpLL^qF1lY#P3B#ugUMQJ_xHlmHF}KC{_fdh+e$;mdD`6ix%yxlY0J<`=j^v zS>7j@zbd+mY}{J!f1;?caMkd!E2AIaY{f&TuQ$Q>qSpS!sa1 z|ACLBMz6_{f`g}CEY<$wanVz6btnOI?V@MotKwxbR$U`{;>X<|f=xAgaLo0~_!k*6 z(Ar(MsDG6qgX_=N*8X1^GSG5x{J)sm?{DA#8x~sV+{_E@yR2j8qsCk88|La&v?wI_ z_wS#s0Wcp8ypH)Or~0!rZThuhxH!Qh*KOOao#H!#(K~luFbWTzFM4Jv_Ru#L{oF%s z0gLrV3tP6px!Xl&hb?{e_M@L%RHoxs5h@i;mhnert3vCg&&uibEvYxD#S%0~~R|GK{LL`5)s4!DltGpBlp zyer$a%JxD7A4XYMOHefS&fRTll?JllHn#&*#dE;rk^WznPbL9&Y` ze1&ZO$k&R-Qp*?Zb)~Xj^^e&(hG@Ws<&14W<7(Hs zuwnFSU3%p^Ex+A%{Qf5pBWuWqZhRfOS zdY99apKg5rh5IJKNc^~>U+*Z`ezn-i=vQL+y=C-Ias|8SJ>Ow(Q4-&-IG>7kTrBqV~RCQU4-u-cZzD*DdP5{G0a8iQ|=&r8|RaW+rdV8Ci)qD3^d1_D8A`h^gFdCMRmS-b#2e-zZGp1 zt~hGZcOQ;%KYGrK4wi06=jmgjMZZ(a_&1N#qQmqpo#^Y-X~7 z;!KX7k*5BWXx?t|eDpGUogMon`cR8&i8tmSkDj8=P4qBXQsYWN-rtIf!-)TfUk-bJ zB~D<8ez<-lE=ily`VY{{QiF@W$A0|WbJ4G=t!oqO=;bK0gnjrQyOLYKiY|Ilr^!!0 zdn`0G`bgal>uRiAdr^sr=AdZ4YyqFbcZE z!{zSrw>tO-R+0Z|9bEkHTGUYmxmeWy%ZTy6{D2rNhu57h=RaKW?_YgD4DQ%&*Sll? zA_HPj)UMYr>R)0&42s(2zgpCP(E&01{$I#=6Z`*Z|8uM#`~dDjKY)L_%lq$y|E__5 z*TBDP;NLay->3$zYtjF!SRu86*B>zcSGPiH1FnBL{~}gMt^f5e=fAoYQtNm9%lQ|v zLjHUF|3BDrw4A?)74rX$@qb~3)Oub2S^bMxA+?_I>n&*UU$wyf%UL0{yno_y|JN+B z|6Q$+S`QfiS8HoC6z>P`Gw(g`Rqtu1Cz1z&K<7T>LUC(8a zpCeyHu0~#qJQH~+ayD`#a(85FWPPMCvLZ4!GC49L(l632k`rkhsTrvdDIPJyzlOgI zzaM@z{8adX@crRK;oado!ncI;!;8Wd z^i=3l=tO9LXlrPFs4%oVG$%AEG(6NN)H&2DR6kTTR6djzvYg+YZ=8>ux1AT9N1gM| zF=wB%#aZVhoJG!bXOz?5>FTt0>N{CZ87JbX{CoZ}e~UlIAL94(d-)E&kr(o1d=?+i z2lF1hEpNk#Wqp+qlzMW8@nPjH$*b zqp#7~Xlc|nsu-n=5c`vT%RXdpuxHo<>=e6)ZDZ?MiY;X~u(50)>&~LAA*;s9F^}o` zkNT(jJNgUyBl=nWkiJX5O<%3A(C6qA^`UxCy}jO4ucc?`C3H*sRr^wVUwc`5OgpC? z(spVawUycuxV8Sn&xzMIR88X{aRSWX{aikbUAVr;-$!yiI*T(B3`7GqQjBOZ5&v()c-JVKnVKFH%?;*#o49uE=w$PTfqHR5qj98pj6xJ_(pJ$c+BHr1&- zZW1$$H;8p)MyzS&owzP8jHBGIUa;dDY;f)i7|j7=vNWt>JV$~cu+lyM5NDC1;e zQN~HcqKp%XMHwd$i!zQU7G)eqEXp{RSd?)Lv8yUPHkw$JaTKwwZsoC&#G;HNh&6Sq z6B{ndXhRuK*|A}wjJ9&wi4B$Ud$a*gY>3?0p*c=$u-w?Dr8}`fa^o(ot`i$5H@4zG z1LVd=wUra=FE`d{y_{G-xv^Gj>%{uX4b*{HAGv`#5bG^BPzPeY{uPx z;M~G{h8hJ+Ij#+KV$>*D${sD(iBY3qDcjV;PK+7_OSwxu%wyOnsIdFiDo%{r1WUoD zBSvk4rL5C>I5BDyEM=|Q$%#>$U@77*fi?jeB1;i>2{Z~~16zw2wF=fEbu^Drt6(iq zpX4!W6|C8s&STUnSW{uI7_|!4ICUV8QLA8$RiEH7Y89-J7*DN&HAHK`W7H~GgSA#X zMy-N1P+h@e)GAoL)lYehS_P|@I+(|(Rj~4qsa3FYRk)L=Rj}%-i+GG$1uI+K%VX3k zSXo+x$I?XYTj}aEJVvd8RZ{E7W7H~GzB+@)s8z6Btv-)Yt6)Xc5j;k%f@Q1cc#K*F z%T$v*My-M+t~9j@mX2wtRj@R5sU3q>0WPkI7Z(}@s3jAwM;?z+t6(nDEFPm)!JMl8 z&STIjzz*gV^>;f4je@Fjb8Jr@qej6Tsn)b(*eF2ska{*Y2|$B0IW-98K=lPq?Sa`_ z9mT0RF!Qt=8(RZNnrqwG765g(Ikg04eYLBN4FN=E&$h7{0ID^cQzKwP_1V}4KxDel zsRb}gsuejk0HzN}`fs{wKA#0ip#TweBM0?I(uTJh`!*In&*J%3r+%q=nIakJ}1#P z7Ad!K(tKm8at|lTHzq5mZB%@f8)G}#sP{l4dvQ{G1MgE3dtu3=3*Mrv;UME8$@`J#RX&Kf{F`{tCcvZI9se% z<|N{5k+R7~4Tn=sZET~015IgYqkaR89m`3**+|vkB;IU@n#)PM*JhP4(w~A za0B(OXrpWcUXtKtbwwd*eKONwVH4eYL=zE zZ=+5_WO{^?O0$yca84r4e03Nnjb^Uan1e(^WwMBJ)CPgZz3ehJ=rfYl&jxWuGW&5* zW=zPmJ~rqwM(Sm35M?B-y^WI0xeoU*>9G!a-kXCQL$p2xUVuQ15%K*8q!@9q`Z5P0 zMjWU<$4Q2DeBmJ#*71FZL|DgH9MWJtU2V%rf^~eUAqCd)J%$8WH??A%^jFu^J~qfN zoKu6lg~V6G+>rKam>ZH_4Rb@vt6^?Pcs0xo>8^&kA=%Y1H>A2+x;liD=xUe+(p(L* zK$5FzYAwq(;7P|f!U%xIv1;tF!69Fe7ds>fvSK@eASX5#1R1eyL68sI5(L?>O+kB4&)j$1=b_(!zk9E{!`h&iBqI&O6SFqL+Wf+3VcttaS>Uh0ZkS<@a?u zInAAHr;_74Hvf%(&9Ct{__O>$=;hzXck$c!YQBQchF<<4-ks<0hP)at550WD{>A>% zzG}Z_KW$&KPe4EaE_=Pb(q3xMw8z_n?H+bpyNO-P&ag|^mi4RkrS-n`vh{>@(K=xr zu<3kvYR0 zV-7I8n>l7&rkTw6(fG``V!UWPYMe8U7<-I6jGK*^G0&J{jF7$kdPbH}#&8Xd z{Q&DYzQbN*kFs;@2;0N%V7IV*wt!7zqgX%Ig|%i4SXEZ`@BRHN`b+xb`UU-%zE9t( z->N6|#rh0=j6Oi`rbqQgdUd_LUQB1&Pul0&yV^_I<64n+T-&E@)o#_2+G1@6+)#i2 z@d8wOjaO)`yv7Si>nqezj`IQ%`wH2}r1lkRsMYNPlzWv|$Ozj7B=;54!@L0X9**KE z&)Ef__?W^iYZrjzBbqJk0+4(}qa`l@$;ZT+avv`M$p=nvqr77mpyYF&4v$^|NIphS zRqOBqkbLAR$RPR1V~|Pm(+4Ay=BMW=H`@gy`sul&?E+H$^zNg10m?q?DauL0pDxNt z%AYRENz$KQ3(Jh!59w;s4S@YbtxzkF zj~)3!sL|V+~PTP+pWC8v~7( z7p14>pgfkI+Jo{~dTJ2Li&A2X0I5YOu}uILC4*K0@=_i%4$T5ai;QEl0MVFnY!(19 zx6~|@7dfPMp`6GeGz^f#a+pJE7|MwpQp-?IcC47mZFAzr}54rRtbYf+#R4_031 z1sZXl`ng@80;{}CEr-sPto;N%g!H1(bF`7Z@I>UJq-#7Ftaah}r0D^i z$j&EC5AfhU#K8kRIBGhihJ)MrDC#N?OpoW2rU!6rCm%Ik6wV<+7cR zqONj3Z=#)#nhux?h>{M7r$I#rOdrJaQPANSuJVhWPm1oFOYD49bV$LL@O%<rSO`UvDbg{8TdDF=UNf#Svp~weO7aQX4X)exO0&Uaz z&4|TyYDzptebmk;VK32ZhMiBsULp^WguO)W44zNIUP4?X6n2%DzyhMK1EvqM^Fh`T z{X9D#WgXB>=lP`SB}}z6&#w*9P$*GAkafsmaVj7PI~1@u77%n@#ESxgu!{{*Ku~tE zAqoiEE;d8~QQYBJqJXIGz@mU8@5P~jJfGyf_+Y$(An%a9;#gRecR(yGsyiSS7R4P7 zA_`0DUOXG_B~tg|>B_x!KB_yU#?qp=1G?#UK52V#bBvu|hGM~xm|t3CHjTV)%HVvIFAdLBd`P&rZT#49*@$Vb^#uJWU*x z9TLN7;w0?F@HBA{cBmmwDN^5c;vnr}<1B8VxZ^)()OYPT$~%V*u=sKq92hqAj^c2s!SLzIyu-W6p;iHCSm0MvM3 zQ2-QqU{L^2d1R4kka@_oiTW$d9iU8 zH$dja#u@cJI}Sn*nT}wlN$4XZwJ?v9&__lflh8**0YK;>eMA(1ls+N~KuRA$Q*=C! z(qyS{Wl-uNy(kQ7y~-n47?gU57KI_LkBGv6)?>UV3`jk)C=6&lWI0S%0MuS=h${ek zFE+##0L6#Ggt0KB_+fGPq2j~d;_gGq2NqX`G(Ri~2AYrY;_d^blUVgpPKPP~rX*aq)@(Ep#W=P2IKU;+5ld*6G* zd(nFmd;rdQ$GwBzZmTX51 zv|G%zT?MQKUqwCwd%>%bXTf4{F>*R`II=&oBeFSiYh+a<9$6fj4VHs3ks*=3k?xTW zkyepLk?crjq}a&sBtJeR3%gvdIqB8<~3UZzHP7ClVsP1GqCBd(N@n88j;8}2mzrvpe--7e}1b7$h=6CX2 zISjP$h5QCSfe+{XcrI_xTk!h4I?v!Gc?4{7zuMo}AKO>#SHK4GkbT}hZr@|?wC@0a zgOt4-UJ$3*W9=b!Z@Y^fwVT>?>@2%HSR));wSEG7#5LqW3gT(<7F4qJDFO=6>U zla+5R2CKv*wwv9_ZnZ|TLUyAy04x+8tyW;8sAW~Q%2>rL%lyOq-u%qGYQABHU=6!jP^!z@Kwk%${A^f#eN5Gg^$60@e+H2T>^iF zd)a)jT#R9ZSRU)ZTCjRxyC~0!Gh6>d|4#ozzoNgaKdE2VPwV&TyYE588q=P|SN%sVGBpnE9OWGe~ zOWGIIl5}@aQ_|j`hNL|~bxFH}YLa#ZRVD2VvLx*YG9_&fsz}-vRF-sCP)X9(prWKL zL58F|g9?&12kDaT2+B*kJt!yXw%~6SyD2Cm<2DARq1K_cy9S*Ix&$2wIt5_D#J@TQ zIRqVosN8KsP)gGJproW*gFw={z?ZZ(C?RQ0P+Zb20l4Xi>w9xhOwvt(Cuw!yN?H}b zV5)9LyAsDJZO)x}%iVi%u6h#cu zpQMO^B`IQn{scjP|9ygf{(A&{{dWoa_*V#e`|l9+^4})t>AywC%L^!?hyNx;`(Aa;GpppLqK|}v}f(HI`1oeGcwe@^iwRL@2wRQZbC{1l& zR%vz#im2twDy`|uoYwGV2CMszQkrW1BLr3bhY7O$hX^wL2MMa^GI3>HCa$E*#1(a! zI763-E9ehUy{8waz02#D3Cii02+H~o5R~!dU!{HdS1JD@{Z-O0A_)8o1ipWspoD*p zptygQAk9BRP|Uxd!1GTNxc({1P9%*Y!v0Bukbi=}(d9Y0F3)M}@|>1_p7sWdj*vY= zm*-}>Jh!f&p(L6IA&eX8_gf5xaFolg4WXu7@{bc-)FDq8Q{*2ZxZocqIIo`~IOiWC zIIABcIHMmWxZmGTaN6HTa7vfQIjPIzoY3X&$Nk-u=9s^W;HbZo;E2D2;IO});E=zK z;6DE@f_wd~1PA>s1o!xN5*+Y16YTfzAlT>MPH?w>8^K1_I{!Ij%{nZ3__^SwR_X`Pb^H&mV@>2vG z{UpH#KS8kGFCe(p&nH;t#|hT@F@iPzjRd#&D+q4(mlNFNFC$p(FC|#zFCi%O7Za@X z7ZIfVg#<}|0YSo_Pf*~`BgpsX62$#E1TlX$!Hxbbs8m&3;m;J|a{mSqF7s!IaH&6C zgiHKsB3$fG72zU(iU=3_lSR0|pCrQh{zMVZ^CyUKu0LLcbNq24ob8Vl;VgfQ2xt1E zMRi3zDPjyOIY)xrDLxv;Ae}&_)Kh;@N0>%xL;F*X?_h67W1o% z(DSQ_(Dkc|-6Fc!1k->BLw=?R9et|^xxPh&wtlAwEq$}t&D6xEq2D1wrr$0?UBAtM zvU3d*aZTUkXkV!9w5!_x;`6^8eEz3+qoAjs>$Ue!N@M?-LH$RgjoRdBhw?}B10p6B3)q~K+{N_NEY<$OGF&KQbg5D z>mK-V{2u-ZEEKQ9%z$g*w?!}i!SLDeQScYo9=;9w_=)hc@Z9jU@YwK>aPM%Ja1?s@ zwZU(oT)0Ho39H~a@MY*)=&jI8p(jHRgwBMHg!YBDg*Jt52LFL2q1mCyp;4iMp}bH> zm@CjQR5Mfwya?P7bAEBYa;`aVLjV3z=Yn(GIpAz}HaRyz?|z{(!x`rcae9F-K`W;L z^zAEvH-Y0Q{0IISe~-TkJ^Kgw8Ge}W0js{=x^xH>5qcP!g2k8zFps>-=xR&h58Np1aSLO zM0ZP9P6towjT8f%mY~0;E9Zh2#H*IxDR`csWAGe7hu~R)_5r;F>urOlXHxqz!DWJn;IiGU`?~M$$SqTK>7Vi;P;sMoGGbjg)jV z8zJc?HeAwbHcZkgHdIm}8zN~X8!Qi;>MWy@Y>=b`8z`xO4Um-2`pX^Son%yu^^kEIX8e75o5G-fC36`;51WQ>@f+Y-^P3U~G#n9kjxTpjDv5@s3Sio`#<}<8xIPN^w zjbJY8N-&3YA(+iN6U<_r2xhX51UE2wq9aHrlfx4l?x z`llz$Cdgy82zoGR&oFJSEKqk@j?N6;uJHF0H9~s^Z`TOz7`$C0v}N#i zjgZ6O?HVD<;LRDK4a=t!w3hYKib2bXXKdMwQnX;z37WHN1kG4gf~G8spb5()Xw0e* zG-8zr8nQ|R4Om4waD7?N^;ib|QzHN#HSfIl`S>cnQKV zB5$2AW0WGqbOMKI1n|UDT3g;-7Q86ozNWmV45m;7gI6W|LzlOfh8LV`O#c&(q^aOu zN(N3HthIj#A<>od`tOp?>OV_5qyHr7l>Vcnlll*mPUzoDIvzYK=~(cHq@%&Zl8yuq zNje-nDCtn}fTa6^%aZO5E=f8VT$FTAP$cOU!99{T1_vZ<2=+@_AMBHKYjC%ub-`XqYlA(K)&#pH-4g7QbaSv%(oMk* zNvnhHl2!%VBozjCNm?0fm6Qs$NJ<8GN=gKqB^3mBNXidxmlO|flN1X!NxCuEDDG5! zMF3U=czpEb!Fqya!L0;KgLMQ;g0%#T1JXHtQ9wGUFAPZM^aTOwoIXDwozv$9q;vY* zfOJlu6Mz)~&ow&$D+0o-0IUcIGXt<9Alwj;7V0yCe2SSK#0jPaU`4<*Q}yq}L!(b2 z>C-0%U{=6?CIw(tK$sYSSpi`}0A>Y*@d20>5XJ>dXz#J4m-?7sG5s?-SVS-?0P_N- z9T|Xm0bxV{<^_b|`nLqb^lu1;>R%HK(Z8Yt4<`N92kBo@#6Z$v@Gkv=lJ*bg5%ded zNP)-g8_Xf-6U-*)9n2!=70e{)8GxAr#6r&_IoEpxGbkdLWL@tbOsAyXg2xCt>%S4S z(|;w%(SIR`22T*Q2_7eCt$$9?DwsylQvZygMKG11c`${bSumNPX)uYPNidP1aWH|P zQ81pMVK9!MK`@q}elUihUND-VZZL|VPB4<7b^!JeEO2&3il`L~C#V?=Bd8G!C8!<@ zA*dD%Ca4+=BFG8`5@ZGg2&(9x5>(bdA*iH(Oi)q(h#*7%kf4HojdGDrO(eJme?b3~ z)2|Yg4f+$53HlL~4*C+53i=R~40;m;0a!?|R6ez|dWoPX{Zl;1BS;H+5EKh?3A~^? zfg5zAy(82->*1g){Sykh5IFk#1YCcQz}DX-u=Fdmw^^Pd4E-GfroT;~>u*sKtsI2V zgZ|G0hnE6+9sZ9)h($pMp)HznA!sk@e-1023);!J|2)8`Dfb7h2uAE+uK(B2dw<<|+PUnUgueSW zXQNZ-EOTbVxcpG3CydHBb!x$wdpie<)`GoaP7l_Wv~3zX{CsufU5#fBjec zE0_iFs{N#W5ys#5*;`=rJz+0~zWEq?fZfe*V>hs?+GU|vu30}qpZp!`1?Z8Vu?|@~ ztxeWy=#9^{CR@X;-c~28IlKZ@wn|wcOMyQ4N9J451AoxGANt=r&D&sHeT6yKoCq`i zd%>7`bF;Qt*(_-~#vjHv#x>|`KVv)yJ?(?W4r7zC3P#fB7!!@5MlYiyjHA~!DjOvY zhy4Mg=pV7S*mLY*b{6{9I1Aur7K3ilWHy}jfqr#MR+m*_@LI?e7)Sp|e@lN}e^}1? zzg^7wpQ}#>iSMI#(p%_t^~!ol-O>KgzR|8}uWL_hm$j4H0qw5;eGULmlJ{6$oLrMc z?=g+n#i`Coav!UUQ=OCGK8Eo))j0{?W5_tyCJD}C$T-<13BF^<^CCr?T8BzliQnp{kR?qe#iliiyq$$P9$ zhEiZB(R&P{z20^boyP#pxjYHJW4NQHY;cm~I#!!bgsx+p*Txfp;}~#laU${@t1V81 zo?|MnjVB_#wig= zav96UDG^C>8OugL_awQDWuu>al3d2JaY{szT*k7|=RJuoV{k~A5|KoYF+i9SktBz) zY?u;}M29hm1*iBV`HN+v-+mJP#UL8|_LJx?1_)CklHe_d2rm3d@D;-%;FO3YxQZd8 zJAV>9#ei#x8Uj}_sG(X|L*yw|OO&2G#cGMtqoU^onB zF`J@c!hxNvMbU0qo~%jHrm~+WYY=P74|cM;$X5;UMoU%$)OdBex2uZy>X_dwk-WON zw=;>wyaiVH?qVgh5HF2VH z#NtF{#bK)9iONv4I8kYe#uJqy#1oaI6yijII8jwPkuOeE6;D(`q^T-SRGe6xC`}xu zDxRnqMT--86pbfx3GqY`N+C`Z7AMLA58jn_G9*rvg;nav_&w?rp5$VOtoh1~JZTe; zR*HDiA|9%)pWYYGm8p=yNLE4^GO>J!_P}?C3RRK}j0W(|k1Sxw~hO&|; zNZGS0Ad|9Zl}9FJ&nkyZ%AQq1`H3e;*|XBr7Cb@9p5>|2c!HEYE36!|6R7NPDysoc zfUv_&o@FXu+6mBgj5at=Os8l~*={F5*I}+^mhzF409l7SI1?_zFLnZi9iF&MxZVlW zb%@8BPoS^^W6dW>*)xZ#zwiVoJH`)224P3eQ`YeWDSKwFR+1-3*)yTK?F1=%W`i0$ zLCT&fY8#aub``aa(he+Yo3uR>YTHhrwyQj|#z39`X~!hhl=tieYCA+%t!gJw+5s~G zQP}}A#@h)LcEAdic!G32v%GRUPoS>DG0G{o@dOGxu&8QM_RKW3B~OsDXBJa0@&qY+ zriV<*o++vwl^qUmHLw#X?0{wlPoS>D5e;<`PoS^^Yifp-0A+_ks!T`>!VVQ(1uL3_ zy^5%46n2eQ5fzQf4xFb};R%#>;9T_%o*-?nA}SQMUFB7 zp``6qM1_*JSHTKJZHMI5ly~g}iaQ(;D-^XI5Gxd=9WY~vogiheQf>%Okg``16^F_W z$4FC~^8`veu%}$(3DWi|qOwri;V5{Ig0y22Q;FLN)OLtAD)R(NJ49=01v>%S4) z+f`n<8a$;a?SS~eg0dsx0}INIi8GWBc>;tTxg0Vndu35*xWX8prZ(jXRCZuboyij< z?UgOn<_VN`h&NSu1X0_8pPlE@ zQua!s)Tr!`MwFVQz0y#vAy1&RL;PT5)OO%J^>v;gaj%rC!f`;{F<#ULXgji~4HS2k zSHjvrZ3o2KAZf3JwL#KeNz?{PJM1WG1GODk)CP%rr8Kn}Pk^{%yr+J~6QJ$LraFr! zK-`fHWYYFZn(`fVFvP{KgwZ7J74aP<0n!dtP!X#Dm0jZ%@hvXFi1B?TLDF6k-&YbE z#H+j_yssowLU>!6~Vz>wq{Z5oI0D zFXl~>u2;l)lc?*E0w?OCtOMdiT~hUmVhSaxdPY>azzay#GukK@>;h1AC|d@Ut$;*5 zLrmHwQO^()by3tco`K~oAXU%EQ*N>gNYyiP4Z8qUUF8|wVOHZbO5Iv*#|uE!anA;7 zH(mgujx5Sds-7XrOsbwC%8aTGhpF1aE3~=h;|Q@PNYOJqEYKK;hGV

o7kWXT_qb19l(n@TF>N?MDSx*IOG-Ngw&~;bGyv;cn35ZYsvl z%Z7`EP3Uuf3;yx%!07oCu*Tl0(7mBuq0KP&9=+q|z}Wf7Q2$W(P}@+`Q0-7=s9Y#b zzgf@M7r`j(cvwH~F}+AXq2HtL&~Ib4p`Td>W}6%Oulm>ehx%J=7u(F%u@qaz=0JaR zBtp6&|<1hXnJni4MUb3EqRsPOeN3H$VcI!6l7At8jv*uaTV6DF)(EINKtNk^B z{(mN{_gCD4C5g^|vU zc29%%#%^~r%+N@>OJNO%N#MKD&+P`YGn%;BZe^I8;kr!EjQkq;4%TwG8hIn~eB|-S zrO5rTp2NP#w#cT)Es+Rmm++Qz0yI=~i4+Rx@o z+Q;Tex|_|Fw3p41w1>@>w42S6bd237=_p$v=?Ggc=`dR+=@45g={}h8O6~^tvc-}P zvPF{aVGAV{vGtNJuv;aaXX_-LV{0XyWh*6}VJS)Xv!tZcEFtL>i$nFHhr~%V@gkha zmH!=QF{;{PY&(I+wh_1tJhDL0j0jnijWF9v|Ag2U0*Bp6z}aR3o83WRF>sB-y-hMf z8wR_L{$Xqr{iBmj+R(sj58ky5hT}t+yUTepcNf_PN}5g9bfXqKNe8LPP7qXQ#|f&j zV+2(h`0L@Bv&iypWU?dlPZf5UpfWo|P>J0~P?6nBkiiZTRAAuFhlfcgJG)Vy9iV^8 zvHb*P**=0Y>~4b6Y%f76wukmENyd32VBi*qhx5ruZ}44P_Oh(N;q#WIxDsE7|vO5KT3d6b^_WBqzxK66`xk1?*c%`3#4W zFj;)OjEb?ZCEdurq8zPYUlJ^5G>T*_W1myZQbwaR#u7&38pdMw36*dWjk_2N83}>0 zfRPXw^BD<&F^`cD7;_noYZ!Bw)PdPd>cA`}bzmlwI&cG%IxvIL2!b)4(FlSujnN2# zF?B5EZwh;pax-}hMNDFE5KLsR6HH*Q5sYWA5{zT7&`x7VQ^XkdGQnu}62U0;A|)9) ziXuj^7YK&4=Lv?f=Lm+fXDRIv@U_KjKX?TFF^D}w5d&##$r!+%rhodgrwID7Ckgtp zCkXnm$7!eDG!A9-Vvo^3J=voKdF&B_9_(RCn>&=k?le*b3)a@96rGGZ1Ragq1nrG% zf_6qNg0@CYf*hj;LDa}3Xk%0%Xw4oXXvH2RXvrQRXu&QMG-sCxnz4%nO<55^6Lx{1 zF*{Gth@B&7$j%ZpVC183)TdE4qaFh%eXP&AG}>m=VW%l+ZFUNVUN&l`vf3c&G?i5b zNvEk48YG>jveH;1?sZd18MjDE8aGQy7&l2OFjh;-H&#iC8-afg2e`juenH(i5D6-(q9XV6$JB*97he>?5TiunK2Y0s=}kjI~y zy-++*W-WQQ)HHffM3%g3su;O+B`X`<2`U-g2r3#~2{Mc>1QiVMV29_^OqaJ>d7~5k zQ_ko}P}b-`P{wFaP}*omP|6?=K(nO0KLaC&4u_K}@IEbJLXObF)g;|-RF!nv z$dYslELQL^X@+vrpt+=ma>A%6Bl$3P92qf({d`bI^5|ZvVic8vSq)FOi6qB^upy{E8vdeH~+)jh0hZ@Qb zBP`>#8#F!CP_`M4jJwO=a2fFBWh=S&8p;;KmVe%9SdumyrldPy1wX2)+rdwt=r%)_ zv`Km|8_Gs71JS=53`Np<_NSy<*&p(>>n6#lwd{9EYuIm+ZehRT_q3#*P*1-$ShmImwne`daGz6^c;i?9md0dpJ7tS^L~ z{~VZCPaXix%xtrw>6dV;8Xvp{ctyHqwyESZowSMq@FY%R>fhF|vyc_G08PGMI~zL&#(=HXJ3! z3&~z=aAdL<8#Xf8iwz5z?8SzGO!i`MR*l((U@rz6JVZN%U@ivJG*d1rAM--67mGD! ziyAqFU@#VcTu^rLLNFPNKhAgHgYh&E$*v^!6-3(;f@*r~H!h!$hOj!k(X z8H`zb<*HqX24jeB=kh|b7qhm?CA$#q#Sop-$|(eMu{h^h(U+7;MIZk2m6lU^EtdtPx)cMq|N8fx&1j z_y{lX&fmSZgAUSKdC3*G|^rendofx&bvco#63js@=o2GgFc^;oZw3bAvEVy^!FVkAc3`j`3%(5)%*TQ^0fYTm@J3)TAPe3A z3Mgua|&njTBAPX)8 z1`D#_mB3&@7MuhI3$ow@Fqn`97XbH{oDbYjatyeye?u7FJyAjR<>`FKnunXZFz|MrT0Xq@S0_;dQ6R-o}4S?+l zX8^V%oDSHQa2k{-2M`|a$?yoTj1o^mZbLi~xi#?we-AWA!6Q$SR9z$Snw z?0}5{QP%+*0ivt}HUvaf2W$X{q7GOO5H%gJZc}?DN;+U2KvZW4%LCz5?1A?3*RssYuN2~}4T8@|j2uhAv z0T6^7u{@yE@p3L-i8>DVOj%ITl_=!EWss$kmqtbLCY~sab%Ek zRB_xmufD`nAmeZ%y|X%jr$EM$+o?G`1u~ADqmFb^DC4-pS=<|S95>G3 z1`0WDoKjzMQmEv(aT5PQDaVZyS`D58EysgRMFuTL9*!pmEk_=P3|fvn6dAM}c?dFS zIr1Q6&~oGf$e`uOtuf=E<;X3OLCcY=U?D)ukt-ulCa#1GT8{A*kwMFmGmt^ckt-mB zmLr!(1}#S}hYVVd?5HDo3bY)VBZHPB+sL5h$QCkaIkJHaT8_++LCcYKb)=mFEr+)b zKqrM#4l8=ol|n7Y4RNJF%wY$uv)Y)aK+KWbsY7`R#2h(C&2~~K=D35nQmE#*A+8k4 zIc|t6g?f$~;!1&_iw$w5P}1QaaivhxfyI?VQ3n=R3RN9gTq%@wU~#2T*MY^ALSY9M zR|=IKxHV?HD{)I?)OLukf`veF2d<2a>JD598RZ?gA~Nbba0YUF;tI&9@DN`f86_UL z95QLV=BU{`MH;VhWYT!eMkbBdEM(Gnc&dO&<28m%8n5YUww(fvhbyIFbTeA?9Udv3 zYDx^($xby9YqG-wWv3bogy+dlH4+Gq6Hhgy#BhyxssS-vBA%*G3|EM!>Jh^Q;;FjC zaDD7l9dQ`AJa($KK)5<~DqA3296MD@AY2AUr{K zs;WSEfb10bPC*sI^JAwn1;XQFr>Y2qr^ilJ76=cIovI`do*g??Q6M}zb}B<4JUMo% zf{Plycy8=ed4cfQ*r{>?;i<7xWd*`RW2edpglEQ1l@CnZ#}VWUJ67WM$+rSNO}rI9^&yMO(|4)VDwy0q09rL=W+^l9vD5BQz-Pn z=((ICrLTvc%PCU&dg!^FBBifaUybn;DSbWkTuzbF*F(?c6e)c@^juDn($_=J zJ^V;hij=+{dM>9(>FeP~no^|n_0V%UMM_@}Khl(fdlJf6m&yoQ59O$fWkjuqcqk*T z|2JAMp@6r4+*<_w{fV%`Uw<+0zd3mPXTh5PX)x>mckucD7}oZC$$i4T1ik)y-Cgj# zzcp^cUETFx{cjhZYA*ikGMK~@$bvX2QXs%T;vg0|Nj`Q<+m-e5xoCn zkp(crxw=sMZeEDxN z%mkPe9to@W^?+~xwG1~1*MQjorQqv-hVV`J1S|rthMoyM4BrJf4s!x_hVB6GgcN)O za9(IyXl!UmsCTG~J|h$jHIW_)#Y3=CqVuEkh4TT-?tj5~{2#5}rw^m``}DrBe%$!~ z>neWd_%W~@?BKWaHDEnh#^=IpfAlfv#XIvh@TI_PUWJ#1`Tn;3r~QNdIm{qy; zRT5Ed*HRS;x|GTw=uoNxLAO%r1T{*LNizbwl@n23UxyL&add*-D%q61UXDgFJsp{~ zJe91=UJpm1zj9R?{P4P~WIOgcJ7gL5Iyqz!_BuK=)Zw*vXsE+$=b#N()x5UO6oN+l z2ZDwi2WjE22K+mM`YMg4c=hAT-M9rA5fYK{3=1ZDoa|PzfUpc z_?%9?J{h-z-z{l7tldKCw(&iZ?gH;3irWfbiXqy|HG z;%)+aHqmNM-Cl1Ksx3?|tIoQ|=L zZ7?`tV=x$uZEXC$xxdA^KIgo9-ns9d_r@FJ@dxAg?XGH7cUR4C?YZWhi?Gq-{&KLv z+sZ5JJ?<|D>pbo+2WvgRAD^tDMgll8w$`o%FuT1u?BTVvU z5+-^x2ot>Ngz?@q!Z>d#;TrE+!dPz#VT?DKFxs0$80AeQjPxcDu8x_PF~VbIM=;!D zWk)c~dx?)3>b*!9;(eVk*n5F6$a|hJ(0i6Jz`IE3?~Nz)^TrYSde;#8cw-5@y)lGd z-e^KkZxo@2H(LPu{Hp@Vlh;ZodE zL~qgd-cUk2ZwR4{H<-}c8$@X34J5Sm1`t|!{Rz#Hb&0-DGp{e9smBf9pozx~-=MMA zi(hKw^&~WmnZIcRuLrNx_qr46dEE$gy{?2hUKc{nyNnQeoe8zQPJ~Nh=DktN>&PqR zUI#+fyOdDowI^h}c7z~i-bm?~c_aB=TYgDFL;H zL+4|Y3_ay>Q#frs>2XsyZ9US34Ly=f$m|7NZ|;C^A~ewS5yX|y=8YAuF?S5qFF84!2HSX^XmD~>u72V$%D!9Kj zly~1Zw9EaCp=$TnhIYEYGF0XM(om)Q3quv|dxmzn?;5(({kfq#+;G=&WshKs%hg_bv&+?9dXvl5UiwCq zl}C@+hXHn?2vrPt&1c)5}pq|CB!prSuy1}OSNroZ@)rU%iVeA6u|CoTeqQ` z#Z+*9b&1^QtzjJifQ^Uq#jQ_jNSiTxHn&$T7>TZ z(W$|yZmHIou9wE%{~wdTLdV3n&@XWYo&R?yE0bH3E3xxGIe8UM|Lcr9@G$8m{+9SC z@h;B(dj(zpr_iZUlehyX|1C?*Lf&I|qIaT0qG_Ub!oz*`$MIjre-wW${D`E*1T(#B50vl2^sYTX80p>UF;C!CBE1{&P5s!%IX2dBGU5z*?qKgqH zL|kUXaS@%3I3}W#5f6*#Xv9MzIv8#JwV#8*xBHGb8qkXlleh5lxKPE26Ox_lRg@#N8qq8nH)210!~e zsBgqwBI+4YBciSmB@x&FjQ$Em5!eBYL|z2803)$W1T)08RV_j?#PW{bDFQj-NK}bH zk~k8TB9JAHM1=^Xi6gN?1oFg@xKjiY#gVu}1Tw{uxLpKN#gW)90=eQy+$I9a;z-;o z0@>n7+#&+$;z-;q0{P-d+!XuLt7O91-X_e1vAtE831fSUFcZf1W?>|Zkr=i&2_s)D ze4{WE#`Xqq#Wr4FFT9n!PIwD>t?*{@8sSak)xtNDR|#(3vR_?Fv8J{0dB=2;&k9b;xym_;uPR~;w0ca;zY--m`j`hoI@NBoJ|}DoJAZ9 zypA{qIFmTa@hWBj@%!nIs975@L+l6~P3!=KNyr1*0bvn> z&1<<8FbKhBK=^}TQ=r%bunADy0oWL5%%Ks`m_q}gm;)YAzm`{FyrCXqdIh{eey+O0 z@CM;J!te&+oG`pWxVEtIhFZeL8_I>@4f2?*FuXyyOc>rEoDqgM2>ZgY24O7>XAoBK zstOo`upg8VhX|+LsdafNMW}(tt#jV zDeD>QZ(apF0pBV$B3ABJz!LCVNev(2RlpGB^03%3w*r13mxtDOE8qr#Lne6@@B(?n zV3f#JzzT#1p|-7pPLQ&mwoa&u)={KMS?5L22~yTm*56bGogigBDK7#}AkQBt-wQ?{ zJRs()3i?0_JIi?4^Z^tI%lD!Wphj4JYViU2NzdV@78?*g3lqB;=k|-u!Mi%<6w#Y!pFc8{DmI|OY9eZ2rQvr_$XK+zwi;T z1b*QM!4mg{4}&G_3m*bY)E9mLEJ0uRez3%R;e%ia`NH>sCE^R;3zmQ{ydUfs-Umjw zkFM_prwrc%M!1iz-wj5%k9ZFl;XdNsV1)aK?*b#-M_e<@+ktQ&aS4oYA8`?ka366V zjBp?EE-=D<#MNMg`-pdf5$+?d0wdf^1VTteHNx~A~!4nY$c1VN= zPY{+64<0WpF&;clSb{uwtgu9R@EG9{G6{Ljqr9b(5L#! zWeN1SjOw%<66b-aPTL`29*F9+9TMe%s7~7g)Tfv8T~At4@!>a-ma;en`5 z+aUoSi0ZT*65oNH@h>yHr#i-tc{>>1QyqjE-c#*`8QxRv5PWwayvtMD)OU9vxC^!h zBDM>*0wS~vwg4iq3pStR?vSt!Yz8z@y(v(lI<7VWnxNhoXo7kppagY1paD=~I}c=m0pMIgOpy{m1~^nfd3l0ET3G;mp4lnR@60u!Fw^pI{E)&w}p< z-@rKlkE0Xd0i5+$9o!b&h*JO-1k;0YIOlIb&@E_(GXTQC58^oE??ZHv{}?Cyy@YJQ z8E*x;$PZ#BU^OxVn=uve`tPN^Qyo~w(k0FC_NbOYxb*I{<)**{954{BA)Rk%wCJA;_ zEmZ^b6DSq){_K6^{mT2P_kHZPJ&!%G)7VqG7ke~S-mT~>;E8^Xka|>@H}EI-1NU9z zkX}be!FkO4KY~htqI)M!^IPLyj~N4#+>!1Ow-?UxYk>&^Wv=b~&G`gf1wX?{e&2AO z!<_#Um@9ZU`U-BtIesfJ<$pRl3$Abm;OxG3nD8GuK6(rOY=4N8`+kh+f-l+6*k|mA z?0eB&P=Ry%HrgvNVQ?lg3?ngFpbv5kZS2O;Ooe3X3(OgOKlM)P&D86u7gNuq&ZdrG z*5KX9Hr$@tl3Igv`{tys#k|20|LIKs=Wur4DP$k^Cril+Odgb({tGaBZ~|sM3`zDz z7NT{sQL=W@PrRM@K{8?ZwZzwvjX0Bd7<2viB&rkJahBg|bRx{g0NF9fO7u^3OSDHf zLfu4J!of7c&*C4%-;4hkSqSN_^cIJ;qghgrhBu#7O*`aNMz zm?6v#1H!B@O}NhbfG{)k2{S@Xm>w#^w9q3=4PC;u*6#>YLWeNf`YmBnXcHzn%z%3n z9A?11@lF$dX`IuTaE;T5FxF{E7~?b`jJDp#4}VYGyE0@3(YqpCgv!_Yac@}2{Uq=5 zko!sA&~Of)bydhM5O0LTZ2)h$!)<{7>{&w`?htr`9qtf#gBh74oS2xG}y}CN)&(y^+f2PZ< zU-KJwcFfbqN!uv5=|WQmT2slw?reyyb~It2w76UUIWLx6Y4wWHP>^@ zYp&~<*IdUjFExkZNzt=H$Gp_qwt1uH;t z0Iqf3<|crPI}@h#UF%7k+X1figw52yYdvl=_3v7b*) zQTs>HCV*?5wtr~o5&KO;r|cgXI%)rlp%eD^4IQ_?XXu#yT|*Ds-!b%%{cS@>?Kcb^ zv0pdzp!L;jIc&dXt{t+!W#|F>n}+VUzIvqx?QfWC_hAsHY#+JSz1CN+`GED+Yu<0a zYQDP9e#OvU`(;D-*e@Bn+kVl|9{cNtcH1u)y36|NC$F)eH`huwt4Ca`Xg_DJ6)+Ew zuO)AN^?TW6KWna4+ZPS(v@aN{vY#4tKa?2_G9MSP4>Cy?doo`&l0v;ZxFWFX9!o;=EujqqBcJ) z?&Y=lVR5gj%@2#)wl=rZ9K5&rA#pcbuk-nvtk(!P+K&=8THhjUuul`#Ti+zCvmYU> zwNDY&*e40A?GuDmmOLRf4+ zNLXYaCM>iM5f<1F5a!$W6Xsbj6Xsek5$0Gg5@y>63A60`2-jI(C(N|(CCso75T@Jv z3DfL-gsI5AML*ZIIK@7KDfV8%WOO$~S0>r_5GLAp6DHVu2;=SDgmLy=glnwl2xF~h z31jRU!f1>ii@xC~yF?giT_9X-7YQTm-w}q}zaZ}LNB|D(9^CY^sp-k-R&KOZuXsouJ#>- zF81w&%dBSzo$c*}PWEktj`ppD4)!gCORc8~?d_Wh?d+QfZR~A?*7jCHD|-u}rFEXr z!rn}1Zf_zqvu`9cwKo!)*c%9q?e&C4_BujC>nTD5do7{9y@pWFUQMWLuOig3R}yme z3PNZ-NvLfvCtPAZL8xV#=G}688LwpRrG&DmO&%YjjD0q2kZfc?zj6JI%xMZbf1Nii|BW7FQ!0~4q%coX+P#J zllIwt4DGdh8@k8tW$13Zr=dM|4@0}{?uPC{RU*Gjjor;q$?j^XXm>GGu#OtaTSpA- zvM)1KZFe@b)9z%b%I;{W((YiW!oJkd4!gafJFN!|-GRzSzLwkVb}CUTHX{C}mHJKU z?bHuauVIq>)2TDqOFo#|ld4W_Pi;=EPFU*RvrjDd;%NPno`$G^;PgE<4C zpZ1gb3;hYE9=@aB)UWFoF>Tny4lB!TQqgs7~+JL!;)1!`p!HHgKIr{(WC2G_H zH3KyXSF0hax9Y4~<2=FI%2x^RuinR~On4jf?Owx)f={Cs_F>eP?m?~Qc5ibu$#Awe z#T(-dM~y-^%qeJwDuptfQt&0}6h3g@!>oeuxUaa+x{tdj-NUF=_%G%bP*49^{O9q1 zB)sHf$>XTw--A;FZcT3dr}OywC%Y!wCL80<`HJq&rRZ7shy5q}_sCVeWq;Rx z6_XI2__t>f@+3lg0$vwBy2^SsXB)aJ{Gq9v`uA7)$Wr(N^T?Wz3twgJ4!JB=)}HXk zsgErut}XMRi)bF=6EEbFhMvhKqL8hI=i-E6xftQ{oJANK{(~?i~9RA%r|H+Uy zUus~;n=dsW{Hyue6Csz6>Z8nPZsSw}+FV=3#wko8!~Ivlbd zOIe4)Uzuk-5dPB8{oyYR9Sq+ybYI9DFlF5vvK~uW2f}yESNDg!DO1+IkT+$@+8gqw zOj-AYyeU)G-Qio&uh_dj3<>}L%=YkSALZ01jI_Aw^saX5@yfsEc90Q5TC8zgGD7^) z|6|!6-Q2l0`X_WVX9}UIGnvrDnM7#pOe8dNCJ-9N(u4-ictU+=9HE|b4WX_xmQcqT zL&!O!31Q49)OJP@E{SPEEoUU5+_{>Nb*>_mIad-gj(H1yE$2m7)Rj4xa7E7HW3)4z zpqya@&$*o7#`s|EI74~Gj+tkroFTlDjM;=lEJeVOv1pa29j;~+%3I^+bv);AHKVMj z9j;uIb>891MWLN9r7Mo zSvy1C`zos{e8W7qGJM@oMfjSb9pSeO-5Gw<&>bOj49dDaWEMeL+e2m%lyzJ9vU%LC z;Y)^Y312jHbNF>bH-)^pQ`^Glqu-9&8uFe_Z3%gsrZ$JXO;ejf-kqr%L*A6BjUjJm z)Q0eBK7D=2yAQQ4D8)`OM103gw<=!U$&|VURO` z(BJ7z=oi)y`Z~P`eZmrX ztiSR~=a6^Gs#CawS2~7w5;}x;5H7X;LTDe}PG}cyC$tTDr>xq9xAIEs@D@U=kT=Mx zrS)fCX%XH;XdZ4OGz+&9nufenR!zdqywW(_L}(P=NN8w%PG}HrB-9T#5bA~N33bDD zggW6`Le9*kQ(?H8S89i=2$$e^mgtXCD_lt^4|%7ovLSDfRatlgzmy4=5d!NoLK>s! zqo@1fQi2Yb5R}uC;5j`AuJuQP<8&w3)+dCN(~XdHx)KsNAtL(DaqHtKEGmb$KOSy= zxo+{SuZ7n~0mHMNb9hVSS(>?3qkT>U^^-wt8Jnm>X&d`zY8bc3;V+|b+#~3;k@;2SG z9te4x?pgPTBh6P2hF2T9FTBdoz2TLH4un@2+8>TEv@aZPXm2>o&^_VhhVBlB8rl=` zHr>POn#Sf?cZIYw&#DP|bM9HCkT>TZ42u@$S%r`m=fSXOY#t1Y#^%AWc>C?auz36J z!LWGy?OBx}Z@)dOBIND2XYB}i)9qPzhP>(atUE&9bbBzYuijzX!>`^=w}oH5Uv3R~ zgY8+jguKD_teZpLV0+e0Vf*Oq>TL_#5w?bH30uN8gw0`V!ltkl;l{8fVPn{Wupw+t zSRXbctP7hG)`m?8Yr@8a)nOyTs<0tpW!QkQBCJnX9@Zn=5Y{Cu3+oV;hB?9#>qDvk zZx|oK`F}sndDIbo|wK8d;FKBTVjVljk^EO{P+EzVt4;V|0(S4|Hrfcx})2_p`SIg|K8ExL!bXs z`UFn?E9&if1Mb6TqQC!goIcPFv*gQk0{7qVqvrn&oci||=Kk$d)#_%o250_FRim&| z-&M6zb(N2b|4+PMdOySt{Y7+@9!7syGpO8lqo6i4y^Si+cZW zyDwtm-%0m=_bzvbyTx7U&i_xV{U3E6bnbC>IyYnDKTrD`_P26iF*=NiEW8h$VyB}T%8z@xD5B{Ih^qK_xK;MqyB^V ztMLo*N8^X%d*T)Gt?^ay1@Woz(eWYPPAQd&d+zYq551jID+L}Fd&t`<#Zus*v7dN5 zrCJI+B(~MtDdke&!Lc*mPN|my4~iX9J5ex&%4KZc#rCS5D4B}Hc@Zd@io}z#$Gx3W zHid@`l&4GG6nH@FjM|C9spvsZ#5<~;D4mMLY>=A(yt4Qn?ff}nw)QCWpRU}Fx zP-hj1q6k!4MPio-)LKQNS_G=CBC%5h>a8MCB?1*!k*E}bnyW}uh(OgwwlwpBa2umFnc)4&J@(seR$xDS>k*^nS zNnRX7Yjz9rBH`xbg~H9q3xu1J=L&lYY>o+aFfJX5$Kc}BdWx3d9xx^R8+G~s&W zDZ+KhlZ5M#C(36uN1h-YlE(|zCXW-oggi#L7I~C#Ir(bgEV+N|UT&Y2m zV;8=#u?sD1>_Wv3c~!cCWaIEKIzf@K53Vg^N z>)CirRlzJGaWU3bRnaXR6wSY-s^}Ju^-Sy$uL^E~@9T_+9rmhV7Q(}0H+og@3gKa~ zqh1xPLU<^8lB?hp!b4)OdsQ$B;lZ&=uL?dPJSetCRnaCKSQ}mxZNjn6i=a(l|4sgB z*n~V~pgbKeAv_>fsj6ra4oc-*!X%dcgMg&d5u^tsc zlW?rlB4`qh^@xZo&2Q+Gh%1aZDS{^9SSLi#BpmCwh+*bo$3)O19P42bGzrIgNCZv7 zv5tzMNjTOK5i|+MIxK=F;aG=6&?Fq|0TDC_$GTqxO~SDbil9k2)_xH*3CG$ef+pcu zdqvPB98|_Z&?Fq|ZV@yI$J!%;CgE7SMbIQ1t40J&B6|OnM8G8?Q4|52h{P@t@QFxN zi-1u?Vy6f=MI@?3z$zk9DFR**i3$-gi%9Gc0k??6?IPM5v0X$PBW@GX+K5|4z%iod z+$^G{5jUYCzKWjVY!jwuI9rA38O|1AdWN%En4aNm5~gQ3Hwx1;oDIVC3}>A%J;PZm zOwVxE2-7p1)xz`)XQePb!&xCr&v2Ft(=(hKgy|X1GGTg#vs9R#;ao3F&u|vU+Im&= z3}=xrJ;PZjOwVu@2-7p1`NH%JXO1vE!oFq?_4?8`>nIKHhaK;PMGn{e4^bBVVxRRdXj1s12I9ChPGo1d2 zSC#Y(ryt@~B|XFGE7$26P9M2W&v1GR(=(i2!t@NMr!YOk=^;$daJmcAGn{V1^bDt~ zFg?TRB23S4It$Y?oKA?DmGlg!qcAkGp%gzF(V zSHdua>k1pcs3UCrA}4J8qPDQ{i(10QFUp0DUu1=iUz7>MFXa1YgkcxLzA)TESPL7o zP_Z>$r7;Un7-k`lafIO&!YK?BtAtg+Bcsb=6zGt%p4%q(|Bd5U%l-eaGe6F}mU%Af z{@yk?DsMyC9od^yFHNl-YJ8nfV zFPIXH#L02pF#EqjP!=Rn?f*ggo%Hw9ub|fdboy}m?sQf9CY%+wC_NoD{+#^Z5cT~D z|8sQxzwLj|f7w6ppY$K_cl#AMi*S{{z@O@m_J{c0u_Ip}lm6oRPuPwBnf@;B{?F@E znDMt;S75^5D!l;n{YL8{nC;h2H`3*(+y5)(`n{`ufT?~L)fsgJ75mkg{J&0JuV$iJ ze>l4SJE~?XMA!e9$N~J%CjU?JuEN~DE?z54?F+m(>hyo>{tR9JFQH2Rl>30Y8`Ju> z;vB#Q?o@X)D)f6`QeQ*V=O>&$Iqy3^ao%vAcOJuxzJ1v1zS&vhEJVNmC})t<71R0Z zIzINfKS8(u4>9fkqW!3S*xrL`{4J=(pKDJ-uYW(g6DIQ2#-#r*QXi(?MTN$zsK0+C zbqLiNm8os0%~<$vdi^u0MDlao{lA_3Uh?JS)5%A0vf>_e`)|X!iVKs|aQ{Cv*)!Q5 zyY;n_4o+YE2z&K!CccTY8P8&;exI51za()T>JmmI`X)Lhnj;6GBnI7$p_G+x*F~O$msW#>x_(kAGyxR==T<8Wb}Ip zGcx);g&7(B9>R=_es^I;M!%adBctC{n32)%BFxC>cNS)3^gG3V?d@V@^g9YOGWs2a z85#Zd!i6SjEsIWVMa#3sW2m> z-$a;^(Qhow$mll`W@Pjm2s1MJ^@SN3{d)2G-Y!N)zpgMNqhCjuk zSJkeojJOcD)vhazcqVqi+jT|sef5ZVGjG=j^6=O#-mc-~Ve(uj5sBts}UzfbTQ(Dh|7#P zE~2v$$3%28;$aaTjd(~z2P2M(xYURvBH9~qSVTJ`4vA=M!~-JQ7;(Rd)KaicqK*-jB63DlhzO0iT|{jowu`vLh}%TeGU8SdSDBCi&vW$2Z{v<$sMn3kcJ3)3?64Z^exy;PW% zp|2OFW$4ARSG`@d482g8mZ292(=zmYa5XJM&k?3&=-I-w3_VMjmZ4_~(=zmoxb0Qb zGW2v|T85q`Ov}(yglQRik}xepPsHc4nwFs_2-7n3cwt(G9w$u8&|`#Y8G4j3Ekj=| zOv}*y5n8Hg8M+@rOEoP+_m%5Q`Frjo*J&BLw=gY3_Y$UM=$^uh`1l^ev<%%{n3kct z3DYukS7BO)?jlUf(4B>88CvYGnwFu({;FviTI{cymZ8P|s%aTo?5~=Zq1zxFR?{+c zYhhZ3ZY501&@F^%8M-+_W;HECHxs61=%&K74BbSSmZ2L9(=v1;VOoZ6AWX~9^@V8} zx*pN9Fd7tNm;TgiUg<%=OwS?gq!sWs+4B@OW{6e@)_zH4H*w}?H zZ0te{8@o{PI$pK03s2bCg(Gb2A{DRWR>Lk}XBy5?O|wv9XI?eT0{^ZW5nJz7(<{`V z*g91WuR!VmXUNd@p!~a9?3qg|LdP^Qz$# z!k#dULf8?8PY9=kVH3hhVYq~FBDT)0hDqROz_(G=v~om5FTv(!>evb9u(WJs_70W4Uq5JCi)F{{GsU%C<~B(0`4GB zA1F_UIS3E1{-LVr4X6{4r_&oe{$}6}@~G&O4{H#PKKXD4;pmeOV-Su$`S1ndYvf;p zEeMYlhARk15do$k97P0pf^ZZOUo;5vCJ(Ibk}1 z7lL=v3B20EbONuIFrC0F7p4<)hR2h$1g8vxS@P(%Ty6X1Z4{q9aU0X_wIs@e%7z=srlk+Po&Cy2zevZ)0th{VO% z9cm}MAQBg3LlkBZiDzV6g>K-Eh~2AFJ!99!e_*9Lrdp;Nq-v$`C&B*lN0=A))8zM) z-%LKAd@6Z5c{F)%@~;1d`u;wd%Wz&`V@wOwnON|7@OzvX_@m&B;6=;}d^9*390*Fm z4onPO8!QQC2a|(Qm>JkR=oGXJ>IYez8u)ii4SYZScKTn^-$d=e6X}!bL+N|cyHGu_ z2`2|GOwUMUGTqjia`96`1`oGf5UzWcm7N43-&qtIOg+@aki)$4D`AMGYD6p zB4H*^7x<6o3Lt~xu68@SDf$!Z*csbS{XO-m zyD0TL_d4V`euSBZFQ+cXf8b6^J(fCwe8=8YA$6zI4|$Vzn3Gt?$sqf&F10K*5BZOA zsVh^1Qa#;K?&WS@w~Ohp&Nk5PqFSUf>q*U`+p>W=6_vh}4bVyRwZ}D!Xv?g}G|O(w ztaCbMzIxU)0+d;2)IZF%N7a{xPOHBgdPM!r&?)tWp_7V5{biVG^cQpOxMEd*nRQID zs=v&7Sh1?V%z8+%s=v%Ss#w)uW*t$i>Mye%RIKVRvkt3|&G$Q`Sh-eaJ)l?}S7zO> zJ~UrFs94osX5FV))n8`at60@vW*tz!HILh`Sk+%-L2j;beCdPf0uFY;W$S8IoMr21 zR-9#XniXf++L{$-*;<+vXW4SiinDB1v*IjUrde^8&1hDfWz(7!XIWpf;w-B*E6%b? zv*Il4X;z$NUCoNKtfN_RmQ86^oMn?bst^u)3eIzt$)1Hv%PKWo_#%|C0|V9h^k*&waV^Pkq9q4U}`^ptkoE>>AQdYkcO z@&9de!wGG2!w9W&mlIm$h7wxlh7elhSlx)@*K&iROJ!H)Sl?WBMUJ(NW!A-9e}3)q zTtC9lTwlUfxjux&x!#0Dxn6{YIljTl7UcN8Dx06<`>JeSj_<3oxjDYC%I4(wb}E~l zkuJC)7M@$FRBHpjP9S(_Z+PGzlgd^?r3%CVBMtYwbxtFjh37RusO zxm;^xdRxS^Jv3i^w!7x5&vw&%_1UhPuRhx_RvG;m*)YaJ>+B`59lR36SZJNKV=T1J z#$&geKg;v6+YCJs+iqy5`mv!Z#a68{t5W^YT&qxT8rq?LVCYW8?uRn#4)uL=?RND& zL)+DN4c(@`W9U}(Z9})HHw@jZUN>};dX0aRZR%Tut?HYEE$SPD&FWRcCiM#8M)fjb zqk4(3LA^*=uf9%Lr(PheRnHUFsIL)LtLF%-)U$+@>LOuGKgemG#!en)tFiAZ^n5a$>Ca9By@#+L& zoH|apMja!JRSy%!sD}unW497UsiTCEv0DgNt0RQ|>On$3b(qjs9U}Bm4-k5*`w6|& zK|)V;AEAf3m(X1uAaqmv30>7bLKn4{aGAP?&{^G0=%n@#I;!1-4(cw#rLmg{?Ntq- zohlKUt0JM9DiE5gJOSBNLSt1;Xry)$8pduSG*DH9`WWsimQ_|y@gr1L7iaoLSL!H! zgvxS?AEB~P-Oex7R@(`esM`p&l=(fEEA#8kD)ZvYl=(+9Y8xLM#0;d>R$lSd7J^or z2}*4ucY#(GLEGW4WcXy^$w&(Py)uA#@&97E^SY(r<& zEJJ4$>-{smJ2={|r`ttoP4g^>?{>+-}8s|BQ8)V!eL` zt3Nto#wsb+`)9EFW4(U{t3P^T2CF~T`)90Os-O9O)r$508EdENW3E-H-i9g_>-{rU zh3aXp?NF@u&scXV*867=^1GR@-mbbD+OE17x=meX=vLL)&@GDf{uxX;?P#vur09{E zZHgY5*{a${Z`;fk)sC=PwIys)Z3s82)`X3!6=8#FNm#F15Z0;Ygte*}VU21^Sgo26 zR;k8>m8ub8g=$Dxt{M<-Q1uDRR6W8{RhO_t)gfH3a)iYyBrH<32@BOFvj1P7_5Z)Y z$!p)n^uH%FCo%^!HJJUk8Rr4c%S_3P%nZtO!~J{%%>7FSe-1tf-oezrSAu7P)4^fP z{HqFX3f2URF!66J?&Es|ZL$BK!L+~6F!}$j^y|2TKbJn5-kaWu-T&3;1(^Cj68G+1 zQ2Spetufp0WB(U8^Y0tDYd`HD!ruQ5f3v^bpM!q+zsN2(Rj|@RA*Fk>ZBj-KbwSUuj7WeE&vGc#nxz$;Z9{1~< z@#t{x>vTe|f6md^`~Rc;Yjn83VZVU>_T%<_cFDfO-h|%vxwuEZ+8&5IHjyWw=jS2YpHXoqqrO1nYszP{|iw2KQc8i)dks`Iw_5b3?CA#csUg9O(*Plq-mndSc-iE}I#LUDsiOX?E z-#*beQI7lhzr=qZ|9Sjh{!Q)wmj6-vA8q>=k^e*%FOV(PBGRA2vc+0t_7jZ;U}ir9 z*mezwJ6QF5nJt#5(nwHjsA`_r#X+0<+0UG@SPsJWrMPxuDA>9T= zra;ruZBS$iG%ei*MWjHZ2T8X<5joIENVh=|KYS#l+n|UnXe6ZDpolbRB&6G*h&*T{ zq}!l~tXm|c+n|U%U?im5pommxB&6G*h+JqSq}!l~WN0L$+n|VSXe6ZDpony6B&6G* zhY~64I_vV2(76nobDjNYkk4gkX*|ZQUh;Inp!=JRz7P zO#<(nV1iNtP~(!qwze!dH={qoQynSvo2TSCFNnqA-Fi9TkP)Jn&Wa-8zbR|y~?n0K%jKXDP z>C7l}CQD~Vp%Ym;GYTEa(wR}{K)y!!Qu0{g_GIbUD6}Jw7H&(H?u|kl@<`#E0;NJkrv=QJ{IGrF)|Q^MJvmrF)|Q_YjuujRMR= zSh_a~@D5?=-YCF2gr$3E0;7G=!yl zqX5qkmhO!LEJIkjHwthJVd>r|z%YcRd!qoq5SH$Z0_;Lqx;F}N3t{QrD8MX)Lt%J@ zuyk@1U=_mB$x(n)2umkN0Y)J#og4-Dgs^mSBM*NNMpuWIhdl@ns(e+`}>j~Xb?fF%eI zh}TznI)aa$4!k}(f{&gK{1|iuA3YrqbOhfzhjN@e9l=L~2Lv6#M}r3h9l=L~2Lv6# zM}r3h9l=L~2Lv6#x1=m9Pe<@ADa*>!5qvawK+q93%Jq?9WUgNTHba^>L=k&sfZJS-v-Qp%NwM?^wO zx$-cHNJuGH9xf3HDdoz;CL(c{2>3)Kq^>Iuqlkpmb>-m{k&wEsJgg!T1rhLyNaRJp zEFvKlUwODiB&6ai54(tjRD9*(7m<*PuRIJR5>oM%hhs!SD!%ftj7aPd0ndoUog!cw zk+?$yTq6=v7?y`^L_!L~^6-sFNMTqW#t{iA49mkgB5{idSVttJN-W>e2&odwci?+m zs>Jd%4}YsL&BK?9u{_Pg-z-e?@HYw5JbbAn%hNpkjlwh!U#iOTG!K8hFwMi43bQ=T z!#2sJj>HOe5pLk(>#2sJj>HOe5pLk(>(lT!ZZ(G zs?hQ@4}VGQoR_D0_)?LUr+N5`WAAx+nuotgnC9Ux6sCFj3xsJN{(NDYhd)o4=Hbr~ zrg`|Yg){s;&k_#EGm!quBXmlPnJ!H8@TUpWJp8G`G!K6YLJtli7!!Xpo@$Ew$4tsj z{yq6=@^}B|JN?Oc;xEVxRAz2T{3`L&q|R(aeqdo{W@aKX1Vb}l?fHk9G_nL=;Bl0M7(xgJZ${$RO+rZV$E~hp;4=6I_cd z!U&uj&^@>`Xdcuhd69X>#=lo;-LF5*yFz;^z&I_1_&VsT2aKE45 z1-%80kYP~1h33MpZ9;dI=gD`2J zqi(4i=vrFonEJE&Nc~FvRDBNGMB_o};86><+Zs+DRHvJaCmdEoNIHxge< zJc-@(BZ&jZMRZYZRTE?*0?htPB`OoQBsL~iBo^XMd}3l`VyO4GL?4_<_*?Jim{IVC z_YzL=`?hx>`LcH|c@FdV-bL2p0h|t&;5q`HTOwmHjcOl+#2LIZgDrdE0Eoo z=}yGS14G?DZfCcZ+rTY%UFS>ZQ|Gs+O!$HGEp#_L>6~&7JA0ixPBh%?ta27PGo1;} zRp@c(fk}SNuvZ^AN&Bz%AM9V*KfyG=SJ3Hj&OT-zw0GN8|1?qX0!|^=VBcWRv!~i) z?ct~o=z=o{8rhfFDtQ5ODbFYGPn}LZl)5jq8`+QBQkzn%aFXG!1v^ zp-pZEp>=LLp;c}gp=E9=p+%0l<}9}ArbL&rSLP-YuE;UdoW*YBL|(c)H-RuTH=b}+ zZX988?i#|P+*rcG+!(@w+-So5+$h4l+(^RQ+|`8HxvL1Xa#s?r%Uwa3nH!P35an3Q ztw;PuhEDkn4W0BG7&_tCH+0-*g0uX}95)`yugEdOUv8cDnJFzFp5x9#`Q=8Ey34I+(Uf9Y7jf-^&s2B0^^DI{ce(Yn-`@Nx&-*NkDYu^T+nQ@n z`rP6D-+S&8u@mO|J?^(O^qAkm&^f=kp|gH7LudS^h932s7&_+HHT1Aw$IwH5&d^am zG<3wTZRkOqt0S8|<U5<`dlT819*%MIP{XAK?n%M9J;XAIrz2Zj##X+!&C4;$L& z`-b-V+R!~d%L~e_yM2}ylv{gz*L-!i?-;rZH;sIKHNI`Aj7X&{Q+UU z{vBbR{w-mxexI;L|Aw$y|C+E$|BA3u|B|pm|AMewzel)1ze`xAe@Zk1#g&0AY;&E@5=+e!?jI9m2@iLBiGg+k_E*XTmVQ6JdzokuccrKp5n6 z^#Maq#O^lqxZZ2%F@2ArbNZ{Vp4DHyf-`!z`Rb$k zE<>kvjiE<$$kSq3IzxHA*3d4!#!$6hZD^-nWvEK8 zG*qcq7^=|A4eii37`jt0GjvDntH06hda1d#T`w_oo4(%At$MMcTl6ABH|vFlZqf^) zw`O*m=1MiYHCDqbTl74_W<8g%NzWnNsAm&4>RE&h`Z~gT%_VDgou0ufYxQ)(8a<7$ zT2Cdc($^AJ>M4X3dNN_To&xsWYGqhR4PS<03 zWttvCK(jdE+E{@wMUNs()*}g%v{}ne)MhO^L7TPgcx~3QQ&FgBJajM2jg zqhq@Wqx9v3k+EvR)p{slgg!zTuIWkHVVa(l9ir(s*}mmF;{q$f$UpM-L?Q)&mH=bbs0ZZxkOU{r~?x`~Q~*y>Q>&B)9~3?SD)E0jK@_ z5cllQp#tEc^nTp2-~v-qp@O?r)9hzS6ra9`e4 zx6*aBj|u$$qYmIvby)4eL;wGn)X-EyqP>BTxmf^7ZOh-j-w8sgzElHiRFp8iAjko z6aCQt-z-r(;UZ)3Vf^Ru@5f(`pO2r6AB>mcx5qcem&UJ)kHecs)i4W+A|Rv#YnTN^ z9gqlSK~V}Mf>}^h1BqZ36a_&dm<2^mkO*c$Q5GbESzB`MJwWq(p0&2F*xHw1#QWjHE{;OSY(-F zQQAh9ITod@WSL`8+Cr8&7NyN(nPXAfM3y-gr5njI$D*{6EORVM8^|)pqO_hYb1X{h z$TG*Gw3aM$EJ|z0GRLB{nk;iHN~_4y$Xi-TmPX#v3bHivmX?#Hk+*aMSsHmu%g8dv zqO_DOb1X_r$TG*GbUj(-Sd{-j=96WPMQI*c=2(>G zl4XuXX%1QDSd?ayWsXH@7Fp(4l&&Mo9E;LSvdpn4%^=Ghi_&zm%&{mEJaqO zv1BQ-DvcpakyU9lS&FPmqoO_14E82VBcoUpM0=#AtBsI7($ZB%$R26wN+V>Cv~)%E ztpeF2EsY?{9%*SfS@uXv!^pBnTDqJpd!(hIWZ5Gv!5Hun3uKS9L|+J^J<<|=A&B-! zOYjAGlVCAvZo?U9z~3PH3- zTB0ii(H?1ut`J0fq$RpS5bcqc=n6r!M_QsQ1koO8iLMYtd!!}0LJ;kdmgovWv`1Q^ zD+CyV*F%-)3IT@TLC_Tf48eoA)cn3>kF*3^fL{cb?2(q>3z3jL(h`gz60%2Hf-^)y z_DD;xhDgXBX$jsC3E3kp!5ktXd!!|}LnLI6v;=#IgzS-);17|IJ<<{kA`-GkT7pAF zLiR{Yu!u;=9%%_45eeBNEx{xrA$z1HxI`pmkF*4vh=eQ%O7MwD$bz5*qlkno2ug5@ zNXUYq1gnUIEC@>Qib%+Upaipsge(Y3aEnODf}jMuh=eQ%O7M$F$bz5*!-#||2ug5_ zNXUYq1j~qoEC@>Qj7Z3Wpaj#1ge(Y(M|f}lwA2xLJ}q(M|LZL|W2xOs9qC>rOG#Y7R#A>UsX z6Ga$@uq-Bu#y4a!Q8d2MQW(A=kCBB%5w;;L3yUILLs%9TMVN-LEG&xf3}IPV6k!>{ zval$^F@$AdQG{U#%fg}vzYvy%MGHqUGlQUOk`eXWE z^GulWg1-eH1@B_^|10R@KZTw9n&6J$#$Z`6D;OUP5BdZhG5P=B-}#?SA3^VaRr==i z+Vo;{?q8E0mhPSIfWH0OY0v*Vs{eoK|HyyM|C;|8diD?a1%EqEn|BKWAW_uI75ndncqc`ztdA9o(oTT@*`(5`%?35pO?{y0%12DrK ziyiVFZd>e+XWY2+ne!XxEp+XF%{hnq|Gk+0f0MJ?S%4GnMmhtXE>27AiEH~y`(vDM z_on>~%mp}YAHw9nN_(rl68qn*{qJVCwHw-5JBfS$-==<=`flo_)cMq@)C1W6u1IZ7 ztwQzxRP1>VN%cszOEpTBqk7}7$q$q7;@`mGN!y)$xV#Y4I`A1z`U3b~8L? zH(EdQb~8L?HwZI4X4eZdJZ9GkGdyP33Nt)r*9bE_W>*U{JZ4u3GdyNj3Nt)rR|qpa zW|s>yJZ5hYW_Zjl6J~hKE)`~Y%r3E>@^&*kW@p6edAk`Nv(tqc9<$Sg86LA!g&7{R zQ-m2Fvy+7x9%%d0YU_UBgw`Ai~)mfqD?eTIN|d=^=$6?zVDuU*80x5>#nQ6es4|3nZ2J!^}g@k zdk3=Qv3Vj{^4PpRS@PJt9a-|&ye*D5>!v)$?B?-jX1l45z-@pON8mUhwGlWLNNEI) z0a6)(BM-=SQy78mK>gr*XRUW~ z-OVO=I#$hfH<{omj;uoTQcbfsf;{n_{Hwa)nBBAo{!)%`CVshjJz@sGOinzV?`)fw z+{Aazn&3$W853;80>JLH37+6Pr}X@3e66H-s`X8-J7FI57@riHBvrKR=gViRuhryX9xSPQlCb)~i z=_a_7!D%MAgTbjLxShc%Cb*5k$tJj!!AT~#g~5p?xS7ETCKzOJyb0DbIL-tE430HH zKZ9dT(8u6t6ZA4T$^<;0gwCi72?70c;`)E@J?nh=NNQz$l{N5(aRJC|Jt?RuKgkGk{k_!9@&U z7Ey2^1Gq<makYl3g^dA6E}CewU9yWN+H9BXqKP)!CA(-khSy~mO|;xD+6Bf1Ew_t)0jA}4(J;WY z+%7r>_y96315EqvqGy0v<@I_xr@#Lge`Z$IEb+2E*J+9w%i5VAi|crU>Zc&au+Ov2wU!=VE|#vUGxhe zY`M$W1#G#?*ad94i*|trz?Qp=ThNxf;1>Lq)0Vqn7G&CT7rcT@Tke8YkSk>46tw6r z;}j(_oPv*`U3bAK$h7M&_yn1D-36N<)2=(=5@gzSCrpA&yY7TXkZISQun02kx)TmT zrd@Z!Ajq`qPWS_vcHIekAk(fp;SOZlbtlY$OuO!cH;`%9ov;S1W@&vvkTB3ejqo&XXcVDMYJTI$;cWsRA>#o$v)RGqs(t1u`?Wop1#*Gqs&C1u`?W zo$v%QGqs(t1Tr(VopJ>1oq*LWopOXil&S56Bk)no)ONxU$jsDs$`1-rrnXalP>3?M zo$`Z1l&S5M9~7cYZKwR85M^pR$f&8F=<4O?7 z4+>GHwo`skz}Y4E$vpFCVWzfIeo(;KB?#mP1&f*5&N=2`%+z+m4`2@1p@9JmAqtqO z?Svyl0W-Cou!JaJrnVEF5CzQCcES{*fSKA(xIz>#Q`-q!hyrG6JK+maz)Wo?j3Ek` zskNuZ4v4>PWisi1VKw^iuy0$mU!C@AkQneaFHB zh1&~#S`F}D*8#-8NSu*4K5+O^pml~N0u|gt+`uZP|A9)X9f5e|9UqFq0L-HQ)4)w9eKgjkVD{xu% zJg*OX100<_2;K9uvoo+ez_{$lY>4bY3i|{6A@h;;KVy@m9CTz0th_dn%mip5Pvi zGZhwM4a5w0k~`kr!fnm$fbRQ|nQErl-oY)oc{h$762Ejla^7)Xb6$47gOe5>a_+<) ziQUdM&RXXjoVIYZv&vb5^A`4ScFjJXz2Dj18RLw|-WGp5yV(hxf|JhwEB~kbCs-lz z%lxbPALO6OZ@>wRx8&F5Z^&PsUxR+9t?iLGC!yKSX8(n3i` z^-|4PeJ{n4z8Zvz6MZ$(6u0-)URm7ER}*A$ zTfbiq9`CC|vAB(|W}D(TU(GhfvA(+fievnS9=w%b7i{U*1f%_K!4`g(V3e=ks$z$) zhNa?sU#)?~x&A$R%pCu2!EFC7!LI(Df?fPO1Uvg`87fZl)iPAv$yduzaYtV*L&Y6@ zwG0)P_-bA(?(eI4vAEb*^I~z4uja+#LSH?L#Ra~47Kh?b|)an1;&`tjD4BhB|Z0H96BSY8w z9~!#O|G?0-{`-cm@!vCawf|c~SNXp&bfy1mLs$6k8oJzn$IzwzuMAz{zinu(|CXVP z{WlF=7#*|vah+vPPS+IN1B-kw|2xbPJU`F7Y zSK1h8RYK8vBFO89(}J8}YG4cY39{zlj|Le-j|5tXP_!Nnv=E_aJrrmmLeY9K&_aZw z^+2G72u17uKnoFy)_s8%A{4EAeJw;NTKD)`h)}fd_O%e9Xx-&&Awto*)7L_TqIHM= zck>Bu_qF_>Xx-|6ZLZzo|JBgV{$C6Y`hSkTMrp5LTfy$ZHiF%Pae{qXgMtx)1A{ifR>5#&z3+~f zuZxmy4iWo(4e!~(0b=tLj%q;hWeeS4fQ!s8R~U58R~JKG_=myXsF>l zVW{prZm8xwW~kfQV5rM^)KI7Mh@qRDhYj86JY?tw=Rrf)I}aGT&bi;vwa$Hpu5s=) zbhV?-^^$d!qki?0b)}ch>kVDt$ec@S9GP?Jd`IS7I?s_gm(F!$&ZTo4nRDrEN9J5Q%aJ*kRy#81(wUCT zxpW40il*R{PIqL^rPCalbLmt^|5+%V;;2)&bh2~39(cBbe))E!Z#i1Hl~UEWy4pd2(sCvszbXIlmF?>HJ!-hx4vr zrt^+qhVv`IbmwisG)IP2n(D}~N>iLO^`l*#GX#^J(*?UYrwMj;P8CdYP7&tzWYOx1Ng|8ZWw9rtw=bR_+bB5JnI`}oiXAi-2XLrFAXR2VbGes~V_K0BX*u#Q$U!qVP;Y$>X zZN5aIINX;g6o>f|g<@;$Aw8?bmpT-O`cj8t)t5RHLtpAp41B3W(f6ee#fmR=D3*Px zL-BZDqqcaIuRl-maQ|7o#bN$4f`feX`#I1zzn=qq^OcwSkFfqfJihOL?Einfa5wJk zuPg(hCBj_){53~Td0LEryt`4{ug<{!=9mG95r zguBl3aQ5Gkc`WeA@1CEO-#XuxFXgkjf9C#x)%b7aUd??EYw_>P-Hh)4t8*9P^uJ?q zN4XgN|5I`ka-(u#4m;D>f5v|Lzp{UV-SjtN1;8NEkyqH~*(ckF+XvWl>>2hB_EvW5 z|8xz&byz2VdiE&n0k|LT@+W3TXRA0Pz{>nF^I_(fSRMat=Hbk3*t7qt%=wv*A+mw#9vUC1a=mnf@aE+w^N#5x*&YKlaP-M5g6z?EZIHdTDxJWLdVu?td-mrgSRx zx725;Un5iT{r`vV{~c3X;q(Tb{`dR;*6Dw5V0ZuL(fxmKVldH-{Rb{coSrxad;2d+ z?1ldSZ4(`dAmJpe_@Ck*$KQ^>8vkzmiTJ%(0ni!0JbrHcr1)X+r5HZZKfA7UYKfWl zy3(m7X4>mYr|N~e~XX|F4tT4JWXu5@aNnfAKU zsU>FG>q@7Vm}##gorn@ zrIwg!uPc{YVy3;WTxyA#_PTPZC1%>|%B7Z=X|FSv8na8twAYbJB_h*aM&TdrnQ5;hVM=DEy^ee-nVI%F(xqf( z+Uv-cl9_3*BUwsjroE0_DVdq}I#Q)%X4>n>l#-cguOm@PW~RN4JSmx(_Bzs}WM&TFjnQ5;hK}u$Jy^j1Svg;*e*XzoT!i%h1 z?K-lfcua8?en)jAN6FJ;ey*wD~D*SFE-nbw2Z`Z!&l zF)Ul(S~&fPTz#y0#pqWw#sv5k+4Zf=%WuTXZ)y066SMWvdh#^9&KAO{!*cae=Bd#y zw8I4Wh34ubO~A5#z1;*X>(@t^fMxx9n+aIfuMal?%lh?UCSX~=-f9At_3JGrU|GLD z)C4T+*Q+LAS-&2dfMxx9U;>u)>%IwC)~{Dgz_Nb5Yyy_`>llg1v13O921OIFl3yQU z0#@?t%_d+azusg5R`Tlw6R?tB_e{V_e%&NzMeAyi}!Wg1T5ay zvnF8izMe4wi}&@k30SYMr%b?leLZOc*6ZsD6R=)ikDGw?`g+U+tk>5q6R=)igEvIK z5Z3E!Fo!5$y}kx_hyvE@Yp{nXV7uWHGC}6$528W0OmgsA+h$vu*z6Oto z0+#4&Fo`H&iM|Gxhys@AYp0ojCHfkCBKiqS^fej95SHj`GKwKA%hzNSLs*ut$tZ@f zEMJpR3}IQmCZia_vV2WOF@$CLnv7xy%kniD#SoU|YcvXs5|-s_bP6!b^0gzyEX&vE z6}Zl_e2r!SW?8;Qw*a#&U!z@sS(dNSFTgCz*Jv1EmgQ@73^2>`HChIkidCa$fLB5v zYBUY-3bI^d$a1n=W5_bHTw};mvRq@x60%%l$o{bj*&1B~db0S$Y>lP?Tm+6~$t{LVhJMxP7I?_`eX=#01#lZ6 zy#hE6NUH#j1=1;iWA?FYGKwK1tq1MeEL_G{Zzsbk$Ro%yiXm-e8O4y{WEce>GmH$M zAh(cV6Xc=L&l+5UZ&e+Zt4Zs2r&Omg5a0a3Sgf9?rmP-w;K+GMHt-%wBHjtJ8#9`Jo;|Lib9RXKU zKw}6=pfQBR5t$kc!NvoQ$kpTq%~8Kujc$NGI*T?`qa83{zgZ1_5C!ZvtI-kg6ZV_c zUunOEgDlzPS9-8m}+u@W{bvDlM^&sG^U!IpxL4^ z)#L=t7LBPUCup{4Of@+{vqfX7$qAY*8dFV9&}^~atR^RDj$EoHCup|lQZ+e2vqhJx z$qAY*x>QY0fL#|D$O)P)x>QY0&}`AAYI1^Ri!N1@6Es_NsctzzvqhKcmJ>8vbgAz1 z%wLBt)h#Dzw&+sb=a`?+rMl$=%@$kCy5$7ejDdlipgC$W>y{HVTePfhIYF~U%j%XB zG+VT+ZaG1-Ma$}z6Es`2tZq0#G)!q(-6xxXmema}h<-xL>V_Fa0WGT=ZV&~utZvvr z6wtD|;RjJb%j$+9L;)?U8;%eKw5)DeLKM)ly5R{?K+EceDMSG+s~fHm1+=Vg*+Mfd zt6R3vOv~z)Ei}`zx@8N^w5)E~LNhEYmzWZpm&jO!CkqdvqTgG%5&Qn1UpTFBOkq`F zf9&fwvoNW!O`)Su#oqsE^#6b5eeAu1-Tz-i2H-L8Uhih?-gm9H7OMbG@{Yg>01Ldm zkO!FPjlmuO70o1bmVIF#oIk&+{+kpU-c^E&+ESThN7l0xr&Wop(6d9{e=C1eY@RZpJsoXeIxs$?02(IW*@}fd%f8kvzKSj&z^>T z1y*JE$Ig2*vy-s1KnL;)P1!W|7WfKl3*O26Jo92^bLO$ky_uVlUAQ*0Hgk67B&;x4 zky(I_iK&^1I3=$QIR+;aPk){M9P13;PX7!m4W3Isk$xb3d%6#~hO4mO-dX9B(nqEb zOfN>hVYl=y=?U0zZ+Nr$7ZKjO61 zv8h9F`oO%@tkl%h4ymotA5l#;r?Sa^C;yWC45tvhmHcV)h2-YsYs1VVaKSM#rNk>o2g=V?jtZ2Ys~j0Tt;ZY@JS8|h*d#bC zQ0lI7XrRCD+dNjZB|ygN?cb~xJq1Cmb*$^SC+X- zTvrZ=y{Q*m>MDa>S>h^#UD@AN;<~cfRpPp`$W`LHvd~rHy0XAsrl-$$mAJ0VbCtNR z%ypHxuIv~4r5-cKRR+7VZ|n_Sne8f-U76)7=U>^wRnEUM(^byDGQ(BQzcSrb&c8Cv zJw{KT>K-ka;wlqf*)>pVvohILO1!d5ppysNBxWgBMg3-Ypf-QpE1*3x71RcSxf|0Ir^_6y4x%$coceZ}i=I$dH?(QuZ<|;E^X^p+6 zD=qFU!BBTkLDk(u5V}fxR|0o8UGd$Sf{HssPr5q}=TUNq2%E;chF4 z$9@_WBP#CrsCZCDG2$nNo(oiOEL)r1ZOpZ2163Kz)-%C?x%RX>&d^it)`m8@TNrxM z9c5^v+hOPlcch`m-8Msyxx)=@aEBRsG+1Zok)UDd;h=8lp`d2y!JymF1A%sWDx(mu z-MGpq#A`RMvUP8u-MGruJ;4p;8FvTQ8@emF&d{B~wTA8pt}%3baJ8Y^0`10Cwr&ly z8&}!7CD3kMW$WhPa`U*s;4(w&gG&t!1eX}<57rv$3obU)8(d_lC%Dkiy5IssjbM$T zdT_p>T5z7B?m&$iWveSV$6V_S&Ng&YaF(GPgVly^2+lNgeQ<`M>w?n_T^nc*uCjGa zpgp+C*42Ub;3`{J1t*)wT^XEY=!)P(Lzf397`iMt-q5ANafU7lwDVTkS{rERt+I7- zpq;nM)hj5fw7Ps!Ac-!Y7)Y7RCj^q# z^6`NbwR~J4xho&*wnlTUd`uwSD<2(5_sT~FlDqPef#j}yL?GcRA09}!%7+CKuJWOQ zgsXf=AmJ(>97wpzs{-j&`Jh00RX#9~UX@q6EqeDA?oh#Uw<=iXhJpiPuL_pBfnbU2 z3-)&_g2irGu*fY57P>{j0(XdDzS}IA=QauEx&^_0uKue~p5wZ@vTy9ig4wPk*eB=_ z>>b=J*ee(m%yP#H_6+(3d$?l+y9a%O-GW}hOm{2640lVxba%91n%gdz>W&ahar1&* z0||S1vYXSDT>>e5dFMb1U!D|5;mbP(Quy+YffT;HLm-7OPYk5+)4M3W8Ji1jGGc{703?CTL!X&^5{TzP~IYt9h64} zvV(F*AUi0Jbd!2|yPFVQrFvR(jpxODOpvn14P;mYr@M13uT<1%H<9s2=JD&@3 z&SwJK`Bac~J`rS`-wV>Qmjo&2cY>tzu^{1mB#6gej6AXId>H9Z37+^vL(c`<8QSc8 zVCY%reM8R#a?uj@7JkoMd&>E(p-s+PhMsiZG_=wArJ*OBHw--HNU_^bY6yhHiJhXXrNPyN3RM+vSDg>#lKWSLM{;2hrcUa!T-h!O6k*1SbXG z6`UA+M{q*$JnR4M@df{}{{O#o{@?$84?r4S>7P39Vwe8!VduYloPONjuXWCJj&W9E zfBxN^9i6RkUte(ISo{BR{w?gx{~Wr`@5=Y)ughPQKRthRekJzfpM^X5@i_mljN1P{ za$n}&$36VZxy`tPzZ2c$*XP#eR^#q{Rc;aP-FMAxi#zuq=it8mPv|56mHkuf{r8mp z5boJ~u#^5J=psK6ckKVU_MgJ)|If0&$-b6-A^UXpq3mthM)sQQg{b}?on3(w0B2(T z|Cnqm?$Q&PzhHO#cQQZA{4nzr)-&9k>B?M*`u{1oKVO#FFEbPS;*ZG;%M8h+u`B-P z=m2;fcjnKeAI5$8y7aZUD?bx!Ee=laj}ri=r*}w?!5w)iZKu9T{W0|s&H(&z>N}~& zQ}kZJKTf`#d^PzU>;iBX?!B*1u1%hW zlNi1|2XF$;U>KTgN~Un1{YB!v#4i#rC7w+@lDH$$lejK%apFvz1$aw|a&&NIhN5xlS5Jms8Jxt5SY=6P%Y!9-s#Q8wv zWQp^D$jB1s0+Ej;&H*wT3!FXL?ol$GMaNU`$c;~>*@NU#!ZAkwSE3=qjxVhV`VDlrK}VwIQ}n^}jnDzg3l*xWkhR4Z7n zR?DqZPPJk^9p5LnPB~S4(bz(J9dfF8`^v2NsO&nVRPj0$B=y%Jp-P;2puG<1R6b%x z>}z`+vZ>_h@!`33N~Tt^QZB(kV_>` zjeVV4r&MaidYqq6sniNqsNuDgO08gpTFqXkRBGi|vQnv)mGOP-bxNgHR*;oStt=-i zm0DRwUZuBNN=MQ`XHDqCI8ZenPaTteYbod0=+k zzQT6kY~cvtKEgKO-ooL)y@bPnvxF_cJ%vN@*WUw(zfzTdvE9WXc{g!Do+R6&J}<#6!rtikr!k#ZBa0#0B!sVwXHg?2va7=gB*YbMfK!x*fzed7?N= z-d>y`ZzoQXCy0~eZN-WB@a($rQ9DP41Am(+yN~Z1n7MG_%Hl zV|JM{YbzmV)|PriG_yvFqnWjZd6{TtjWR(rvpP%=&8(3oh-Oy1o*&IDYJA)-M>7i| zk5WWgGYc{w1<}lc&__Wuvncg=STwV!_26h`N$ktf%#zrbqnSmq$77C7E4~}LQbsxMRXA^}V z9L+K*e>s|EQvPx@%cT6}XqHj=@dx27qwoVc%c%Q6&N9kAkh6@c59BPP=mR;+sQEz7 zGD<#>vy6%lD4XQmpK4)2jau4P#Yf$gOoMjCP zKA5wtLB$7imNg*xWX`e%M4!xA)_~@dIm;T5d@^TQLyBMKENf8lah5p!FD@rKnonfY?U?tJMvteH5@--GJOj0jt#w>3xaS>W1{b#AUV5dJ7&wYmZ6 zj{;V!8xa2}V70md`Huots~a$YC}6d^0Skx%R;wE@fhb_Lx&a%A0#>UVFoGyxwYmW- zhyqrt8!&??V70mdJBR{Ss~hlxC}6d^0Yiua_Ea_C2vNXlbpw_V1*}##;0aN{YIOsq z5CyDOH{c3Uz-n~^wh#rZRyW`aQNU_-1I7>q+#RI>XNUrpt{bq1C}8Qj0dI%`maZEx zhbUm_x&e2H0+y~Du!ksM>AC@bhys?b8!(6{VClL6hlm1pTQy)2QNYr510E3tEL}HX z5>dd?bwf5$ib~fF*+eNST{mPCC5xr&25cgF4olY!_(T-2blrecL;*|J4R}Qquyoyk zSwsO#*A2Nv$-0bz+@fT$j@^)3lq}Y<8*+=1#X5EaZV|lz>(~w0MHH}(-H>0DEY`6b z@{5wiI(7qofq7bD9lIgBC~`Y0xsj z+#RJs&j53Glm<-$%-vBMbPX_fM`_SDz}y|BLEivlca$79j#wH0&?-ztkN?)#<*!<3 zE@Zubdw=mh^WOK~@_y>QfJ*=4*zNB&uNSMbGF;zw6vfQ0YI}JrcYBEp+#Gr@1@0V^Qb#UDr+E z{{IW?0Qi>k6IA)1b{@eVfCEmKa~0MBoQWF$q0Rx$T&zf+>`ZV*JFTej+xdSZ7w}2` zH~C-WU&((5_5BC(x8-}V8sN(Oh56O_6Z1zPC$K0#J3lkObAH?W==?C`1)O{$_jjxc z_&E1&?)BU&x$ovSuacg%Y)(Ko-pNabZ;aGFN(B7x;X5lCHjKUA?Nrig~ zHy7Ts$J<+AIF$()fn9_tF0 zW2b~!SXr=rW~74KixT@_=Y|~fORKg-27b73!&%kePTg_0WGlqwl|-&G(;An#68}IMFcq zgXA;VN8#S&Ey;Ds8A8T+$p(Da#XSOc9 z#Ltnncs}vG@(#-H1|1>lM&=5BWXE*{^5a{*;fg4i=UWels`B{OL!qiXzV%?JDvxhH z5UR@KTla^m^7z($p{hK-b#JIDk8j-*s>|3XZws~xFA{7SUMLtHULe>aTq772o-e>3PcYJbOVIAVDH!4YQqbnUAsFudLNLsI zUC{39GhLOoAa%wU9Fo#7RuGSIp5mk zYN4=iJ?Uzpuy1X2wNTi%o^T&FukyJ2fT73S`weYy?=v(Q`_xcRxZKdXaG9Y-cz~gL zxYSTBTwUn?*M|EUx+a`s=<0A^ zLsx~f4P6=TW9W)-Z$p=ddl|Yc_KBfO!&!zd3HLO#Hr&I|#o_LTE(&)ubYVEt&;_9i zYW|vVdi0m_&kv^w&I?sg^Un>Z=*l^v3Tpn@p$cmLS)mGQ{_0Q#HUG>|r7{1EP^B^d z^iZWS|Flr0G5^$1r7{1MP^B^d=*k;Fvsl^>>K+~Fx%}F%yOR;?BQ+{%ygd+%y1tUOm`m>OmiO+Om!a= zOmTYzyM`kKlihWKUBWiO&f##uB(#omiMqd2*ecjDY!U1b4i!uctAg#rP_SJX2qwfn z5NsRzg7I!cu#H<6jB{&(tz+*C#=6~tF>aS&tFR*2GAs*5hpIjKTZBbj85Ir@bcD@< zk#47;-MvXL!o5+@=H4I}?p`k#=3XagjlCymajz8&b!BsY)s@Zpp(~s71NTZj#&@p} zRNTu2W%n{c$-PuibT1JMan}l(-HQcHt_;gBxEJb*7yGTibuSP&?ixYfm2>$ySI*_z z?z#F=Huf7q#yv-nj{RDYa?chd-LnJ;-3 z73ed%StvMpyr(LE_xie`$~%clF;Fq{dzS z_XT-zSO0yfSdWGo^V~hq@f4HgrNt*xS{*Qn4$YZ%h0{SzYX0Jd}HYD z;9rLB3jS&6&fp)0?g;*F==R`mhHeYKHgs$7S3|c1e=&4(@MlAV!JiDR5B_LqAo$8q zfA9xGeZiN8dSkyb)DwJRXkGBRp+@kTp?V+}tXQ=`?oqM2gWsEmBF{;<%;0jPk(vv zw)yF0flBoi>(W4_`igZ)pi+GWZA&WESJ1Zf3-gSNg4YdQ7`$fafS;_ zf&N=nIWPE0G?FXl2CoXv3H0Bp%GrVbTlL>-%0+vvUgy7C+SarFziGfA{bV!EWK{f_*|sfsaXis(Icc z;VG>DkBP6c3V$yAzVI&g&HF)N6ZZDIrBK5O02g2#z)^+e*a2X-!cK*;h2e!Fas&VL z{@{IxJpg{>J?Cxk?(x=pUC0Wo@lNxO_6|h<@NB4gY`__Hseu!P`e&jxnJ?rjq z*JCGuE8R8jY3TYt5V?T8+$rvM?r3)?I{uT$1bpti=e&Wl0G@Xq|G%9AILDdc?C@Vs z0emh00(PN$1pWOz`D@V+uo^qf9g@chj`v9*PBjEVlA-N^kU2X=t`N!tka2jCF{&&<9@HX!Bzi)4{AGB|?*V)%$XSuWN zvFEj6F-oTy!n{g_@otfUu_2}APojESEDzgYZ`%`c(!01d%rWsuU|44s{ zj{P^%FQ+%BA5Gtx?!_LAYtyUI6|gG32>UPYn%)-s7zSwvyBPi{^)Y$^euNziH{iaz zCv|P=!qn-w=RPpCAhl;|XY}O{PnA;H4__E2lnIJ=LzVe*q;riRHI zXWM93FnKu{31RXwGV;OXrDUXo$xFz{29x)XjnDQW8O)boJUiQmR4{Q7 z5Q$*oLLkz>#05Ykfr;~hNC6Y)0g(VE&IKaa<;3b#H z%I^*>l9k^bI)tqJ?$Bnk^1DNu$ja{yb;-)_4t2=N?+(qAmERqjv#{bu`Q4#5S^3?e zS+erGLo;OMcZa6P%I^+Ml9k^bny_xq_94HE8qrYe_FNy*yU1KuQ6uWl^&!6-1y9Gu z=lYP~je@7F$L&64c&oEwf3W+M;jQk$zYa6JF}pewzfdK3t25#yyH5$;>h#$4xjrO# zqu1HQcR+?W3Z7(u6mJx4v>wm(A;%j9Pw?%O=SIl|Rdybg%r1xww=SlBbV$PG^)nd#OyZ21- zVtl;bGsKI?r;8VoPZKX7pDLbDK1Do_e6n~h`6Tfi@`>Up_zm}-Af8MWVk?IYeWE!!)(50AxV$~`{LN3xVkx?bshh(5Yr z>3xVkx?bshh(5Yr>OJ0iiuID+OThmJAEJ-0SBf8^kFJ-Bk2gUdT`vV6h(5Yr z>OByBbiI^&Ao}QfsrEqh(e+a7f#{>_rPc${N7qZK2cnOzmr4&rA6+kn9*91=Ug|s$ zeRRE&`H+2dy^{HmeRRE&`H+2dy^{HmeRRE&`H+2dy^{HmeRRE&`H+2dy^{HmeRRE& z`H+2dy^{HmeRRE$dHzb+N7oCTC$o317cx&~?_4ibp3L64UWzRm@+-k^oTKKdZ6hM zW6JbM(*sVK9%*{ODboW@k3JcvOb)Cdr0D^tOpi1@;FRf+rU#rdJ=Ao(Jf=(!B^`(<(<4O>FlBnA=mA?# zrRV`$Po?MqTTi9v0b5U{=mA?#rRV`$PpRnmJ#)(RNYVpNnI1|y-jA)PRCFL)Pbug? zww_YYftWHqlye|kPpRfWww_YVfowgcmIK*(N+}1j^^{5uWa}w~9LUyF>Nt?Cr<8FZ zTTi9pLDYIG6%V4;Q>l0mwVq1FgQ)dXDjr0wr&94CYCV;T2T|)ORGeQuYCVOFlcUyC z$T&G_J%x&sqt;WYc)%&sLlwt$PMIFcIG9tWhdPdrj49J284oaJdLZMxiYe0r6(?fK z^gzUkm@+-ka3ZEm4<#IkDboW5$CL>$sHxxRLFJU`p?sseHJUO#(rU5p&8wy(8w7fqF;GDMR_j8%0xw z`VEez3)K;&^T}WvJrdXv#>&{b!O@hVkb|QsBPI7aWu)Xjr;L=`UpP94`~QOzMe9GVqAomFc;bJxzkgu@b^{!a z^8npK()$N?1o)lzYwoh|eb0Ley8_;ga{=q#b>5}kdB_PI>mA}9;LY=9VOM}1ysf>F zUKO1JS@+-WU);~!_uaSLpJJE5&FB@l-@VQ4#g6uuyXPZ6a13?@*x%jPor(SIw{bh% zs@sG;0siTH<$R1C?0@dO=xlZ#Lyq8Pr|w*f6$58GCpkwrE3hBHUd~i!B6hBC! z$^9kw8P*WImHTP#1*{@?Ja>QYHmoDKDR(9I5L}%*F?U36CDszm#=i7BV>Q9(+%V)0 zoLs{GyZr~OD0tU?-G0UXF7gKt+jrUP?Hcx`zr;S*KGi-3IfSM5Tx4KfLzX5Y)ciCn@Dv(IK9LpI@7oF#B$_6p<^&di>WJshhH7H0RsE`yV@u37PL?p3FRi+`>Sn8)pu#&76ZZ2S+2numr0P_Q>pt?tn3w z5jcCWfE>fW(tk>Sg0%;~Ouw4`0ahPuNZ*Sy2-l@=NMDZA9!^UigIvS@*cD)AdQy5D zWE-m3hcKP`C-wyRIQ35I=QuNAbLz3wy*Q1qj-12V)Y++%a30|bWF7XxegG43B4Jyq zl5(&X;cJ{p_rkTU&KF*|H@Js6Jxs(uMYDLi&9|K z*0>{R@eUOX^$rnKy@Lgzw@MIr2MK)dKtaV@DJXj@1SM~|py(|V4Dk*SGzq+T=XlOlKRUtOCo~f!3i~qfQDwo1vJe5oF|8Gwv&(M0( zQ^_;5HhMFnykclQ;Y~O6xHrYnW8SWYHh7Z_Jz7=iHnbk8s&pG#4_8&X4XuZ&-+tx? ztKWXU2ddwGmiw#UewO>HD&2jO@S5>eLt-Go!*oM}f)o(xj9o26? z{q5CnKmBdhZ$JI5)oJGSZmCW+baVCFZ!{QJ2_&@ESHJyk1J!T8TYq&I^Nhag&W3uc zlMMA#cQUlDx}%{+bq7QB>O@1e>h^}ZtJ@jss!lM}S>4vqP1W&+Zme!&=!WVzL)TZg zHgsKetf6bGV+>tW-OA9_)h!KORUK{U%IX$|uBeVOba}PI&}DHIe?sfh>PU0#l4`r5 zwbc=ZF0Qs2x~Mwb(1q1uhAyb8q8YBKs-hX5UsXjjJg=&XW_WH@70vLRY7mX>@a(Dz znc-Pgl_bN}Rh1;eGpi~|hG$e&k_=C;sw5enR#izdJhj@S*EywH5S(1~1SeHp!HHEV zMtDM1lQ%rRs>vH3SJmtbkM(xZgO90Z1xHsif}^Tw!I4#DVByK(5!IyN@M=PEST!y< zv>Fo}5;u=IxN7Ojs_@@}gTikF2ZsL=tn_vktnelYmU}x1mU%l04v3rgTI%hfD@(kI zg8jYi1&h7y1dF^0f`#6;f(71q!F+EU!8}im0^wXwZ2{qa5Sr)<&hf?y_KlmbGus=Z zEBjO>T;bkTNn*HHRRS2!^7hhW_N+?x!aclMy0Uv!0vPUAl>mk_y*>4#8Qva(>E7;w zY2Gx!RBx(aino zNw8h`N5O>fE5Wwm9|YsQ(SmKfEd=AdQG%`G=8rqp>(G@k-ble#;g^Cf!!HD*!_Ng< zgr5mUg`WyK!cPPvy>>ynH$pJNYZJ72!v({=VS-_vnQ^T#GqhSfGxdggX6jWvGxb8x zOufJ}Q_uIz)T?-A>Xkh+^-7+ZdPUDny&;~Ndd;4hdQG00dWD!7&tA-oXV){6(ecb= z%zI`s<~%bQak#a_H4G3lAfnDESGjK}^Fd1B~Ey8@KhRa6d8 zZ&T40H{+g)*#S!ID%A$oGoebgxIOn0k#^xe%ZnS@d9pv10nb%2JdZ(sQdSLNye zC3cmj1C-cRnhsE6S7|yxbxy_IzqKdl#x)oL24bZKq;%d(6)`dSb)ChlIs2+ab zP%ZqPq3-azhPuM<80rk4H*{0@oS_@T&4z9WpEY!S_>7_J!lw;g8$M;|nsAe$tHUP^ zT@`LLbY=L2p)1124P72SX6Q1kT;X>0fpuxP!O$h)qlVUo`oC#lT^v4au3Z#9Waz^1 zK|>dW4@84JSQFkaI6u5ka9((?;N0*Y!8zgGg0sWB1ZRbJ3RZ`A2+j;|7n~8^COAF3 zRd8B(i{RAoX2B`ppy1?iz2Ky9KyYH%FE}CW6C5A*3XThV1jo9P#Ne24ovs`mHUvk7 zb-|HgO>jimEjT>v5*!wG3Jwi#5*!kf4hIK^H|ol&@CLy_;q`(8!|MbqUFmSJ!j%pO z%UvmIu*{XB1_#8X=fP4}(i$vrC9T2!uB0_s>`GdLMegtQ$_w4!2^P2?3+B5Y3Ff&U z3g)^W2=PL9t`s$x=E}>0sjm4QPI1kf?iyap`u|p}|Np7*ap6~mpA^1V z*jTu?u)fe$xT0`g;pD>Mg#!w63Nx@eV5>qa)&``!zhPy-Z@kyAF5qeJA*>2$VE@01 zu_oYn-03gz_Vs4qK7T8(6?ge5_iyg!I0xVj_Z8ItA9wF{2T}jO!aWab0SW<<@ve!-SRu(B!Ch5Nra(~92e(&afmiqxZ z{vXKQf`0$2a%<4-e+2gO+Yfi}JLbmV{(T7g{QqHpfiC~ov4`KY_9ONk=yMLBF8U6etv0yrn)9wCN zSQGFCs{g;ljsU9u_r-6BUlKnne!QyxmX#Y|dN^*kMK$~Z?YO@|2Zx0|r9PtLQ z62xsRNDe4L+{S|BfD*)QEJzM0LEOfIyZ7fI*C_&uDg5&@b#CS6n?gx}1ZbRXI zKpEmT6z&I3~R58ZRaBFkY9zd=*;-?b!0F%XWd-$x_?)Ct(#pK;%qq76Z7bCel9A)?cq>FiZ zhV`^PfNU{&dh8l|0NLW`Wj5g@ku8q+NifpI5pTrHBVQcx6JX?vBYq5zQNnn*wIP`u zK*E@BwK$O-K)#r`2#9nsaUqb|V&DQGlf}UKK;(*v^MJ?{6XybvC??Lq`!P?9&pJ7_ zdv<_{VqE4hVxAbtVZ<~skYk5gVj#y3lf*!d9p;FE96L%853lmKz!WiF8JQk?fH`6? z{)cN1Fi8wXX5AhbA;$I&_CTAsOdc-AzCiZCFmaLGDjq^^5o7OXdtj)ziCh)C23&B=9>xLV=<*B><-B-0$6(I9%qF~~ZTLxW*6>EWe8w;un+DQ) zE*qN$Qn=2~gPsk0AZZ>%QA`-7D8}`KNEBn@NE9tGMX`U4n4;K!zL=uef1a44*nh5= zqS${97~cz`*nhSVqS$|y5Te+>S_o0>KT`-%>_0;YQS3im2vO{ZwDZLviv19FjFn*& z#eN7onWES)VIM|O?3b_)qbT-E*oRRR`zh>r8I0zB>N*gkxu3EQgedk?)qxn;{Sx(I z7})(1^8fiv3dd zVHCxFDf=*rV!xDq7)7yP%07&u*iU80>rfQ?DeYj2Vn4MVOi}EoxPvK*{Zw}_MX{gq z4yGvfQ{TZ9#eNC=Fp6To1b!Grv0nl|jH1{Nfrls#<7MbO6seU1z90II0oED~_{JX?$xmgr)JV z(GZr#w?;!)8s8cXVQGA8G=!z`t)Y4@h!8^A=wX&$9HUrhAl)MzqS?*TWCBl zN5d8pPmYEyBtCi>G@$lF;v+@_YCj}CVh&qqe8e2K()gBW*iz&9d7@z}k#AuGYQIFj zg$=0v5P5zEG@$lN<6EK;42|b!h(<6Zo*a!}NIW?j!IJovXaq~*TcQyxiErTu?xV!x z<=KErg$J?$l>!fB11j|$$Ocr&dkY&-CGRa5!F`hV7B-+t-dos!N_ofUh#F9-@8GBb zl>!guXzruJgQEsiNqh^XyiXF}5;dSw;_>zv<$Y9mAVzr~1s=!-ROx#Q3a*NL7()!1=FBU`rd+R&_{j8dvhA}QQ*N*1F96hC2ByG!nZ^Xs8aZrr~y?9-@<9o zCxvf`8c?P1El~ri6uu>DK$XI`L=C7?_?D;vRSMq{HK0o2TcQS3DSS)RfGUM=i5gI) z@GVgTsuaE@YCx63w?qx7Quvmr0aXg$5;dSo;aj2xR46>AM+>G$9|Rslb10`r9~GW` zsr+wDA0?hY!1U;Y!sGWdl+&Y63O_VzKc&LsF_<2G6nH#@)1yxcKNQo0_y42fi~j5W ze}m@!|D?iUg{3$JV0vL9YW^)a10d;r?R|=R|IfW2qT2tUcPncBS9=$r(ti|o|DWgW z?oC3Kzs)P5#{W<3{Qo}g{$ECY|55Dv-|JqFJ^xp`$Dy{r2)+Niy4#|%AGnV5Z`Aca zblybg|7Pp}zZ{}N6CRNwz~*wz2c{IU5} z`NjEt^3(DYv7`Sm)bZ0;@Bex3w^;4}V(uBN^}jv04lDgH!Wn?a_62$(q4{z`**h|p;kW(CjkDhb^%HE^_u~J|6{fAi5yzfHZ4`~GKA52tQVtwa6& zqSP6wV@%KgE~#y>7e5vaqxSyS=V>C_Tn$2R8M%z`hw$kAc^*h77GIpHGI?lg}eV>dEJlCG{QWkR|mU zXOk)Qc+6R3X?@3Pvb4VAOfs~dk2#$TttX#GhSrl$B}41Ur;w%f9Ve5a^}K!(8B$L^ zkqoIPpFpP6gO4Xm>pPCKF38?Yt&iCq$DU{3EUE7}h7Xa{cN}d!Yu_xX?>LGqsqZ+F zEUE7}0z62m$IBm1rq+WGBU9|bhmxuG;6uoid+;hU^&Wf>nSu{KkW9q~uSAVwP?F!V zf-K4JSVorQcPu4K@;jE0CHWoulO_2bi>*J~gOq%{<{~mRAH0xE(FZReQ}w~~$&`KY zJTi43JeN%22hSl>`N6ZTKW7Ii{rGiG**7~#y`oJB5)O_F$KuSJvB9Mv?+#X252TlM|?}6I_DfhrFCu9ey_P|jS>_Lfr$4IN! z9+cR3w38+F9V5sR`;IoU#J;1IEV1vX#x~o768nyj46)}o56Dn^vQLKElPhG1J-JMl z*mso368nxJWQsi=qoFz*wq9ZV>jjoC!632zTGZ*{xrVU z&f=-$NqA7q9%(&}&$p9#!ee}?9Zj%--(m+n<5-*;JU9`IXRJ(T2e%il0B$E-4xAud z2HaM70C2o;DR3L%65u%D{%Lz~Yao6hi}`8CiWiZ`h!>K#5-%WcDV|RrEuKf-LOho| zN<4?$A)ZYhDW1Y#e!F-wd4za;Yzup^O+1!=l;L1}=aI{@gTsXFz*gZ1V2iK~I8-l!I{f@C4p&y`;W<8eVI?q`rM>?4;a! zNPYC6$MFHzL+hj9F}@bWJ_VyZ%wA~gU6Do z{NOS8Yp$2{w_}#9r}X0wi&?Us$`8aWSx?~yVwS9@?gKGP)>HO@m?i6}`asN*^%DK| zD*uKO{q~S7(QgmP68(0cEYWYTkR|%|a>-PE zutTQogY#tSJ~$W4+v_R(V4Do(CuhkJesYow;U_0Jp8p4X?;Ryab+vm}SBI+V>YnOq zWldMNX4Ks?qnvZjIp>^njvyfkB!ncA0D;ITjJikDBXSgo3=Y@^gN=<%vN0yu*al;4 zgVXoydJgZk@4ME!eAjpHUEjCXtAF&{r>i=i+RxP9`|Jb1kC|4XJ)`%Do`mD~jVJZ4 z(Ub7}zHvcsW}O`5pHeY0@UeB0zQ1C4AZwk3@5fVB4ADNcPQvvI4@O&=lkoh)g94XE zPtx&MXivyX!14Rf`nVYI{JwEsZx%f%u3z5CWAb|N{c`?5c`mqq;Q@h9q9@_`{evEn z)8YDk<6*szbyA!^j#?`$-XA<)?`oYC_Ya;YEdC!nM_2>^JWE&<06bGzBmg`^m>N(q zUEUEjpkkUZHK1auFg2iJiZC^xVzMwbpkk6RHK1amFg2iJyf8JOVytj$zHWc{hN%G+ zeTAt36&>ZzDFqdtFr}a(B}^%(XeqxErJ$mPFr}cPxiF=mqM0zIprWZTrJ$mTFr}cP zu`s2eA}LHMs7MG?3M$HkDFqdAVM;+oOqfzoVGBbFms%&G1j3dugh1F7rVdmX z!aDmtYN6wT}-DL)ZJwxbIyUoPmz`cLi_4o$!I+u7Bw|cRqMu=wCY1 z**`;6;${0q`vQB^ecjUzQHqj%%Dx5r6ovBaJos-%kJS>%_Y zxsh*0o;I}5lz*ph9`-#LV0TBYLujiMI%9(-Z_+WNWm zW2{_w-a3yR3=61#xZXNs?a@Eh-^JR4(dIz2yV(|f37eU5L^r-PerNpBc++?lT?wBw z9yIE)?%*clD&sO^CwdYtHD((VQQOeh=#0Jwp3%s#{>zmF_k;`KJFug{mDtzdc=#Hu zDA*m|Vr@h1#S-kqFbUNc1FY^=JJesaL>$IM1;!u$X~n|6$d1VR$g;>>?9uSP{-f{~ zH2%v}rH=T;RB7#o)Lcc^Lx-g}%R?djXuk|F?M(GcaMHRymJo8L6N1h(g5k^{MD+25 zus)6ub!HPRXBNS9W)jNu352*aj}UX_5^QG|9M46Ct;GagD}zAPMDypDKXyJ#*uOQ%*ZsYxt_5d*286@ zI)C?!e?TUz^GDBwoSQfjbZ#W*`h0)FW}IVcGC!w(J*}TjU7^OFac)rbbn1Yjr&9YB zJ?UJp=z?>dq9>dy6+P~JeZib}4y&=poI{Epbq*?e#JOD2!_EPIu(diTv^UM^6M0oz ztG7z=U1w8=2(6t4LZ!oE#Y~0HshVl!uxc@r(K%-`X@}*D8Bgcr&7>UGF=oo0B3>Y> zr!{vcZV?6dRAD$16NU6CnET!hc(3F}BV^Vw72YM*AN6~|+OB6kj z+O6pR)GkH$r7l)#J!B@A zI*gG+dZwjQ@Q=x~aLy2#JGF#n&S^qZ=M{I4p$C zI67T!rc9^H&BPs6#Aagp*Wc)MsoCl~JDQrM=-SjwMc1TeD7rc|UC~vkX^O5)O;vOx zHAT_k)MQ16Qj-*2k(#LJV2Vqv(%R)IF11Q)2U1*WmDcvBxYR1GU6vZ7&bTx++W%PT zeW_7|y{VCeJ*g3dOH#uLyHorD)4Njq-O?AQ_`9VqN)6^QJ5z%QJ5mD)+fxGw+fw}r zTT}fATT*=qn^S!Vn^K%m>5VB)sPu*uCscZUiW4fmF2xCzUX$WHO0Q0J<>{+ZT?i{v zoe3*aoe0ZQ9SO@)9SBQP?Fma#?FfrgZ3&A~Z3qifHG~DJYC^wM6`@ZmPw1V>5qhPv zgr2F^gdV9%Libb!pwIt+IEeN?(b3!)N z%>OMt_{^q?o=!DV^i(RT=%G|x(Sxa&q6bp8qWe=(MfasFMfavmMfao(MR%tniq56D z#KO}WQd~~qX{8jGPIy{Qw`;tW&turpNA>GHoQI#vFa zqLbxZ>fmW7%31L5X?K@=p~V zFaMpQo63Ky=*IHjC^}aDiJ}|If34{H@?R;suKZ&~N6SA_bZz;EimoaDK+)CZzf^Qp z`TL5lEdPa~BjxWYI$Zv9MTg3{FvZiZDCfcyPdixtj(YU+^0yToDCfcyPupMqrW(7f z{HKa8E&qu>IlX=5ZxHsD|Cq3+{6~aK%3mk!F8?86SNRVJ7ni?AxTyS9!p`#V6Lyrp zLfBsZGGSZ!_Xu0dzf0Is{vE>R@|Osk%D+w6SpF@-hVpL`)|Y>Su&(??!dji4&|9O^ z6MC!5U*JQl%AY5!EPsx$qWoFH^73a0%gUc7EG>VEutcXL^%j>u$&p3n7YGZ>pCBwK zf1EJip-1)RIrOOBT!$Xjo8!=pbl|;1rx&(EV>Os{fZcGo3L`f2R|6259P7=>7M*viDH?|E;noup_{!vKz|| zmF+_1|Dv*~==;|jng2{#68G|1V-cj(s=wELQXXkKO;)#umn=#zvy+f5%wsShJXop8ucQA7cN%SJ3hQ zQM}HW*61}@x4%8Q z8msmvM~7q0e*0(zR_t5W->_c)m&p5n&wAE+7;E+K#2xR!|J3WRg%!5~<{wb;|5NjO zh><*K7P0%^)#g5Q?O$%rGRK+&%+ARAH#4K?*8i#T3)K35`#<*nJB)Ss8;r&1@;B1x zgG&EaxEGE@zKnblc^CQq7bA~F8c^qdJv#jD#H#!Gkx7xEk)DyZku-Yjhr)kCmH)fp zAB4XZz7W1IdXvOKllRr|DOw<4Bm*f^_K)U1(zb`F&3TwyQ0Rw zMKBiB^e=G#|F-^p{dxT{wddbq{StkXzD%F3Pr%eM&q#1JU{zro^fQR93dVqltP0vw ztTT+OqS?d&>kQ+nRhBU0s#T^i7+B4Z)ULG7FtC~*A}32=HDKijKo^^gV8ext@_4e+ClS-#8&ZC1M!I^v)R`Y#@8C%V_mhYFb)qJHeW2^ZJVa8VTt%Mm{&EtkMP7 zc~6+J)qF~rvDJLJeAN>^z zyTzXXIiwWFM{74L?U`up3iVn~$Xi;jjK{@T zri}A}P_%ZbG9Ht+w1npml;>JZ9uQa=tzD!JdPGiNsEmijSfGrDy zGHw@RxH4`NW0*2-6=SF}ZV_XMGHw=QuriK|F-RFVi7`+aH;OSp8OOxvuZ$bS=%%{1zjH6=oR>rkr^isw(V)RtT)nY&)-~n^mRboIReB(+npc1}uL=5PJZyXi_ zLg5>S#DG%x#uZ{fDtzOh7|;sexLgc~g>M`XqrEcrivhXtAGu5n3Pw)5G_cyLg<#-X z&g~PXUgY))Q!jFRghelK%q7AUjNEQv2!@RB5{6y~Un~r{5WYwlY9YK+Si}OnU0Bot zyiFK#A-q)>Y9YKum|~IJEKIS;Z4#zf~uDo3tTn97l>5Tx8NQZDs_}tS_4&fHU z5Dwwy!q5%jX2MD~nhGn~XdF? z8nPj52}3o6O<{a-4Y@iXk{+y?GjXAvkQNc^YaVIJC2M8d`z(kR5`;yVH;g z;lU_?I}N3fLk6|8PK!__lSA`!w57*vR? zcCQ#zh^%&x7*vR?cDEQ*h^%%_3@SucYY>A9k=06KP$9Bfy%Lg7Dhr5I2O-#8)$q{252ivg|hjYDEUEPUe%F`yQ{aZn7%g>PIg2K2%= z4u}E4@QwXqKrwvdG8n-R10(g10!|*){YiB9|9jaV%6^6V{vVZnx9qvH$8eW_rtG$| z>(I^blCmwR@n3*l|HhOJD(iuJ{mQcDWo2cd_*ba&{~-PrI{AGo{uCeu+!`5G|&#hk}Oa6xS z3ibzh(t5~huufy|#_NzL-)n8R)>%ufIo4!rlr_-mVYRoiRynfOhWR)23;5W47kmGG z$9xtw7I&j#z^&#{^B{Kq+ib2h=l^fXum2yYYJk) zAbJUWhOPuh&=+uLs3W=&c%jB28~q4)#Ft+m6Z|yz;XhTQ+=xike&=Fmle5xU;7rF_ zm7z`_r!z`g&nTA)f}0WSVfqaSV@?m z-$NLmSV8FLeMsozeL(2#{gTkjd!NwL`vswg_a33U_j5uw?`MRr-n)d(-aCX&-rIy~ z?=3>kW9+m-d)E7@KU6W=W9YPEl=p@oO|8(L_I|ABDUZR^iV+@zrxnAzA3B}2>-5T% z-lu%d72fag<($?l7wh)|Zq+O2C${sUd5LX=xrwcWISD4*D`zK|XRn-<*u;lsCN>gg zBsLJHC)N|DC0H%+Uwzg8>XyyZMA;6UzxB6PFW)Ck_yXB=!>qCoUrlN?b}9nAlAi zkl01&pIAodn^;QdqMsvlOe`UENGv9_Pb?y|ODrU`O)Ma^Nz5nI=uB)^R_RP^SLXG4 zK9tqZ5?Uwb5h@dN2^EPsgjR{!gp6KCNGE0yyu?gGDlvmlt``X{6VnMT64MCH6H^Jz z5d4r{Y?VzDlL<`{lL(CyOpjJJ(hD3(CMFPE{R|n91J1cTI-!Nf3*==ur2$e~idOU>u!^g9$i zlVCokLVGeXM2%fY3|90+qOYRI6MYn&PxMywSfZDrNA)`uJ(B3I=;1^+MGtweDtgfS zzM==bR}|gvv8h#scAxh>HFmG}T}AhJ-%)h8_mZM>-nSJsc;8Y~^1i94-us54v)+q} z>bw^e6}{&b6};yZo$;PkRO>yX=(NYCRu$SQ?u4iQ#*R}fZs2MNnP`qheM9{p;?QjdPMVu?q;TCrGHpM8->2V1ew+sD%v zczX%+6I}@N5}gTib@fHfNp#}KY+Ze0vl1OSGBeSEFeA~PFg?+ZFfGxRFg4MJFeOn# zn4G94OiEM{CMNQP3A*|%#wT(d8KRQ!spu4ZQIL^%(xOtd6aBw7$!C7Kg5x|+S|L^F^i3q_=gb79>M2P6>iVN%NiVG!zd?=XE3A%p77qSZduO$J4p83hu;!a&-|dbLeT@>az*!h%M{(`Emd@{w?xrB-eN^} zdy5pE^A;*<@D?a4dGi(3d-D{X_2w$7^X4cjdb1T3yjhCQcrz8%dNUNA_E`SZ3NklM zjh*zSDmvk@45XEImp56B-RVtIbce_Cr&ikS9?PFvX}5Xf)uXq1;}qTEja78B$HI|T z+HsGCBdxTXyiuC-18tpNd6D-I|7Wh;>HVFsL%)x(-TND1oA+13R_`x_E#6mz&EA)U zP2Qgg8@)dfHh6y|toObkj7|?Fj7kq7j7ZZ-RSrwjNmUL_(@9m1N%zAa^zHS^b>1I% z@Y)1jN#z>vbB?U`eot8CeJ1(;Dt*D%`~UsW`8IZQf6zIL`?DLIL(V0*uln~o0PI6_ zU?n;LOe`CM{(seFDb@e)llZ&wA0jSrA%0){O#Bu^1ul(mM|b~)=m0P}J^&T`)rbfr z;|6;Be}*0aZ=yE;dF=kzfLOq>*das$HpZ4B4lp)05K(|CRP#Hrp#3LA0N$}*MMwW9 z?0ZmMf1_UuunBkmv+S{`iSKGx+2yul2cv(A{#teayMS7NBKH2fE_x96_#30kqO;Ne zZ)mg^ssSo-e{Z7({&VX?>rLF-KW{yXJNpyXG2GYhwl?Cfex@}R_w-$@D%{aKR?z$- z?&seze_(zC{r}FHC$L`Puz88O$y{pAKs~@fv#VKUmZSS$(D;+_YvWzx2dI*N!noI{ zHEu?Y{61r=vC^1}3i)B^{@1~1jjsH0L&qwBU!yAE2k6NEMC4xd{HyTW;qQlE44)6*9X=JlDSRZn2Xz6<|5IJSm!aRF2f*v0 zZ-<@=Js3J0x)XQVhtLCHb7*;Jc4&NPaHxBzCX@~}Lg)Rz1%Ds>5Oo2s244)G58fR- zg|!byf_s8na9=+MDoJ;61x>fznCIIxAGp)FQ$mVt(+_UVv2~{3QND3BEq)9(l4fnsI9Q{izy;# zD=htDiip_?OTU;RLbk%vFQ$lytvo&Y#S{^*6-2+7BBHf|=oeE&tX2^HVv2~=3Zh?3 z5ph~U^ouDXN-KzdF-62^1<^02hzPB`hV+XmB0wuF{bGuU&k9Swm?FZn!qP9Mi0G`a z^ouDXI4dmuVv2~(%2T3WOc9Y;LG+6$A}%Y4elbNvWd+eMrihrVAo|4=5s?){znCK8 zv4ZFqQ$#dY5dC6`h{eilNWYjOLb1ZqFQ$k{tg!TpDIyRnEd64Nh{Fm?znCJzu)@+W zridu4u=I;5A_yxi{bGuU!3s;im?A>3!qP9MhzP8(^ouDX04ps0Vv2~r3QND3BEql2 z{$+sZtFZKoDYhW{mqc^2e@QeW`23EZWMDeF=+EWyrpS zMN1j7FJaN-`LZuz(NGV_R)ocfGGr^lVwgwCR)ob6S+)%<2FbE*U{NQ_wt>X}S+)%< zYGm0qu&|FT+Xfc)l4aY#!XC108(6r6EZYVac9XGfpjp@j#utEDSh$#oSy;G;h*?>y$m7Pb>H3k%zbn1zL{M9jj%79hTU*#@w%nJn7?7B-P(8^FRwvTOrb*g%$T z01NBMvJGHi9a**kEUYEVHh_gSWZ4F=u$nB}02Wq}WgEc4O0sMNSXe=pZ2$|)$+8V# zVHsJr0W2&f%Qk?8C1lwKu&|gc+W;08k!2ge!a}la16Wu=-Z!Kqs~`>^Plb}K0{wjrO0o*@_x>SLl2w4i_YEn@D!}8*>q$vg z0UlpiO0o*@_`*_>Re;AAmXfRjJ${XpWEJ4?Wn4lxh{|@oS`1t3Z!mBc)medi)wG)hdX`$MZ|6RzX}o zSW2}D;`6~7VR8CkDcdTD*9S}4Rzci8Sjx5v;`hN)wpF0xuR+;XK^#B6PLypG#P0)9 zwp9?f4@B8kLA*W?Wm^St`aqOz6~yNQQMOf}%dbJ%R)H?R24!0Xy8IfHZ58P9YY@3C z(B;=SK)U=IRB#pO@@r7RRiMkSK?PSqTs~d`6DX<;q?V&p3~=7YyLck&-ah_=ean2yjg#q)9Y9J^PFD4+Mnm}`f`jv&*Aii{do?b zFYM2AxO`!Mp3~!3`|}(gU&j5p4Tmr6&u9AkYJWb{-&gzdnf|`opU?F7)&6{@zpwV^ zGyQ$FUwTM?U+tG3(%)D6rHAzQ)qd$A{e87xdMN%LUy76-(%n}}=^@>HwUi#x-B(NL zA>DnolpfOES4-(3-F>x`9@5=cOX(rqeYKPxio3^4U=E)VZx6&AJ|oT^h>3efd_7QV zW5v}2r8ZVPJy2?6>FBHd+E_aJYQHv?j=tKjjisZn_G@G5=&SwOSUUP@zc!YRzFJBT z&%n`Rf>ujOEBrhrKox6a;plzCuZ^XrukveS>FKLvf}RmikGfr{jisZnk_mbSj^01l zuZ@ML_YJ=`mcG8qcf@Dt>#I;Nf!bK{^>`|&jTKi9l-gK$djDj4p8;SaI}VzcyApJ=m{}g{v3#Yh&T*h5g!CI{GTVHkOXQ z%CC*3qp$L7W9jIt{MuML`YM^AXXxmwWP+X<#pm>EW9jIt{0T}&U*%6wI{GSqg3{4f z`4g0mzRI7V;^^_E$OIKX50nWiZXPHTRJ=S;Ca5@hpiEHl@j#iN;^KiaLB+!ZWrB)> z2g(E${|=N1D()R96O`V)s%%O$l1BdjP0d87 zw*L_Ky04p;o8L8`Hy=0eH_zgZ_jv4{SRr-??$WPBpZ<$*pS~hCKQ;|_>O*3^%`LG` zu_|-5xyaldOUIgEC%&NlmHnChk^QdyBl~;y3%GNCz^=DX+Be(R+6U3Sf2+O5UX1(q ziS`J)Kf3s}wJYrwcEUEWAKw?zPolqw{xte(^jp!VqmM-Ij-J7t{0-3~(MzK{qZ^{j zqw}Iuqhq3j(9ORc?&g~#TOY!1e4nDL-&@ve*0-#ukgG4D)5CG=YHPoBk+ng86FuyH zr+*oY2ZPwnz5*QprlPz3K-}RT4DQDI|CPvOKO1}$cfqyjfqxV^>0GEhL%q!zk;ajKJDV=K^ncByhyEV=;-7Qop+`{3k36|# z#{Vhn{nEd`N2Bp`;|=3i|K3iG=6G|M*%y1*bunwqR#?waW`>Qw8lV3!?B93{`#bDI zglBDhaeO9rco-V*jjE4ayc~Nx7_q;_K97AIdlxky-@%HHM~#<_7qDmHeb^J>4&w&n zu(2225!YbH!jZ-Rqr1@#agmmWYnYLLME)50P2~N^n^-aN?Z`8cN6{m(Hgap^XyjmI zcVu&9C2AU`{&P)({s-L;s)Qs)-kfr<+507Ylq{)%edev0mP zM<_by4p-FR4pUTenFq~k_3jWgcGexN=rNap(5&{T&Q)QkOLH0iL{*y0@F!~0T!ueU zkmfS{iE1>L;ZKyJxeR}z4$Wow6Gdq5DD@imxFZ!k<1!eGLOz$lU{vwB3kZ*Vbi{B-ch~I5k(JGn|^Mc9}NGRq2eY z=JGn@s=1uYL`p8JGr*c_?J}d1t8^I#%~iO}sN`C?Or+#8I)kvew9X)G&U3f&{iJk8 zV{_#?qp`V`F0&=M7A|umx#sRB9^A~`NNDPAAT)8;6B@hg2#s`xWphb)Ek|6PVcA^5 zUBeMaXM8qS=C0;Q++9V8>7Nm7cO@a}t{_=M41l=VB zUH^@rugK}2sGs&Z{Z|MM57Db5L8g_e!%4o4>QIueUL8#G)vNVj#y`C}$s|IR_FT~O zp9p_?B$-aA(k>*KPN>qJNOERWX^$s4Gw}CAl4%0`@sMPiph|l*m{!m7NRr8cD(&Iq zO#eMstxe7#OixZHOiNB9Oigk|RZW2iN;O2)5*DT(AuLF< zR3NK8n|{b2%8pJyNEnrVfG|9LKVeMzK0?Rzy@a;udk8%ezaVr^yhrGk_&K3#;%9^| zx_YQ{;$4n(O1wkppsR!1>+0Zk=wl;uA=^e*$JFR=bEG<BYFKzLN1|3vieUs z(mJ6Ys!XVnio{R&P^-ingp966(z+V)5Y<-8PD@ zb88eGb*mL!>sBec#?33b+RZ7t%FQae(rvBih+C=Xuv?+%klRYp6>dh+L6;X@R=eEg zMV!?RxGDAMez#oFWo}DFm%1(ZvG=*n347gUggtIk!X<7K!fv-QVVB#8aIu>tT;#fh zoo<4#L;skt-E|1tuzj@uD{gg}^385>nd!}LMh_(ap-nCmyxEQD737a>aGBuEuE*aK z{>VC)3Eu2lmkHkN8kY&)>}og2V^+C3VWk@&tZ+5L^29#~%M#SA?9v3KD!U}{S3a~@ z|A??C@fX6v#8-p`i7yHB6MrVmOHh5XbM+57GABXx$C1HHx*MxEU`-HKHUlB&S z^9Uo{xrAZv9Kuj{HerZ6i!j)wm(C7y>7}y+U3%c`0GA#(+drXx+K*n>yzfuD94@416y4}Pt>~Ehl%gBlCly`qUQl$M`-GySE^DB2+O;lg zpmN$Z?qllFtKCNxUFEU{DyLoP(y`^VBkn`$(ZeolpmN$F_W?C_h07YKoOaM<4O9*n z(!J`@11@Wza@v0PZZ&q9drr}%ZiD~z<@UKH!d|zYu*W@1xWug^>~@QUU2cJJv3rJa zky}gH>7FL+2=YqEZFf&`WSe`Eu+=?5*y7$r*zDd(*yP?p*y!F)*x=qqSnu9SSm)kC zSnJ+QSmPciEDrLj%guLh;>bMrM#9`6ufyCN_ZUZJ2YEr}X1Oh2|U3DQsHI=g!~(#gGq(9zvZ z=n$j}%eB}4A^HEd`qKZo|NlwnM(41~{?B$Mpr*Q))846YnxF^3-^)HP`>5>gve(MK zi5&pA1K>4fmz8ZtFTeR^lgozxryT%(g8l!VMHfHW0pR-hLGiV}>D^S%x!5V^^ z{x;YLAZbMq7x~2ex%ngXOuS&;Yo0cbn^&2an%hvzKgXPC4mEqCQ(newWE#d_&?oOb z<8|X(D*u1{U-JJ$jh;qZBaOS@P$9e**df^oq2P zR7RR1!XOm@|GfWSefTbP&pV77fGy#b;d$Z7h%EFCcM9jiEyGSY6#6psTU6q|fgJ#! z3q2Y-7djO>9=Zy(_S-{iLJLFFLZh(l-nxW;R|@YU9}&Kod|3D*@*&}!4no5`2z)#lkv zVGAM3eS#Z(+$*@j$324UeY`|)osYW(*ZR0iaE*@_3$FI@BEeNY?i5_<;|{?UK5iFW z?&CJWWj<~dT@8debc|NWdoa^H%!8tyz z6rAnj3c*=EE*G5X<1)b+J}wcQ?&D&?X+ACzoa*C3!6`m25S;AebiqkJP7|Ey<5a;3 zK28xF@8e{_aXwBG9P8sm!7)CL7aZ;5Siw;~_6saG&yMu5kKhO&dkYTtv6tX5AA1T8 z^|6QG5Ffh>4)(E|;2r9tPy}9}|LAK01PVAIk)DKE?#IKH7oh(X&YH!A*2R%HzCsmbtx7 zBLh3Fv&`*v8Wh+OJ&W9)f6x=!`RG|B_k81VF_7K!jYq`rl<}}U7xH_!PCNCN=VE%V zQ(s}G_c}!bJFK&k-or7LF!Otz3}NK=WIQa4^qz1?7}-7HU|@%N7Rf!NZ92)@LuwCi zq9Z?pB==zWp8?rDVgEBQxz`c7alBI`_xv;b&w%WnZ}^`9={?`@KLhi79sSS1{9Z@@ zGcdo`(f zBERPwl6pGJ1YZZFp3Jk7;0stChD6Oe$?pM?d8%W2uY+Ws>h`EpCG%8={GR_jl6k5_ zg3mW3HCl%hpKnO!sg6m$4#+&!G0E2fnWs7=`TRp9^Hhg4pKnO!sZJ7oc(0Oqs*_9~ zSTav_lIjCX=BZ9{ePGEv)k(4sESaY|$@YOI^HeA4KCon->LlL>mdsO~B>cdVd8%W^ zuY+Ws>X`BCAepB+X8bxJ^JLaZ#t&abYkVt`@B>x?CEo|E07|+K*b0bjpI{n@Y@eV9 zM6ORT1(Zx5upB6fJ|HqqbgE%XajHX#Peze(szZWL z5E-XBruRA^<5b7=UIzr*>X6=(1CVj5Lvl|L8K*i)?E#Szt&_|i5Gm0*N$dfU60MWG z9uO(fI;QnHNJ_MhX}u1T60KueuY;sS>zLN-ASuy0ru8~VO0yXyNyzC(J30Xb-@a-`#?~2wTt>+sTv`4Hu=Jnc3g;bs7^#WG=AyKQ2X}$J?^+r}5 z(|YX(1&&7Rkk<3hl?tgk=8UC2^7Ro9s;l~Z-_Ve-Yu)PyS#l&RT)C{wdNQKn`)qD;-U zM46gxh%z;6h~@Z}tATj0E#;f3BDWCElbZ|Y$jyYatIU&*&Rp2S@KS zN?q&V=zT`1YaJbZJ1KRogQLfUZReM|)`_c^H;NrS>%`LwV@JWpyetj!leLKIt6|P>!{rXmTdSSo56^>rmuWyB)m(L~jt@QHkq`sA2zMa&!!pqA6 zQr`+6FDUh`;^Bc(-zp9sDD|!4-+@x!O84GQcJwULy|?pgTIt@~p^nuoZsg%oyDHut zXG-nrdZLu3if_lLl%|Sn2TExwJ$pO9G*vu1K8jzODy|*um!^tu2m7U|;@rW0X{va4 zuwR-g?j7uxriy@avcvgk*!$KXzM99)iF2B#WhjKM}Pqoa{W5B|o6jWq^eMm~*vh`k11k9-$h z0v<=C;cVnYr(VLg*y$ zss4ff7N+)HdX;uKbB!NdtZVG7QyKU7TU4uIi!;BXm_eGmOwx z?Z_}fSG7H}%MaC6ZOdFt*qXVBuqCsTusO4Xuqm^hurafZupzURus*Yeur9Ni@E{oSeRK(Sddvp zn4einn3q{Xn44Kln3GvVn4MWjn3Y*Tn3d5R;$GfxtRWiAkgW}YDYuceEV<9JrT%v?g>``6hh|=voTejGR($Qb<9lULme^`2<LC9u?6Iv(LS(Qn3Rz*^s)hemZ$^={R z;B-=*?j_afspK#|RGu74Xqg;BXptODXr3HIXqFsEXqp^AXp-ztXq@avXq4Q zm{HE70E3z0JPI(FDbAw+gPGzy3NV-{&Z7XMiF%DklFSe1QGmhxa9(>T!*Zv*_F#tP zPI>Kt42!1n+Wi?8P35)wGTqg)+?!#URbIO%!!oP9c6WwFSb6PShJ{&qts%o=t-Mys zuz)MC)n}MD&ueEh%$w)6y3E(#OEL5HcTmWD{VC66m^aUBwHfBk^V;bQ^X7T&REBx; zymm74^|x^%^YyoJSLW+)Aw>$O8j`Uv$+tXhW zwxz!$Y)$`}uqFK`!shfJ37gVi5H_a&K-iG}oUlIqd&0W(XN0v$kFX~FDPeW`cZ5}G z<^uC8)650tSEQK>%r8$f7nom`W-c(lG|gOKeo30S!2II$hkTwz=?@4C)4wDvNWV{* zpZ*15Uiv-4-1N^0bJ9N}%uc^cn3aBqFf;u&VMh8b!t`W{FfCb5n3|;1&QD3wk>)2S z>A~`olJq?JiOHrsctWrdVSKU)VO%gt7@KTN7?YuI%#Y5{>*hyg=ymfWlQleMM20># zKRiPpn;({;kIfIw(8uP7B&&Jw;A9nHP%=*#n5-ZSNVX#MPpUW8Fa0J*`X<#I>y!Q| zM|!7!Lg{sEy&`ZYr5^s9tU>F*Odre7g+NWV;I zpZ*@9UC<@8O@EirCjA{kP5LE5b^6KT&j#`-Y;sT~>?bv~%u{)L4W2x}uW%Lq+xO4-}nsUsF`)zN)C` zeqT``NS~h5&bY6rv0C?K$^U0`v^DsH^O5tG^L^a?Kjxfs{yG0Y3wQp5oNi7vIs_(A zNB-xsPtYImhu8z)LfL&~1#|~IT6UmpXW6>4#bq;j;nkKYI8Pp}T+Y4ZW>lXwfV z{(I5EZ<#sM9Aox3JDIJ`rly5^^Z$|azsER*eesSMdyGxk6>p|7));7X#h!RAvEpBg z{2}rYs@h+{o%o~J2jB$y^c})o_{PXm+=Gve48$FHRiqsE-@*Ub3E-RP&37;Eyl=)% z0Q=CFZzb-!Cx(aOp1W;0gF9{`^cUQ3|048b+-*ON75{ZuJ#Z9v+B>mMVPR-$Xe92k zJBC{09@`H719#XTBG3Oy@Oi9sXb7GN9>cx$ZuIe68k~tPegm;5Vh(rJw*GhhGyQ%2 z$Np;n`}A7GfVi!1AYC7AK;YIlkgtz6Aad&)NZ3ak5W4jZWbC62h~4@IQufgX z1aExqPM<*qQh%`PLRqz<( z@vR1gapia<@~sAhafOk|w;B+}6-FxGYG4>Qh+MwafH1C%BbjeCAc`xDY`)ciD6TNl z`Bnp?xIyIetp-MMgGlIGB}Q?B$mm-oMsb5k>02d6af8U|TO~$ugGlOIB}Q?B$m&}q ziQ?k_pOoy zbHT{&TO~$wgGldNB}Q|D$nRSvMstHm@LMH`=Hhr{_^pzJbHPaQTP2C-f|295N)pfo zBgt=-B%%vOmftEdq#Hz<-zqVr8$_PpDlw!RM55m+F{B$rrr#2HDgdm~1TsnhtkQTgY5=U#I5LU= ztkPIAssOCg7&6KLtkP&Q>Hw_LD6$j+lt%g&s;)gNKjaAi0ey6!n^hW49u?>oEe%r# zJ&jAdG*lT+i7`YO7v%K8JY|HOK8QSAcp!P0@Bs2q;r`^o@)G^j6P=f5?W>H(cwcQjI(02QAV8@HOeT8QLT)E7!(R!J0k{#Lf2}= zpit;&ObUZSp=+napit=ANiizbvz-uwLZNGSi9w;zwL8V2Q0UqnVo)e_?RGIJ6uNes z7!(Q}O;BM_D0J->F(?$e)U8EJ6bfBK;aaprq0qIP#Gp{<+KpmRD0J!H$)Ok&{5N4UxnWB*QmE5=+nw-w;VGK{R|rB(Vh5@C}i~5@f?SL=sET4c`z+EI~MY zLnN^Trlnz}av7XYQizL=lI&_i5dP)a&H3CyQ@V5<^ z(xHna)>Arkk;HmRhc1#>PwCJ_66+})x=3O@r9&4Arkk;HmRhc1#>PwCJ_66+})_*)FTgx|kNVm+lp7fGzAbm$_9^^^`> zB(a{-p^GHeQ#y2!#Cl4HE|OSJ>CinR<2KRBv-N{8M@n9`y57N&IQy@V+pdQV|W zhu%Y&(xG=3rgZ4tgee_*S7Azr-bI+wp?4Ohbm*OgDII!8VM>SIL738^w-=^#=xv25 z9eNvKN{3z}OzF_8g&`e~dc8_mDMwydDMwBi$|1*Og&`cmEro}WTL>%JXfCW|qnWUh zji$m%Hkt@4*=Q^b*^uXKBn;IMP6{j0aD|m zMJwuP*0aWMG%D%pS>rbfVp@+HKRE)@Xw{?0PZ-K*)uYN!7{X}Qv&?UVoXIl3;essl z8z#syzoCLG^BXKrjWR!Z3P_?=k2*hLD56=Gz`1$bT;rqj9|9MaL@apiQ@J!qpFSKS@&&I$eyEb4Y>o9GET^ieoxXAL@JnWG;CN?iTMO!F-k!Ekwxe(>BGXnG{SB9`fuY8z}b{;-VL)D27Q?a1MhbiVggvr>j!XKH0UY9;h#6|7H z1hYgKZ`KpWp*x8G(AdCa!bq!}Fv4m{7;Z5m5g%$XBM~2BF(VNlY%wDdA7n8R5g%wV z-X9-eF+d*gZ`Sd7`k_w7f33a<#`(|(+YI{9+pHz@g7@)9dYY#Md?PlxS!2SeX3Q_d zhBf2M#Ktt^%fxD$F^6Vr&o*P2+aBGF;c0tRGsfTTVa*tSx5qSN{N1i;#`wFPHRkxQ zVYfDB6Do~agbHIOp_MU%kTIqc(guHO+Y6|dNE!Ui?Q(;^r`^)vS8KO0Ch@H1#zaCh zV*;URK)tah#(0i24ybq7$QZ|wq%oG@8e<3vV>H1rMiI&a>f^)%Oa|K8LE|Prglub< z8#gLCU>sAlKfq+FtzBl^pvEpWuIIDuGp-}-4P*&>jH8500<8(V1C@kb#3VWilg%3>#@ba+78=E;YF2L)=9&2pk$Vh`;(;i{aYudvN zdQE$%L9b~KG3Yhz!3MpiJ;vqY~(ZdGd2+V8tVytjCF+G##%xz zV-2CFv6|4sSVib=tR!?ZRuH-x%L!eKWrWUw1fi3$l+e*wLg-*DCbTye5!wZmLuhL( z5!-{+f#Q>5mzZq`yU}sSAK7JA6D~#vVSnTzGf&uQ z<_J6R$CCfhc9WM(Y@5kTCbre&l@i;620s2Vo3RejhfOB0g4jlrGd#Az2}?}Q zme^ucFZvHHLVIK%76yh876b+p=A-kF|Ij>>J}@@dq&JJrF>O9HJ1~ea%cO&f&BR}i z{#i3jlQ7*h2-D06VX7G>z>^Xt2L=)*nL)xtQzuLa3?Pg*1B7vb{)DlCeuR-|`s}~x z2$OR)Hr(V~jSV$9S7Sr)N3Va(V3Tt-HV8$X{>VVA81-R*$(b4JZ)zOrXZ(ZE*Z4c3 zkMTD`Z{x3oUdCStJ&msjJ&Z32-HksJx*2~WbT$4+=wf_9=p5)v=w$qX(9!su(82gU zp}p}LpDvXZ^t&9%| z8RG*&+V~~G3-ltSjQ0uU#xDphjrRyGjGq&l8$Tm7Gu|aMHQpgKG2SLL4)i26GTtI2 zjW-Fd@l!&=_zA%=-XN4=n@9imiU+zAV#bdNw(%oE)Oej>89yYL#t#UF@fsl#=tc+| zuM$GW_X$Dc6@nh<>gTy*#>+}Zp9`=)%GRDSzNf~XHomLqDdRheo-|%kbiw$xq9+XI zzHRMsgKZOR?R=n%dh{{lX+@73Y?feaj~Hy0U~3N>Y?fea4+T1@;~q5FHo?{&FxWQ1 z*6ughHo?~JGagaL-D^Co=pN%CMRywyDmrI8ps2yPUs1`pPf@*bucEWYJ&Nj#yA>6U zbBYRBU=TtG($>xx4T@@wlA_Z_y`odbSw$y}Iz=Y}tSYm$y8`Xi*qwoPitaFqif%Uw zif%K`D7w|CRdkDSTG7qMDMiPPlZtK%v{iJYaYE5C<1R%v7h zi>=wHOCMdSDO3H zUC4h+pTC({_dWtS@NUqyO2~-&zxiIi9@+7m&=3Ez$j-=m018tvmTh z6Wq&x5Puu{8GI-HT>LzCG^mT;6~7648XSo4if@ju!mb80(DQCsyl=cqye8f%-Yi}g z4`XM8&tt!e{XF&t_BQxN?8(?e*xlfC?AF+Iu|tszSl0=cZR>hjt5uS`(?+zNYK96-ej+|7ohjS zID4qw$L?%b+Zns59k)Z#zn}xc$I+ife;j=|`eO7#^g-kSPDO8t9*tgsJ_y^QYoklB z55lDA$moD*cl1tdja~?7o`by*{%HNidLO$Xyk>pddItRv?y(Bi?bh|!5n+$DRWU;Qt5Tfd2=DF}ex=$}>ha;a_>iuqON~&luB$f8`l9{||fb9VJI~w)@sp zcU5;)cUR45G&53FwPuthB$P8kD5F3Sh#)`_1tdU1Ip+Y9kOayJfe?r^L9Lz<(*o z%RW=)VH?kt@vl33bQ%A;vqzPEq95B~@owKX?zDK1ZyVdK-TKjO*4>)6T6bx>!`h|k zc5A1mE!GZAo2@%FZL+p&+GuUlw87e{X}xuadMoxi>vqCgYYSnGwVANm+C*4oZ6vI; zHV{@|Zn*sQW-qta6P8))2urQCgeBG*!eVPRVUe|pu+UmbSYWLn%(s>kZnKsV=2=S# zbFC$WTdl=}TMYdZ-fZZfaE`Tz56!j~5^k~<5N27tudruYysxllSiG;WryKfx-DvR! z!=7gG2E(3e@dm@5V(7O#+2WmsJ;~x-u|3h^U9o+G#d{C?dSgBQ&@3vluhSP}f;Ec= zuGJUi8fzwhtgEdVgsZISgz?smge$FSe9{&A0*FmwZ6%RhFC8W23s!>F0#%M23cnb z7h01D1FeaK3#=Om1FY)_{jKW={j3RuzSgybKGrpa-qzKGUe;BFp4NCm59><4t?v3` z(#^Vpk94)hsZVmk*lhDpGt6MO`KMXJ*l6(2$%L`N<{xPZW4+y0JvFh;ZbMjWw(tu^kc?*#Tjpah$NgZcdnQ zHzV9;R}kje<%GF*8R1sDDd865KElm*DPfM?gfQDKA>3pa6K2^yVW#a7W*GMprW?ly zH`?q6B&OME9+_&V2vdxE2$OA>Fv(^=ATiNqKOk{~o!~>)8%GJ(8Ak{cY@2YcahPz8 zZ4s`vd7uo#eB?j47@&zxnz9tN`z9L*;{gp7l z`U|1I^(CR7^#!4?^=CpK>puv+t?hbpy~QqqZR9O>5p3hM#V&$v>}7kwZ$%i zZ9HbNi(ng%TI?d&#v>NH2)6OCRjYschb(pxY~!TG-hpjAXt8%-8xL6Q9oWVRi@gKe zxZh&$z&4Is><-w*eHOa|wsEh;?tpC^vnc1bagW9BfNdPL*d4HqBNn>@wsF{EPrx<~ zS?mee#zBic0oyoW@&4a7_FKIFw~c)k@BeLMuf_X++t_3A{@*rs8@KECcDKb&fNk7m z9ni;iSsc8vjh)s$$^U1~p@#oQ|Cj#T{ww}DKkuLP4`EmJwf+L^{dcWD#=p?-=C}6C zvG(6r-lyLC-kZq&KjqbV_hYvI9T@wb>rM5>dl!2bcwN0#UYX})zRvtU^I_)g%qy95 zI`_X5x&LLETQS;w&A+VsXQcm>{y6=U^!L**qzmbq^zrn*^w#w1^!)UU^n~;!>B0Z9 z>)(G(?ti2^0HfBe+;Z1-{^tAvBi8RYuVTFVe@F6vU*e9$%EVl(X+J(O5_|o1Mp~gs z!on>4-y*5-hW!$D`l~}qVZXi2UTx3EN`DjVOR&>lFZ5R;yV#CfUs%7j-m~7YUb3FH za@K>^A!~=V-db$U#wvf~tl?HatFu*QHHBAw75^;$3#{??O8nV)L;R8WJ@LEao8!yl zx5lSpg}+hpf$?tfHt}ZhbliyjDfTh;`TKtCg;*h06FVN;7uyDa<64yF!>rD0jIqlThw5 zVJ4y6rNT@?xl4qZgmM=PGYRD`5@r(0T_}v~EK*VK0%1gFh35++IV*gdFoLtf^MsL` z6`m`M*sSoa!br^u-z<#KtneIRWM+kD3wI*lB#gwY9G@kOz^w30VdQ0nX9y!MD}1AH zJMuJPgk|OURN*${$-=G4lZ0E5CknSD-ymE?zFxSJJVCex`5NIY`D)>ae3fuW9xoh_ zuM}=hzCySed7N+s`EucM@}#scShU=!MKo4;fH0D=!u^F2j1}%Dj9jd6 zUtz>zh5HC26)W6Z7@=6FKm-L z2_p$Q^`Da(m$-aywyz+y-2;j@(*!ExDEO8gfhF)#NJSRpd(HmE;z} zE69=Xa&joVj2s9rB{vsdLT)C^B&=H@%p|N^F3cpXTPDmTtXnF~B&^#+m`PZ-M3_lf zw^*1-Sl1V364p%%-@<=4RkYl#K@t{XArZuuP7R~5&gi12oEk=9ol!+kxiyHws*}z^ zUTS9P;;a-1!>UJ~k*Cj4uj`DEr%xvj7rv1^OkQf5enO)>VJaUOV{Zs<=Z6ScWQYmja%l ziY-#WG*q!!3b=+UHc0{7P{l?m;2WwCXRYa^3vt#OItSK_1=Bekan>3-ha=8fL+5bB zS!?JVjyP)#ox>4lt)X)`;;c1v4o94|hR)%Lv)0f#9C6kfI)@|9T0`e>#93?T9F90^ z4V}XgXRV=gIO41|bPh+HwT8~&h_lwvIj|!Wn9kvdv)0f#9C6kfI)@|9T0`e>#93?T z9F90^4V}XgXRV=gIO41|bPh+HwT8~&h_lwvIUI4;8ajs~&RRp~aKu?_=p2qXYfXxR zA$~IBN}^!x3k#p>sImtTl8FN1U~W&Ve;Dp-yxTr;9M111rCQ=^Rcc zVLAu))dbTyoQ~jXI)~Fin9kv}7p8MK?S$zZP8+CSHJk&Vrlj#)(NU+G){z`tbe~gA z>qw3grgbET3)4E1V~Tb-)wGUe$D;e(YFGzeD1jIHrBhAsNQ^Ez=~UA@5~GCa9f{$> z^p3=sqOY84dPkz89EW#csW^0+*E-eo4tsRbAg7w%VUH4~ci6*)Z&AMidzdi11O97| zF`jp-X&rV)IZo@aI|#!%HU6$XN*JJJm1=VI=gOYIuY&BKmGMEh1(hqwiMJB4P$Y`ffEXB4)^pwQ5>K%s@=v zt)@l94CM6PYFb3hKv3VUrbWaIB=z0uA?mjkGZ58xt7#E2LuRa1(;{Mq%vh_YMZ^r5 zu~tosh#83MyVbOan1Q^$TTP3I83^pV)wBp~rz{06BBmy(RnsD3YLZ$tEh45Ssa4Y= zVg^$CZZ$0;rY5OX(;{L9a{F#IEh45Ssa4Y=Vrr6FH7z2hCaG1^B4TQiS~V>qrY5OX z(;{MOl3Fz_BBmy(RnsD3YLZ$tEh45Ssa3-w@WGC$Nov*b2vzKp9|tC(ioIqBx&Ln= z^Z)p_ra!Yar@?F!CS0_g!_0S#Jyygh26(v4T{3`L&#A}Hc6Hg>+ z|8wsD!o;k^^@+={8ei{3$3&DU#(ae@{<8=0w4Jjb#7u=9_Ik`ym~BtA$JxWN+J9%e z3bQhj)>oL5@eAumn33_U)qwdJ_gHsZo2}*6t(c2(l{Ly5h?V}^Sk0`oWyJp!|2Y1W z`1j*4#0yyG|9E^~d~1Ale13dJd_w$^_~3Z2c!zitFOJ7!U&MYJdoT7z?4{V#v0UuI z*rC{t*!tMw*zDNE*tpp6SU;?(R~2g-OPXI{MZN#Q?0?MvKLxqOhpN=rVVrbNK`&Kt zrxXxORcx06im8fiQcyBWjjd8ZGSwruO99bT#TF?bo2u9>1%y)-o1}nrs$!!Q6wgv) zgA@=?^~ieTq;rbuS-MUb>ItDLT_X(f6kaV1?G#=mOzA9LDNN}sT_H^AEL|>4=`39) zOzA9LDh%nA*I6PA%#T33t7=kH0OBi}7JX08QDLg|MYAHNj7-A_rO&D4!JXIJ{ zDLh3ON+~>97(yvLNfE*G}QWx{cCsc?+kMA#&k2p5ryg$=R~u3JaW2(Kll zh1ZZ%MW$P~T8T&#{7HAxsavHUXfoP3;nb}pk1|fUbu08qXXT{jd|;%Uw2VAlcqw@p zMq}%ifQy_aW9B<`i+NbSv~`Qf@};d?NR}^c-2$?FY3t^b_Ys~>?kx;6 zz_o1BOBh}t+*24I%^Wiq#dO2^6a_`WVs*7>0>$cT(FBUs)q)A&Lio5jJmb{S1^m&b;ndLu{87Sm0e`qKUBDkxbd6I- z7w|iphFb?0zzcbNA=-eaUWhi}sTZORcn4&0IQTC@Xq zgfQ*E9S*Lg9k|1UX$S65VcLN^1pjs|?ZCy2Fvcus2ku33679epBqz}hTK^4+tu7xwGLVC=#um)8~kGU4!pbF_R*TNiBAwA|=xPvOB$6PyG z7t&*{g+HiAq{mzfgHVO^m}}t>s*oOYEi6J6_e%kfP=)lEYherjRCm}}u3s*oOY z?I>MHkGU4^p&pSQb1m#c71Cp_g@33*dd$eKKH*$wU~l-;7DE&ep*04~KYfc^chep^5EOZ^v0N?SR^BTQc?*Z>H)&kt( zt@0LN_5Vr81dR4B@_Kunyp~=C*8Y!WzRY}zT)>af8TeM_8La&OXy!iT=kLsHKsI2m zb8}{T<_4?_I65;p(-$iPw#`K761dnK@C)<_eu>=y-@v}{&treUT>4?G5V$|RBfSZ0 z1TMfHfm5(b;HBx|=?kzant@AFx2C3J)xayTYv4s#H}L#an^c%;;#{7Bpt*m>D*YEa6R?Khhwe|@*RhJ= zb8f*sg>?jvx%=EZv6A2lcRqF!oa|ohUg8czs-U~u!L3BDAcGYJ|B7V6ublVLUwGAd z(RmsjhR3j@;34!FZbyQC@&6A(!~gyf|9u7ieFgq~1^#^n{(S}heFgseE1>eVnb8#i zVN^wP!tjb_gfSHrgpL*EDt(FDtqNx3|Gh2^nlqVyuSnqiqR1r^EL3FR1SQ%A~@n+Z*e zE+LdAHxZg(BC0Hspn$9K{X?iBP zP}9@N1)82J8mZ~Yq7j;&NY2qzNY2*On4GEU@#G9mXOh!3H6(A;RG*xtDW9CG>2z|6 zrd)Eerc=pDn(C4hHPt3>&{UJWUQ>1QI!%uyCun*!d99{LlGkW@IC-_Ehmu!mI++}= z>A~ccnjT1Aq3J}D^QF?5v~;;Xc075Rru&kYYPvUhiKb)8v6}8lj?r{9IaW3fraj5Qnsz5I(sXxnkfytm7i!v- z9H?n$@&Zjek^?l|ne4A=d$OOVZOOixwkG>%x+B?J)9uM#nzkf+YTBIap=ndHyQYoF zZkjeEyJ}jGP2}W*oL-kaU*`W0im#OW|KIr^Vh4cN{crovVGn>)*a7gEzYp^OHu@|4 z`TkA*WdCaH1Tf4W;CIJf0F{^zkil*Mf5k3TMv)9@Syb>>&`FrL+GM`{&ydP(Nka;=tEOG*MnUk4&GJ7-I z(G6Ihxh*pbX@RRUV>3fD{WIM%?K3ShWtns)mi|ln_n0y8E>Z*E#hihs()skGm^E-P zy(_&1^9B~BZ%$7|FW{2&P^^mA1vBY`baC2FeUSL^l_Xg(CKbv|yRf8_Tq0}y{ zh_@26=VzrRrmjQ}U{I^leKH}bs`~L0jdaQwW zE9T8la4&O*Vb=}JCioNf5qQse%X!6l!FkHbW39#G&Ov9Fv&C8MEK;j1 zOmHq&eT805C#RLu+$nYv$-gB($NqmGAYt$t7M?qYh1_bfj@ePj?l#ESGAt-FGdVFi z9(xQ7!5)BJu^>63={7`%s<|nK~HeptL zV*E4AN{@Q%+KmSxq;^Te942`oPzb>KijQ0ceH3*HTz1K87<#C=< zXguk0o>OQ%;k~RMEqE_!YV^LT>2dExO=r9pG&O|$f`vwX*hL@9hv#cL9d_1~3p;5# z6`rT5F6^kOHte9OCTy>%I&7!uv9PVCN5eLn9tm4(dN^#Q>7lTtrjucnrU%1HO%H@E zG@S^un(hxHO~=Df(|uu}>E5uprek3ozowgk}2J;jpQuLt&|=gJBa* z2f`9f`@>>Q`$AvS-q6#uC(LNt9i}zijU82Gt(VZa3)=>hc7=|noncbbjxeF=&d}Dh z9V@!>8Qa3RrmbO2(;cCy>GlwTJoRsE2@Oq~gTHIq6#Pxo#^7sB8-lMitq(ZQGF%t@ zMd@s~Hu#dTCisG|I`}hTRls?c;mY819$67^o@KZ^;5^H4S-^Rg;nIN9E5jwhXFPdv z@F`(Y@H@i7fU_#Y1p#MOhVui?stj)nIIA+87jRZ(I5*&A%J9~JlPSYnyl?PzZVouB zGMp1|R%JLl;H=8aEGhBpSBOc_oKIGHk>8gMdY zI3?g5%5ZY<4qtGR_dH>u_Z;B{?^(k2-Z{c`W=p~Z?=0b3?-{~1-qVDuy{8CQc~26? zdruIq^a_M4yhg$}?{UKA-WkGWW)w&K7@Inmbw+R<`dBT9;M}+>t z4+;H(w+MZMHwk?LPAv_42e0!;uiyuSo&jf+hCKrP!*>t#&)hB0KVetzG*9m0_%ouzjH4V7uTue5h^kZ9<#iWkPGOme9(pA++?W302-> zgi7yGLJRK^Le>ljk@qkm^d2Gv-bq4p??FN{?*T%EcY;vv-A^dat^l66OF#Oww^P$o z-W{5r^lsPmgttXg!P~5<(c7r$ac_gBGv0bl4Z%50^}$(9`QRB%r-P?8<$|X)oeG}R zR2MvCvD;(<4E>riX*PriX&lnob5eO%DdAG(8a1X*vx;J=K)3M+YP4@&3YdRV{r0Ga-Qq$q!K~0B(2Q(cFPG~w1 z+^=bWa9q>A;66=zgL^gY365#n9o(bo?%=4VyMiN{b_Itu?FO~F4tLmPvCe1F`k=3pt0%n6ndW(SK2HwB9b zvx0?$nZW|Wj9@-tdT<-z#$X;{S}>O|HMo^9CAft!Ik=fH$T*0W|n|$bEZwFyy@D0KUPk$ta2Q>X)SU}SchI;x# zGQ`s#lEI$-kX+>H55OR^jIVQ{r?2Y3U=EL5;OWadAehY~{eznb{eoG9zQIgFpI`=| zcQBpME4Y!+Gnhu`5lkg?52g^h1(OL~J^dT(;_2Vu`JVm_b~b&U)5-J*=Xv^f+R@DL zNQYn&p?xrs&@Q-v&^EZ9&?dN!(Av{)u$8CZS4&U7uPRT!uS!q9uNIzuUs*HFr$?TC zgQ2J2VBk%Y{C{)v;{VG0e^cDue}!@Wf8FK@J#x2`XpAx+nL^g74hbzCt*Fj5x9r%jM4nkbRzZF)TgNrQa?<6Cv`4W zpL#fTG<8>MQ)*f2meiEg_|(Oz3sPNEty2}Ll>2x0kM2kAkKOON-*6kMelH-!Yuzx{EET!w?e*E*q$B7>&Ud6rz z4T*;nM{pm$KCuYd|Ld?{!9|H4iMF`^PT7CMP6fZT-@!fw&)E(3BlbPmqhJ%(HN3^1 zVvn~k#;S&0?bddMowELJ{Smt{{Mh;)_F`zXs<9KpUh58Pm35mn-MZEqYh8pr6xv&% z&8;=wna!(@HekquUDmV5?!9-NKu~!NvqRNdu zQZNx!ZtRwVi6|^3BLx#t<;Go7FcDR5?2>|ssB&Yc6ih^w8#|<6BC6cDQwk=c%8l(( zFcDR5Y?FeCsB$d*iGqo!a;*M|f{Cbd<8~>Sh$=U>NWnx@xv^OaCZfuXO;RusRc>sQ zf{CbdV}le-M3o!siw-%bk%&U*wtSs10#U+ig^`C6UL%Y+l<;a{q@jdY2_p<8yiyoh zDB%^th(ZZ37e*3Fc$qMQP{K=vk%JOmB8(W6@M2-4poA9*BLpS9P#75~;RV9O$@7JW zk#7?oN}eY?ggjSxF!@&Di^y|?2a#tBUr4@5cp!O}@CD?V!UM=Ng!_}H3-=>W6Yfi% zD%^)WMYuP4vT!f*K(n25x+i&na1U~S;qK&q!rjPyg}ajb2zMd(7CxWcOSm(+r*J27 z58?C3-Gn=mI|_FocMxt*ZZF)9+)lVHxvg*;avQUqd%Cp}h%&@d@y1%I2g*jvNiE5v zUDQcYs*74Fn&_fNiV|H^OHr(g$E5Ie@u(D@E|jEZbfF|QtqUco zDP1T@b#byxP?8$cg_2ZL7x%~yTBHl5uZAu} zUvukpA^MtIs|(TB+!|eozUEfzLi9C9Cn;0Q zxuyEmL|=1sk}{>QIXX$1($^fFq)h2+j!sgh^fgB(DO38Iqmz^=ea+EH%9Ot5=pjqfE3mN8czDtOjj|hs=^JIDyE*zsndokgzELK+o1<@(iSFix^XC`c&Cxf?M0a!ajWW^Q9DSoq zbT>!eC==by(KpIOcXRZOGSS@}eWOftH%H$n6Wz_xH_AkJbM%d}?!xqqGST21eWOe? zI7iJKXmAd`fj`oksyQM#8b?!^Ba)+WG?h6b zIT(jJN#=;;=p0RDj!2Hq(NyM$P(*-BZT1?!o!7O7{bGZ;TOU~g<%)ML*(D4Ta+44$iG0hC^ZW5FTgG2tc&CsFbm;9 zMJD!v0v9=@W9GX#Iz_3`AWx=Klp6I?&?!odycBW$mQG7SrzkaYQqU<%jZ;$4DN2nx zDd-fXMlFg{bc#}=MhZGbsZlKjoubruObR+hsqv^3bc#~r5h>^trN+Zj&?!odhoqoW zlo}68L8mA+9*|C z9|}4}sd2Xya0+}uOO3mvfK{ksmlW^{RqQlQ%Kd*wbJqX${r?1v`49Gc`R)C{_k7d) z9Had|^>~51EfLKS9?2o0+Gu zR{qJ%k<4A0&6yRMdC2)sz&iOuk@D}HX_+a{q%sEfyZbdp_20m5cTXeV|6uwM(*5hx zi;?Z0m>!2@KRW?U(@Biwf0p_M68*1WB)o9#taxuZUt+!cpF3}2wfkqB z(^%{Nu(Q+I;4E?GIFp|PML%FK@=I%y z3$dHaMC@!hGI>F=8&(7eWQ!Y&(f=;-LE=Y=@1iSkCh;itGTfcmf}ITKCZ=H@!_kQg zv5R5bM04z6SY&^W9SnbJzlQw_pRjB7x`1o!1@=trcW|ja#O`f(#7>PRwuOBfKe2v} zT^e7up1~fCC#}QQPHTg;1p6~iwyv~BS_3fp-pVSs-1y%x_WsNGJMmZJ&tv5MvG~35 zJ@MNy?mjPmWBi)<7>v62h_^#$pg3;D{u28XWA1OqUX6VND+AWXPQ(tPJFo#G?zhCI z#;%TyiCu)X0XxQ8#7Z&V{AP-CT+ z=El~+P6LEm@$Fy;wc;&c2({wPUp!hMAyxx#&fp}4}mg(0}Yy@a8+!aao{x57Py zp|--^g(0@W-GrgF!X1SnwZa{Qp|ry7g(0-U?S!GT!fk~iv%+nJMP-YeX2x@Pj}TcL zZ#G(vLt}+U35&$aIp=VWD6H^VFa%c487b#LUxkMYLtcf48LuSkZv^A~F-@HMY5J)R zcXC&5=}eh@rP^8?_^HJ<=qrujJdQqA{)FVTE2c&z4Q;4zx-0gu*v z6g*1v5%9&D4}(W)J_H`2`5<_><^$kin)ic;YTgGPqIoZPu;xABi!|>B57K-$_(IKh zfd^{d1-?M@PVfNDJHY)l-wE!gc{{kT=563UnjwSry){Dy>w9U24A%G53>mENp&2q* z-(53gu)dpS$Y6a}&5*(RF8sJb2J6o!LI&$Q6Cs23orsXZ`tyj8!TOFw$Y6a3B4n_> zJrOck-;M|wtZz$%4Aw)`<--jbtcRuxLI&$0>4K2KdMLUeWUwBBE(jT{hn@>U2J0c` zf{?*_sJS3yu%2Sx3^G_xF>eMLtf!bagACSF%$q?5>nY~VAcOT3^Jb92dWv~7$Y4Fi zycuM$o?_k%GFVSBZw48xrnN*-YZ7RIh6N`;lh;niebj9$-KxrULP`;hq|k$LI(3tcg2vwJk(t=WH1kP zR}2}nNr-4#Oy^Hlc=12UM0x~t=m!93JmF=Q}L zb+0fWgL$fZg#j7NL*3Omkik6ET`^=Z4|P`z8O%f76+;H|l=lh)GMJ~lR~V4NJmtN@ zfDGm-?-d4QFi&}}Fd&0@%6o+Y8O&4OD-6hBp7LH{KnC-a_X-0tn5Vo~7?8m{<-Njy z4CX2C6$WH5PkFB}AcJ|zdxZfR%v0Vg49H-f@?K#;2J@8n3Ij5jr@U7fkik6Vy~2PD z<|*$L24pZ#d9N@agL%q(g#j7NQ{F2K$Y7rGUSU86^OW}r12UMWyjRFygL%q(g#j7N zQ{F2K$Y7rGUSU86^OW}r12UMWyjK{I!93-?!hj6sDen~qWH1kTmya7{Fb{PXgbd~( z?t+lPJhWX9GMI<73ql6-P?FQ2pP;n*99SidC0mTWH1j^7laJvA?kvV!8|lw z5HgsDqzgg@^H6j_$Y36VE(jUSL(c^vgL%lgAY?EPH5Y^o<|*bCkik5~yaFOAm#3IlK>P9(^9pER zo?>1B?aPapn@+_*`EHAvg9iwUoP+xdi=Kn~35%eE`wEMqgZl`Jq=S14i>8Bn35%$M zdkTxHgL?>ztb@A=i>`w^3X8CVI|z%igWC&>w1e9Ti?)N?3X8ad+ZeC9d8j+?fXme= zLtgY9g^V)fDe&bo%8-Y^tCM7uArFODg^V)fDe>hp%8;kTm&+(ao)TX!qYQaUe7TG= zqYQcIyeedrArGNfg^V)fq4cUy zqYRLGRj5%0XuT@bC5}0)L!1bj55U67j=&>GwkNJk9*3$Vn?};knMgQca`U? zGZ=5a-#Uo<%1zb^j5yDG;F( zWAVN5ZF*O}cl_7HZBpiC<$!zPH?0+~?7isB<55kGOYZKfcxOLU%S+6S&G9;|_NF zU^l*2ZZp@zS^|G@KEo~rKfzvnFF9wO2CO7-+&SRva5g&2kyV)CT#ua_M>+$Y9!>|R zh11k=9Rodz-zMKr{wVn>Hm-jLcahcD2mLUnZQX%MPfM^N?eygJ=v0hKUWD|*`Pfi6 z#Fo8S9X9c2bSpkg{3P*u;@jv~6cVQr520hRFL7sLBYGC|6E`I$qib@${(ZYNq@AaC;U;G3jW2K8vPNP9`}c9I^z#B4D(IA@_peK`q;hUpEVr||3lL~ z;pdu;hJVs@B>bbM!{Hw^9SVQ1>0tPorUT)pn)Zjk)3h)AMAP2zx0?2ZztOZi{I#aL z!(VB-EBsi~uJ9vGJHuaU+7W)J>CW&Mnzn}@XxbLOuW4)eb4_=I?`gU{eAlsWG1{2f z(Gl}m*-=qb9BE=^M@A*~V#6`B!z1R!vcn?ZZY@W~M4ozq&^Q+4i76ZS zB3*B0uk`z=7+LlTzb|2&--mFy-&uZ zG}OP8FvP!vFxVeUxX2$#7-WtiTxbp<3=E$jT;TU436mWp-uQGp|#(Q(8}*hXlY(Rs4@o-D$V|c7Je5(*3`eI$UmP)LccR1 z@H-Kj`{xmw`5g%reg{Ii-=0wBw<9$5+Y(CsHiRaAYeI?NicsvgB>1NOYvoAWP&>~ z>Ov;CBcnECf;%#5LMFH)qdH`QJ2D;%nc$9$M?)sKBjb^f3GT>vIAnr5G9C(<;Es%w z;obV@doW~zJ2D;!cj;p%LMFH)4S zZy>^~ur2!0!{KI4hr&&o4u+gT5E%zT&LD`4{UK)%M8>{wojz}GxK`7iaE+$j;c88H zhpRN*6|U5@D_o&zXSiI`j&PZ#JHw@#wuehJZ3`D`+8Qp>bVs;Q)9v8`O^CKh3?Cqj@Jk89!xMyI;r)c6KGXKm5T7CYXt2*enxc#R6weuC(t4r` zy+8BFz;HC-0`ETv1Hw^+{^7-he&I+$-*5z>Pe|8}dWXY!q*pkU&@&uD=n)PkbPs8B zQMZsb7j^YM=R;k*KM~IN{z&L-(s80rCLJd_&-()(>S)q>q7ETlGHM^vC8KsBZ7ymX z(&nNzA#E;d?fsrlZ{>YPXz6`QsPcYCsPsM|wD5jQ$eMJwDDr;8BcbeW@27;6 z_Y;Ea{g~i*?+}vS+k}MoBZ6(VC0O1M332Z&Ld<)UV47`|Cq~{IN`FFlVk=G0h5a-= z>%A`H|E;hPX(f?mzeZSYzFJg7S+VuTc+izQX4OaG>nZ6F|`u+1x0AHp)!Fqmgre4Ns zey39>v6kP?)CR2NHzzd->-ddG^-pz9RpL(D!uAHlV2x4 z!wmhmk}oHpPM*TO^nQ%^uTIWS&PYy3j!h0q_Q0(C|IrQr3lcLi3*gek&_rMC0@xCF z&8dWe@%~@i?_wXomoW#w9y0-s*?a6euoK_{dlu&3kF!VE127k$4f->l9mCxFPptQ? zx2$hlXRW;Tkafh`Wo@*US~vf{9PM-Je0CViuVm`pE z*bTAEW5Z&7W1V7^81GM*e>FeFjDR1S-!adb_2$FoQS&Zylex^i#hii<5&v@@M;jLn zwWy!*L+5d{afSN|qm3)vM;L8f;oib%;|li@MjKbSr?9kf!99efj|=WDER9@nH(}}I zf;$LHD;L~eSbDkOcEZxk1-BKJZZ5cuFxt6j--pI?U7W|IpKChdXgMwoUGOMjbad4@ z=Wq^Mx{A+&rKgK?M#?$T)CCV0maZ;%nDN8p<814OV{ULBM_X4twE<5>UsrKG7>!-U zc`!P=icf>l+EttbqqnR06d282#dTnGcNN!y(cV>D14e&WaWxnXUd4}r(cxA6C>SkX z#gBl|<5m1H7)@Tq4}sC-ReTbRCa>ZL!D#X-egKRnui_J6GZHU}^Ho zuXjHfJzmB8!07QR-V2rH-e?DE4%@`O7r?I$uleQk;L(Jz!k)`z~#g>z-7eMz@@}hz$L_$z{SKBz(vI6 zz=gzRzy-vm!1=@_z}tw6f%AxqfOClpfwvMD0B<4A2i{D)4LFB54>+4R7kCr#R^Tk+ z&A^$&Ilvjj*}&<Uib~vZ&*kab!`) zGnbP^9nV}w7Ii#xDOuF<%q3(|$1`KeqK;?AkVPHOj3z@J-7}-`5i%XjA~%jXXD(I` z1fz>SbIwrSgHc7Fxo05n>ZEhVG4~AgT@`2L85HS}7p(s;H3y zO0SA)DMae!w8x|nt(W3aDIoT$cti@Qy(%7-0&=g4hopestKy^-qWJOx4@x1DFU12= zh~`UiLJARmDejj-R9}kYQi$wJai0{T`%>I1g$TbC$D|PDm*O5NMEa#TDurmj6i1{G z@t5MT6r%o89FjuhUy6fLi2h4)KngJcDfUYt4j{!oDZ~P#*eiv2fE0VA5EGDMw-n+6 zQrs;?po_bt5Fe07c1a;dAjM88#0jL>A%$3h6n9D?ULeJGDZ~t<*d~RzffQS%5Id0K z4k^SBq_|xQF$5{LNFk0O#bznQ5~SE9g?NG#8>J9akYa-r;tEo%mk&5>0pImtoiJ=c zc&#vOL3oWYY(aRnFl<41l`w2Uc%?9GL3o8QY(aRrFl<41nJ{cYc&RXKL3jzc0k$B# zSQxe-yhs?fAiPi*wjjJf7`7lhUw9??HevAv9G@pF#sHoxEY1MFRamS6e6z5419*2K4RAZ*>&b0}=^H^CVfY4Yyt!m?8t5C%C6d@c z-)Jt8#0L0=ItN*t2Ka_zWN{kk8_gw>*g)TCE|J6r`bKk!BsPd|;PsKkX@G60ry`5f z0NYTEEKUP#Lou>A4X_Qx$l^4>HWVX^(*WC0j4VzAY(p`!I1OSO^5Y|m(*V~{j4VzA zTthLkI1S<&at^XM4PqL?$l^4>GZZ6>(*Vy%ggptK*7@!$hoCa|VIgTt&gP4UdvN#Rm6~f5kG>BCQ zBa71@P9cmePJ1+i_;+PAdDA0_Ba71@ z&LF&Pu$xL3U2cA8{a38S=k&7A*^fJ&>{_Q4cC$Nb?{S*j+pweEGJ78K>k~1veT-9V z5BcZy?wpsCui?JCG5L~nw{wT{lmGLz@30eISG!$uB9iY-?UZdI`~Den3O`GZNB;d4 z%#42$3HV1aH~v6!4AKglF+YAGa`00zL;f;r1a`;kX`N@a#Qu0bR-*eFJLLT){(k&N z$iu%7e=?qnKNPKXw;;BR)a|4bi4kmVCcED<^8gMh_ z2TVv@o*0Q40=*KQ60I;tpg57h>H(kIzy0SG8=XbS42(rjqyN9I-H4S5+q*5?GB=Ht z4sOPp1{1Io;&OkZd)q&+=_q?4_`_0b{Q+t}gv0-H>pQx$+)1*MA$C~22kR?rw?DAo zai2w}r4H)_U5M2ee&D`rzlOaSe__95e(3%=RrIebHL86V#-&DLwnmRshg6GHQ|$XV zJ3TplReDT%aJmoHeQ1?#hFu)uslWX9t23HE_EsYcGTWQ%UB%_#s*DG+Y))4#&bD{r zsZ<(6|NqCM@b60Fbi^_CN+TC>jJ?u06@8|`_8?l2}Y3zw!*T;58KhSh{^qQu-qVH?k6@5?B&gfN5 zJEHGux-)u3)Ar~)nzlvX*0eQxS<@ZSOPX$vzNKkP^i55hqZc)8ieAvPG5Ut44bk(O z)<@5&hG^xw=vl(r=p129be6C>dWNtndYZ5@dWx_jdXlg_dV;VlDiD@Njf5r9bm*ZjEXQH%B#uIZ-uXcJvtGrsz?^tmqNK z%!mUHl`|p^I8;uLPV%8?(SwAk5l0>>r$iiZsGJ;ez@c(dbe!i*jP4`c5Zz0-J~~F2 z5Zyz#HabeUCOSeG7#$`Ihz=3@M+XW0q637!(SAaoXdj_>w3pB;+C%6W?Iv`O?k04L z?jm%Jb`j2xb`m;8I|%1RcPgk_lx2&(YJRpgkKB|E3A3^RA#1K8L_QnpRiV#5dR5@F zk6zW>XCJ+)ng0e)uJB(cl>0v*l=-g_n)=@-l=|NzH1S_0l=$Bz6#K6bd~+qiGglBY z{&xsz|J#I=|1!b#Um`gEw+Ko9n}me_BEdG76D)HXA@09Gi22_jnC4P78c^l`<9qSE z$@C%v>exs(x{l_((@%3l_7IUHcH!E*67Z9#9 z=M%2>_1EGmUw1_0sre~tR^0blBUkD?jFA2k&ruyhln)1;f)oE3|vnfKa ztV`&bbqGDONkaE*g3v8%6FOuqLi=o-&@LMzw9T4?DcMrO^fe5*!g`5~(sp5=$EYFL&ZvZ^uJ*_ls_3HYh@W=HDR-jf}n zX?J$Grn|GlG~JaQs%ckth^C#{!J2ktFVe&`$Nz@c%?{H4!uITinzm&JYTBB;K+_%B z0lXe-vfT))vt0?RvRw!(v*#05WIGdraw2ihB+C+B{ zTKm<6R{mpzmgX!%mH#NA(ws?X;XgvinllKI|1cr+A0h<)NkVg9du%gbdu)ZTJ+|D} z9$V%g=gCcd?Xji4_Sh!A_Sh0%du*|PlqdVuCY+ zV6v!%aV}z-r-gAg+NgiSPxybiO=OsMkT zAyk^H2`&7$W&FRBIprVY|F8Mq#O{AN|D=D!zsui@yTp0^bR+;S^@sX>{my<%toonw z4Xgt2YwY~@hWD~}7AyWg;vMt$cz58A>|fUb$YP~`3w!>3lKFY&O|0_&Oy)FJ0XUr5 zi532rWaeOf|0^;hu)6>GSOcIeg|{kPq-ZavoUKj!YiYJjWV1-OH~!5!z0zzY6d-8OD>WC3E%7gz=0eeBuy zit`*s`>K(%-|uWk9$@jmtOL-}DRUeo0)C(TF!^@!yUFL0XRr#uF{}!>1-pdIO-@T* zogAIKFxeez0Q}En0)`}dCpspwiIRk6e`$Y$b@|`2zl}sd-hK#c^6#=YVnzO&?a5e= zemjbe~$eo_HOL; z*tcR&#ZJW@z$yTDVvWE>v77#%WC9GQfX**kO)U%zG#AkMRg8h=0y@8nG0{IR6=R^efX=UC3^W(e`BjX8<^npuiZRe!K<8I6 z2AT`#{3^yka{--S#TaNVp!2I31I-0=eidV&xq!~EVhl7F(D_x2f#w1_zlt%?TtMen zF$S6o==>_iKyv||U&R<`E}-+P7z51(bbb|Mpt*p~uVM@|7ufl2VPK%SfX=Tvj)CR^ zI=_lB&|F~Ww}lKe7ufl2Ap^|?bbi%27-%k_^Q#yG%>{IR6=R^efX=UC3^W(m`fVWt z%>}l8TgX6jfvw*bGSFOL>$imrG#A+VZ6O2A1-5=$$Ut*}t=|>~2AT_K{i3tn0t3wj zbbbXf&|E;{R}cfu1@wIdG0{IQ1u@WEK+{(c1I-2Wd<8MkTtLfL5ChEx zbbJLd&|E;nR}cfu1@wCbG0{IO1u@WEK(kj61I-2WdId4iTtKT=5ChEx zbb19b&|E;HR}cfu1@w6ZG0{IM1u@WEK$BMx1I-2Wcm*-gTtJIg5ChEx zba(|Z&|E-+R}cfu1@w0XG0{IK1u@WEKyz0R1I-2Wb_FreTtI7A5ChEx zbapY2&_V{93+U_$%RqAhon2uWXfCuN%RqCXHCYCl3$4g9&|GLqmVxF%6OO}D=LPVB<=0Zr8f#yO$mVxF%bFvIH7n+e}pt(>%mKaWe#qiGt{whm1d}8<4Vm?$HoYg>Aj*V3J zti*5{sqR?=>exti&l*t2Myh*OVmOUd_pHQl8maDC1M1jFbYg>A zj*V3Jtf*rn)jccf*hqEHN(`rw>YkMtP9xPlD>0l#s(V&qIE_^Itf*rn)jccf*hqEH ziaIt@-Ls;Oja2unsAD75JuB+iNOjMOIyOSx6gs$hsiZu@R~+2z6|Ps0%_J8=>ifP{&3{x**iC5sEGdb!>#7 z3ql@~P*jo_ z5d)wiDpA00D5&b{E_9rvPM*(ppMN{^E#+wGu6Bf>ex&*uY)8uQ_brj ziOp2=I!IzO)w~Xp*i1FAgCsUn&FdhE%~bO`NMbY9ybe0pOf|2A4mMNG>!5?pRP#FM zV6&*XFH$Eu*er4m79DIBJqL>pHjAKxMF*Qj(ZQmF%_8Yw(ZOcXbg<}Pvxquabg)@e z9V|N7EV2$39c&g|2a66ii?D-52b)FN!J>oBBJE(&!Di8Ru;^g3h&xzxuvyd{EIQZ> zd51k?(F*>*sPDC+gU!_UTG7E~=(~3gbg&uv?lE+*nfhKUI@nBouN56^roPvT4mOLv z|DA^}SYfu!;I!D>~RjeXkWAY@)u`iVikW-)lt&o1pJ< z8A1n}An$_E!6vA?Aat+^;w}gsY=X86LI;~5?Sjz3CMdfgbg&7+E(jfLg02ff2b&=4 zg3!SxsJb9@unD3r2pw#KrVBy`n;_|e(7~qBMCf1>1YM3o2b-Yhg3!Sx$hjbNu!(A3 z3mt5tn%6=Ho2cfsxJzuJn%6=So2cfski;gcc`YQdiE3U8No=B;*FqATsOGhh#3rhF zEhMptYF>-G#3rhFE!44zYF-Oznu^)7lA)&91? zslbuI^XPqlFmP|c3BG~nU@W$W`!JffR z!F13JUJ$H87yX~H%fT-KKMZ_3vJ<=guZt{=%)uJ^QIVmML6Pes-6I_%9U`^Z^*@T8 z{yq(V7+4g3Km1tr-#RdhlOv#ZiLr{`^K&eUnO%BW4B?IKsIcLFA7(O1EIf$J`VjV^keJ{_*Urk zP!SUY4u+l$JrQ~^S|7bMdR}NVCJKHQ`6DtCKhrM?ObCn!+!9(F=pS7iorURxBayop zpjYD=ziVhobYFB=bO-hjSc5KyeDsT`#5ZBT!}qcG;n#IPav&f1{v7lBK8jWQ-p9^} zZq-+++Nw@f9l<_}yQ?0ox)+lZ|L4{Bk7Dn~zK>kX8?h4hTYNdT7ulArvAeP3;@sHe z*j=Gn=u;Sul?{DDJwumcC&SBP4ZiP(&Z|kISK+hZACb@aS@7N9*Z*n9!awg*_!l!K z|IO1S)sh35)mE>ym@j)d#rprr(XA#|3)X87m|P=Ruia-ZSMRyUWId>Uk;!~-{WNo= zmnf^h(j4NQ&aYgr-Rf;y5F-05AsG_^gh@uTQ|ey)%#yfu)12m#$>Ireu>G-LH%NL3eTQxjv>r6M-yh4qX^T@ zy9nLQn+P3DR&iXdWU@NrY9~!rM_lcM*-QQ4<0h+6uJ($_DwL}oGg*alwWB7hP_A~w zWEINQ4x3&1BhK@kCL|IM5^8*>2-S%lgm_{*p~}}xh$XfWqKU19NMZ{ioM5e`KICK1 zLw(TqDqjltP7?eHmSO7k1gkIgKHmwimQe3IuKu6ee6J`fCpIf8CRkN)wX=zP)Uh)O zuKjhjLSn5tb~>>}(WwN#&92s*SfP$JC0Gq_AN0ND{d?L6d~Xu`i8ly(;tK?y@2lQF ztiA6m-rMU@>Jb|z6$#|nv}qSJ}9icTfYC~8ieQq+`a zR`hB@{qC0fzU2Ko>Sra?FL8qJi##$Wp?;gA6D*b2k4msqUVm4DrSkfbiDNu@MB*r6 zc;X0QSmH3@&cq?Y9SIh`>Tgf5@KrxF!FpHyZ3&jS>TgXP;K{cnSlz0>*~ed5{Y{De zd})Y}zq|Sy6VLO=fJBARFVRN0A<;^>K2auImuMkencn$Aa#iA4LNDLz zge!cn5iU>cBXsngBQ*Nd4{h+NADU0>2e>-pkTa|B_EIh-)r97dRA-bt8f-a!~|-cA^24ke5=ZzJ?JZzc3JZz1$BZze1> zClMBy6AAOp350p(c*0zB9AS<*maxj4MObOhB&;xJ5SE+M3CqlB*ffMLzrkFfXuUa~ zFRwG_5!RY>)oYu~#fmnXixk~$E>yJHT&Cz=bE%^HO{z$}w#8hfj%_okHuc(elL}N1 zy;k3x{-*lo^flEtr;n+=IfKpp>Jv_y&nr4%KBwro$sU7xX!<^N?3lS%(NS}cq9f)r ziVmAkD>`I8rRbpfq@tJ2-HKi^pHTFoxl7Rj^KnHln2#yiZ$7H%dGirP&zTP^de(eM z(LQshqP^yWiuRa06g^{ZSM;>GP0>^4Rz**m>@ldexk;V(u*n*8z4nmF8gsq2)7+q5eb8L5XotDZyBOS+W;?Ghsp9p9u5oJ|)bn`-CvJ?vI2yb$=kt zuKPVoeZ-fh)_q8rQuiCewcTN15 z&?WIB!WBOCQs=}Ed8AX~2ZWA3b#kLmo!sD4=j43qoUHFXo}5W2Nc+CeBPrjzgboRH zq`mJQ9;r{Lm)wLp;v~Mum+ZuM36@V?TCJus)koX$m{KVS?!>8VrOuWS-=lRsz6F&9!8lQT5b>dB)6Hk1VP~}q} z7)yMGN1}-@6C#N(5yFWt5<g&@4T7-_UHS@ z>K|iwzAsi6u{YoT>L;)>--hZX*q3ii^=;UduV-~5_T;;;I##X4{}BIG{D<*xqV`{k zpNPMR9RMDRZ;r2yFTfx!KKYNHA4vnSR6|J4kDf4%nqZ=C?p7HSS13hfI$hW+%` zhnAqne_ZGe%mBCsvjJ0~OGDKmAD)%rH9h2W9kv&d^a5L_EvhyyPZ-%^;km-d77Nc2Mz&aZwlK2A!ZU@DEf$_3jBK&+bYWzR zg{KK4TP!?P7};XsDZ2k}d{IF{8kIv5jIz0r_GS0BjA#i~=i#f$YF{6O=vBxN86p%mm7{!bN638B-m{C9m*<%zl3P>S) zjABLsIb@Gf%qSp<>@kWN1!R#uMlqv+G_uDiW)zS|_87&C0usp{qnJ@ZCfQ>YGYUv0 zdyHa60l8$4QPeFUnd~u&x&>sDJw`F3fNZkIC}tFpP4*bYj6#3KC}tG;DMnGZ&{r{v z8HGNIQOqdZpcuuB!u5(#%qU!^7{!djwTe;HEnK4*Mcu;Hic!=p^j3_bZs97$DC!n^ zDMnGZ&{Hvrx`iH!QOqcGSBzpt;Y!6QW)!+9Mlqw%RWXVgg)WLw%qU!eOA^-}iW!B@ zL=-a$oroxA6fP&Cm{I6RL@}e#NJKHC&_F~nqmU<}m{G_PQOqc0i6~|iGDH+J3TYyW z8HE%P#f(A+B8nM>_Cypj3iU)3GYT#d#f*YOL@}da6H&}4SVR;v3MLW7j6xj|#f(BN z5ygzcWkeJ+3L^9PJ)oFT5S0g_m{Aas2cno!5RC_-m{Aak2cno!5QPV#m{Aac2cno! z5Pb)tm{AaU2cno!pt{>q%qURZZ7F6HsP49udJ9x{TS~nJs=FTXM^ zw?K8brPN!Xy4zCfEl}NUDfJep?zWVA3siSoO1%ZDyDg>O0@dA?Qg4CkZcC}RKy|mJ z)LWps+fwQ+Xx=4cX|2A;2fyC$0ab--Qyyd>TdOy z^QrDuKVho7)khfW?w#N43!fHs$7ez{Pea_j!zb}E5OA+NXET;og-7Re&nCgxtbzrJH7S(~rsh{->nCfn6PlLy( z<4=L9?w0l>nCfn6yTMd<3tiQb(^Pj$+Xbe&TiWAbs=K8<2Bx}O+M{5qyQMt>rn+0& z!(ggAmfL};?v}O_Om(-k2f*y5LeE zG+l5B5Rxvq7zjldTm*!m3oZmw&#eVO>bW%^NIkda0jcNKTp;z_nggVsTeE@Gb89A$ zdTz}CQqQgFKHZ3scvv4#L!RtGzIE9fE_k4ILw=sq3cPt)8Z?n{u~$8oKVCgS*w! z&~=Y-w|bhoZpz*2Y3Mrszf8GXJ++SPwIHqqD<<8ilo3bO7o?p9Ah);-4E>M6>)so`$*6lC2yj=R-U)OAzC-Rddox+$$Ur>N_u zhP%~M)OAyPsbe%yYS&9Yq+zfBLxJZ|Q{Nf54;|!719JkCvD^R9z@Wf&f$o?j*8yGR zMgYH8|EK;B(MSHS|7(~tU-X~wzl3MWNBvvWe*fRCc@sH=0@e_`Q1cXa`@gSdZO!7E znKk2UhGCN64cP0yV@-R^5=_(ttN&X4yXs$Hr~hwOf2q1$-Bf+3`dREIxE=faudJS5 zJr(;24y_(oeNA;&?DB6Tqfk}ti+>vb4fZN{2YdX#{$F8_e}6muQ%uZzKQ!m$cKtsZeE};G9*J&=-W^?md4$uj z@Bf|1M)bjIgwDuESkVikabzU^68T-^mysV~MZ%kr*CJ=JL*dJjeUV*}9g%w?t0D^` z(=eUzcJwV=8|fCwM;z=_7?0@TKZQTU%7k~rUkiT$d;g!n+JrsWuW(CvLwFfhCrk>D z4Bry&hZ%*P!|8Bc*a$~LpN0P5-+;9MbC3@h>A%I_&wrJ_GgbrC`Hj#A=u!9%_9&=? zPGcIte*OE{EAWlbllmddF}xpHjAfy@*xPV)==RXy(Dk7n=mAJ!EyMZP-_VEE3?Bu5 zj%>!af?o+%kk5DpdmQdTMq^uWQ*ae>8Z(09gTs;4=ojoA?1H?86TBFcD1w2%1%4m+ z0J)9t1>O#PAyC2!gx&g1{XVQgSgOy_C!;51s6I%)4to=J)H~?4*qtz{x5J(bANt<+ zz2|$+>i`Ipw6}cO8^+_fOv)3iR!u+B} z=x1L|=xg^T^s%oZ47OQ#&S)oX7M?TO37duIjCR~+;W?wdVzcm^(T>?HJZH3{c31Vo zkJ#*z$Y_V{E7Y+=c4tKgZFWgyw3lsmNo2H_?2g{6Y3+WCMTN9>pT(j=TH9=~sF2p~ zwOCY0Yxh_zDx|ed7K;jLZKK7aLR!1qVo@QjZLnBWNNek@d%XY2^g3%3VXd{1u*SNZ zu-e){SY@pzthCkgkDw>_5`4)$UME5}$%0=- zYtvKe+fq)l^q0}jCRzH+XlIfv>1DJ+k|n*2b~?$DUPe2WWJxchHS6pe%4khV7V+H*Ghkuut|_UE6x&;I;hy4UWY z-n++cujm<@{YV+@Y1>uDp0XW9PujMk-8TD?GTIZisgCWk>l8h1*D89 z+9UQQ>e$2f#fl!XFH*GAzEIJF_63S|*yk(SZnGaLqiwU3>eyEMJVjgVgrWy*_9JDq z`|WCV>^__QNEvOjU8RoQYsVDbW3wMAqiwR;kCf3i+U!TlXm{Hob>0R$sA#<%@GghU zI@?cJYwLtHwvVvdZbw*UYlM~7XM`2j-wDgDzY&&Med>kou^*6#^(t&a(Ftltr4TfZgDO70-cv_2xtus$SAw|+yIX8j{!s`YEa z6zc=RWb0RiN!Bk36D?LSGZUGXeZn~F9|&WupAp7bKP8N|enJ>!{g`l<^&`Sa z>xYC9)(;57t@jAStnU-Ot>cb5aH_NJ%rxYyM(Kfn+UzEcL+VL z?-6=f-z9XnzC*au`Zl4P^({hI>zjlw);9=OSYIb}w!TK_WW7ze+jBQ>&t|!^(8{a`XV81y+KG>Um$d_UMIA-UL({eHxk?=Jvrkf>B$*8xt=ds zx=S#VH0MlRlIEPLP12k*mnCV=nM;$ac=9F5m4u6vD+m`QmlG~b(ws9FB$x8Y`N<^& zBe|H6OfDjvmt06lBo`2Bbcax#oKJ`+=Mk!sa|yBJ96~fXn-EFPB7~DO38CZ+LQuB} zf#h_8KRJz{C#Mp8y5*ThCOO3ukTgt#f|=G@t#j&FIXPKTi`A;AWR(>atrkURlamyk zNsd)iNRCl-IyqX=spKd{%{qlT4RaZxj=h>3uIQw7TG0vXl%nHSv!Yk5CPl}rR}~$# zPAWQLoltbxI| zik`I&DB5SeplGkfPM);3$9i5Jd&XiXPg;B0dR85K%G#&sNo%j7-4;7}(%KUijXkaH zvS{aN?Qx5Cp4J|-*vXUD9<|uXlhz)w*vXUD9=3L=&wI$C?WeV!7HvPRJ!sMP)7lP; zwx8CvTkPaXYuhY#@}#w`7HQ_~F zMCJed>QMa8So8m*_&4y3ei~Ew_Mqy2PkecNR(vd0{P&G_kLTl7+=z#&{)~$MkE^~_ z^+wg%s$=Ly-&M7>YW;s`z5ihJndr{wrs%Th%;*?&%=f`uy)3HzHBn#W50PI)-o!|4 zcp}#L55zNc$FLJVKO74ECG=tFr+7~O5<2-`3GEN<3T?%+@#4^QJQ?2_>Wk;%hLDY? z;&AYGkjxxLwy5q!Qj7ek=fGr1BZl*%$BzAHzZP&Y^g8Oez5jd zxX5&A`^#|#)1~e6L!w2bORd{RCM$x|;lApz2-UT|Cj zBv8HJ6$y|+^@3v(Ac^V)MmlmIDJFE}6pa;jeNf&@sadcl4PkX7}9=OsW|)eD}J0C`m}cvb==R=r@K z1jwvkZARSof06^ z>IDxXIEz%P7wnJ#xmGXOE`elQA2_)?*!6peL?<&DY2_*3mF7UJS zc=4_io=aXUJcqnScs6;p@GSBw;hE%>!ZXM#gr}323r{026P`+5B0Pn>Sa>pdk? zj67NRPVyw-JIE7-Zzqoz9!ef3d>eVJ@U7(D5RbFBkb4T>Ozt6k6S=$a5b~A6HgN9z^aUJdoU3cmTPRaDOr$!Xsz<#3B z?RG}bUawASX?Hk!_Bs`m=Ytp4(jYsh_tuO{~q?oA%t?w07;tJIrM$|vX zCBmzO;UvNON3z}!i$CBA;ODe}mjLeJ1+Pc|`|yHe62L#a;HU&J5HC0)0UX2&4od(F z@q$AVz(c&?pad`xFL+r3xQG|LBmr#13tp6F< zei{UD67RHUC4iN9!9EG#C0?*s0+@*x?2&+O;%LuEKsRyFRfB+T;%HAvKsRyFSA&3V z;-Ikx0o}wwXAJ_niG$V}1auPzy)_8vCJvfw5YSB=bk`uDn>c8%K|nWg&|iaqZsMT9 z1_9l~L5B?jx`~4p8w7L{2R$|j=q3)DY!J{*9CXc8>!37RCflfHe_5aO#>VMDwHo5{z{#X5nu)o}H ztoy(3-?8c&E97f3HUH+d-^ekh7pcaEpyb;v?Qsy@T?!4Hs!_zrd+tYH4&(W?Db zPh#)E&6q&AsA@*lIP5-nBW4hGuWGES$NqygRe{)FV!w_3JoaAf8<<1b5_>gvFt#uD zcx*@P-q@Ph;@GU%#MsE#t+4^IYhv9nkFY*=Y3#gMIQm)ikFp~^cgN>$`JeBfFFW%` z=gF@6pYP@W&vx(sbL6+kR{SvXZOkb=hgS6Ck(aPH;p36*=mS`dtcAC`zwE~!xjNDn zod9m+l1Sp8PFg@Oz#ISibcOKf@a^Hj;p@Xa!k1%)VI8s=v9K@nCrl^!dFThBZ-u^s z%6|bljTb|Eux?>nXj5oaXklnZXgpT^-yG@}>K*D5%3-46MWJ{|N5%ic;6Gr!|JQCx+^;FT&d_4=ktH* zF{i6KcGT&j=!kQLqQg#SMTeYDiViv~uIIFu9TwMf+Di^gemU($hb6z9cEDlDFQ>iW zu;iE1_B$;3<+SG=mi%(sb52@)^0N+0emQNQ!;)W4+v~JfukLYJ^2=$@I4t?)w5J`G z{Bqh;4oiMH?Ma6vznr$)F};*_c1ZFZ;r};18~oq-|7e9?{Xw5_SXRhsyByYGbK2t$ z>##ZPF^6^7oc5^0I&4mR#JO0#_hIKEMGrZw!{)S|&IRh&gAVJkIc-czNjl)80ZneWgY;Kj!LTqlO%|dK$ zh0Q{2Zn@1uY;Kv<qlS%|dK$iOoW6Zn4cmY;KXwLTqlK%|dK$fz3i}ZobVzY;K;- zLTqlX%|dK$j?F@BZnn+(Yi^bi;6HVy%|dK$hRs53Zo17vY;Ky(LTqlT%|dK$ip@f7 zZnDinY;KaxLTqlL%|dK$g3Ur~ZoK^u{1M~qpAp8|EX3x<*gxTs(KZXQxluL?vAMf! z7GiTF^{zZ;gw2XIMh8pTmaGRn21h*#DpWv3H z`V-u&cj1q?DXIPzL-Z?n(XS+2om7`ZZ<__(+*L_+ZS=BP(9QLteH@o4dkhK{wagW~P6E_FAlE_ElV zE_FMpE_ExZE_E}hF7-OSkw2?8sjm6UlIohjG^wunOOooEzc{I``HPb3Qok^%F7*qN z>QX;HsV;RRsV?dN(S$nJthU=`X*Y{5C6;!x+Af==-K_Sw&C+gGd(38O zH>*8rv$UHI=R@-T_w42o)v>#Ldz8&_XiniO2DB5N}tZ1wK zkfJU2PDKyc4=TFf-l6C|d%L2|_BKWL+FKRfV{cKk$$mi5M*Dt6ciZ=it+&}PR*c7e@~jqH4TDPNjrvtuJW*IvvcbL>Tg+4e%htR&?wJJVjkBQxyzgz5G? z!Zdp>VX8fcFvXrtm~77?OtNPZCfe-S$WE}Q^T>FcjT+f;HXAjvW9=z?X^cIYFxs9( z7-df+++|N7jI_rSM%d#B!|kzzVfGlpok?nS_KqZ#IeUAOf}9J|7E^GTFoD7ep&Ng&DUyPt2teBxMp9?qc!)}tf^U0BkTW% z)Ld87wI*G2SxrriUj0e+2iW`n8`WQ^K2v=ZJphkaZ>e5ay{LLx^{DDws{2%T$FsOq zZJ-O_FL)CFY5Y6!FUMQ(9DX4FWPC?_Bc8%%#mB{Oj}O2z_~r5X_(ky;p1?n@`gzs6 zRd3<>yBRD0_f$QMr|(r&^QtCQ4ac+hwN+iJ(p8sY=YK8sF?OT-UhFG)>OLOZAKMk% zf_?uNU>~~SvB9ycW1aA{c7ztaE5fp4N0z7RN!K7fa@_u-1b?7%pz(dZZG5y%Hj?DFsT zf8zg@|2<@3D*h(_OPFi813UaL@lW@U^52YI7rUaP|5AV4ujwD_@9W>wzk*c@$MyY~ zWw=FOt1m!b{cwFSc3SL=p88AlI6CTo@B6v$9p9V2Hs7nhmwZqAcKYt|t?YZGt(GajeyzAw01}WW;4^;K?#`6Ok-#@ z0%kMQ7+Q^h+03-|q6ExlrnLhSFq@gyUXXy<%(S*&0%kMQ7+Q^h*~~PCRwH0GGmW9u z2$;=GV`w!3W;4?mT8)6&Of*YLz-(q3L#q)mn~9bw37E}HV`w!3W;4?mT8)6&%ru5p zBVaZY?Nbskn~4r836RZ1wi!)S5+I%F1&>K^sR|yI;1U%)BEiKfcvymqRPc}l7ph>V z1Q)2_K?%-R!43%w6>OIvse)}1oTq}V5+qcxMS>a?JRm`}3htL6u7dj{s8YdZ31TX^ zSAwVt?vWs(f=v>HRj^TlkP7aWAgF>35(HGRUM_Y&FWz;+I(e9eK5|MqULj zts}1#UQ1pfyoS77cr|&M@GA0B;g#ei!Yjy&g_n~T2`?ir6kbYRAiRV;UwAQjp70{_ zT;YY}Il>FbvxVoAX9~|F&k&wVo-RCxJWY5ud8+U%@)Y5jX zN**sfg*;ApGI^}C@M!Wd;Zfw?5UtW( zh@T8yJKfS)PGQKE6A#W+edjh@N{pjK<4AeNQKE6AJmV?XdEfeI7&2*lxG|z8b``AjuMR{?XdEfeI7&2*lxG|z8b``AjuMR{ z()e#!;eiq%<*(5{)CJiE)%@ z9JqcZpmC%$F^&?ABc+LPlxQ3&O^l;N<49>@93>h@N)zKK(Ku3?7)Oc5k()e#!;eiq{KK%G>()QM~TLf65}Y*I8tI9B^pOcjH5{7 zNQrS2X&fmrjv|dCCB{*taiqjJiZqUt7)O!DkrLx5(l}CL97P&ON{pjO<4B2d6lokO zF^(dQBPGUBq;aIgIEplmlo&^m#*q@^DAG7mVjM*pM@o#NNaIL}aTIABDKU;BjUy$- zQKWIC#5jsHj+7Wjk;ah{<0#TNQeqrM8b?Zuqe$aOiE$LCdLot*<0#TNQeqrM8b?Zu zqe$aOiE$KZ94Rr5B8?*@#!;kkq{KLiG>()QN0G*n65}Y+I8tI9MH)v+jH5{7NQrS2 zX&fmrjv|dCCB{*taiqjJiZqUt7)O!DkrLx5(l}CL97P&ON{pjO<4B2d6lokOF^(dQ zBPGUBq;aIgIEplmlo&^m#*q@^DAG7mVjM*pM@o#NNaIL}aTIABDKU;BjUy$-QKWIC z#5jsHj+7Wju|I$RVjM*pM@o#NNaN^$cD$P+MH)wkLG4CFiZqT61KW*=7HJ$Ew33_z zr7#O{Aj#UG4s!a9K2c>W)X8hj6|12E&~#r;*ERQ;;zy{fnI^xuTJ ze@|8IsJgpq38ul1s=66<_pbjhp8bzTpNl?@Rrc$m3!_uiet%t}>F8xx0iZ`d!PEZ_ zBj1R80TuP5*vbF#$QH~4ScFyeqfkrlgINIih^3zYKMemAs{p=?8u|(B|NmroM|dMv z)6c>_|F?$+U>(5a;d<=rAHz!ek5M;&7km0wu-D%~)XX0aZAQg>UT6~PE%Lmz`l z3;pz-dZX^>7w8eJ1Ng1)AAH~Qebv|czk2>}rK05~X-`L5sc5;0!c?@}1Ys&#ZoDuR zEjLb>ik2HIOhwC$5vHQ$MhjEXa-)Q)Xt}$Dsc5+o!c?@}aA7K1ZkR9?E!VrL=~1XRrnPDlV*^Md0NK-awB6$v10 zUT{nTD4Q1?l|ZCT{uhr(0B!Sv!xCJff>%}UN z``^}!RIpQm3soTZzpWRjK<78& zx&Lhq@XNAJ*iT+7tdr&bx7A0M``^}fWV!!s)yQ)HTV6+&``_|fvfTfc*O2A@x4fDx z_rK*;WV!z>uO!R;Z+Qh-?tjb6$#VZ&UPfLZyp$~WzvU%lx&JLMCd>VAc@bIef6EKW za{pUiK$iR8@_e$~|CZ;G<^H!kmn`?cx&JNGIkIy9Tc&el z<^H!!=g7+aZ<)@KmHXc^og*vvzhyc{R_=exbdIdt|CZ?-S-Jl$(>bzo|68VWWaa+1 zOy|hT{coAhk!=vBb7bXSxO^jj&vGwZrgLQFUbsx>$jZHNna+`wd*L#jBP;j9WjKcz zgxm|4m2t?ua2dt{g~d)Z^2>sA;G~Q=N*Tr>ERIs9Z)ChAN*TW4y+a(O4CC;EqP(5X zkr78J(>XHYC}lW@e3Up!nZ}WkBuW{^A;-l;%JdCvRU@BD-@tA)63{oWVT}az4eVJX z0eu78)<{6#z|J)i&^I!kiInLZ*uO?zp>Jd~F_AKTBjY7e%JdCvWFxQ8H?WtD1oRDT zvLOL|1511)pl@WnBubgSk@1o!W%>p-+>q1g8`yJ00{RBF-H?F3k@1o!W%@?OOQMwN z8yPQ&Ql@WYyd+AQzJXmhqoJg|hkO8iBjY7e%JhwlmqaPkH!@xlrA*(*cuABpeIw%~ zQOfjJhdhkP`BBjY7e%JdCf*YXN|BjY7e%JdEF;32QjH!@xlrA*(zJ|6N4 zeIw%~QOfjJi8hnyBxSFxB#nZAK-JtUxSWV8(uz&E^$T}-4*5h&I5J`)Ei{gdm`DqaBO@l#LgUDY ziL}r-GGZbvG>(jzNDGZ4BPP;95h&I5J`)Ei{gdm`DqaBO@l#LgUDYiL}r-GGZbv(5h&I5J`)Ei{gdm`DqaBO@l#LgUDYiL}r-GGZbvG>(jz zNDGZ4BPP;95h&I5J`)Ei{gdm`DqaBO@l#LgUDYiL}r-GGZbvG>(jzNDGZ40~3+{|K9%9 zTJW;qdBG5NUHdrjOH9W5R^ZEl)<82V&Cdm%24`?ve=`A_QnZ>X-XzO?#0*C_jEUb7zcGG8yl1=<`v1-N1@S6O9{6+BZ>xS$^~0)fV+Fvusxwu` zk%ib>^?23xs(UaQZ&B6EstHvis&1+3Uv)LI5&0??s{j&Jq1fMJe~A4$_S4uqv9Dn| zUQ4Vgb~yHYYe|lC-b2@p%gtCeL1=} z`dD-;b^=@;og1ATy$kyk^pEzAUV(i8&FJ~jXjH=#z+Xpx68SE6D>#R(ijPHJh&&Z} z2-6GKMi!%6VSHp5_AIy|(gU*#+ea=%=YJ6U7W^UnYve56`A_Klzc^GA3I_ic{C)6) z;7^dzcpJU{rQoZ7U>q zfn5sv`>#fSLf-FUDrCYR(*LgiLI1V>Q|wmoHT@0QT~R-*Kd(QjKcwHUuh*C9bFpi| zX#IBdD_pPl&@b0hdYyj09@BlkKVkQR_kG{TrM=hJplxv8_ga@4wDk@<_8QhX?AU8q z>#$?5VU5F%y@u7!kGY}9L5;jmG!VY%}j&spZMOSNIC!zRv#B@TNx z8x}k4-E3Iouy?azp~K$Ih6N6LHyh?V?A>gb=dgFPVXnj8&4xJ+dp8?qJM7(Tn5B>6 z51pysMVR5Ro3mlM!*0%oX%5?)8m2nz5Nep>utTU}vcnFchDi=Pgc>I5Bl$TK9JUHI zjCa^7)G*Frt5CyOhpj>lV~h7Q!3O`TLk)J^HQZ*f{?HYp{>8!O?H#OSXO!!P18iOk)nA zPQQ^*Ys@BGX3Qd7YOvR_;Sz(rjtv(Z>~(Co$Y8Hy!-WQW9UCq%*z4GEzQJC{2E$;l zV?)wluVce`#sq$H!Wd7e(FYT%^+ANV!S2U~DudmR4KYLgDWm#8o)a-f6T*g)#*m?; zF{lsVO98zVEn_PoQ!<~-Jgv9UR?J?pTsIgfQ=Y;4YJ zdmT15=e0c!8=Lc37skfsJl2J=u{n=*VQg&9V_g^VEn_JqU6<~)`lv9URi zB}i;+&SMD@8=Lc3g2cw=JeDA_u{p0j?69#puRY|ju{n<=NNjA*YY#eXY|di|(!J_; zzumb<(Kct3qOHzGMO&P^6+Pf=P;|euUeSHdIz^kEwTkX_)+oBiS*>W3vr5rMXQiUM zofV2UILj5Scc{Agbq-ZGzt*AZ=GQn>-TZ2YVw+#(P}A}&9STlI}Kg-~^FF(`acRxSF;dehj-QjmXKh5DcJwMgqH$6Ya;Ws@$+2I#FKgr=2JU`Ll z7d$_~;nz7o-r?6dKhB}`BmdONh{{8dIb9_i)KF7rJd_0xMe>W6lB)Q`B*Q9q)aqkcqJheng{;?QXF zS2#49d}oLLlJDfGf5zoTSN^PyMi)Y(aRs44SHJMQu72S;qcdO1>gqS2ap)BJv_m_{ zryOd2zJsH#y7rE`0P2lSe7kF0PH>El1lwpNSVjZEH1dQxUHx%ujU10$W@HJM8X3YR zMw)Q3ks@4VbRb-4v?p9()DzA(T!LXZgrs2;&ND1R!Y~Ony1JsOb#+C>jXJ(mWz-U4 z#$|-4aVa5UTtWyN7ZXCpMTDTPF35m!A&>Zt3#9(v-Zz~4|NZ;x|3|T7|D)CSRj;a^ zTRoxr4y?uRh3S7by8nY%hyQEL{`-3TwfL#{!T2-rov8gUi_gRp_^t6i@hjumcx}8U z?!(&qU!e2u8PGzi~SCL|L?@!jJ094 z{fn_DvDSWLY-wyJp0J0;`p0_3I^y~I!dNu=_vr8Nbp1~B&1hS+3D4Gh(EERXbZvA| zbUN174~-7MlXd543LO9m^#A`k@?qp>k?-NTx)M1RIUIQwJpfxH8?Xjo7M`l_j10z3 zfL$W#$Yqfl?5qDt_=E5d!{5NJ`e(vNu@~Uu*i(O9cu{y-cocTj?-TAG&WA1Rr~f~8 z1N?HRC3GTmAoOHtM`$B<%AbXKf47GQgs#Fa`Sn;a9}9klE`Xn7z5H9)AO94dnD+)B z!SnL!;CwtSj|dLIvvSv9CRiIx1pR?e1HTUZ2&(|z2%HTZ3p^j#71$csfN2f0upi)^ zfx*bkbPZ&&5}e8|Ihv3$DV+%`_K4~`S)W#h8_M*{uTbY*yDeM|0e7U*d5Q? z7J33g`d=``;HUa`^e^K{`-FY~&)GZljd;qQrH{ii_5l4VJYm;kZ@`%EGvCKp6Y#F@ zEnmgg>^tb&<9pb**|*9!&o>Dd690>wlay+^NP~vKXXhlNDvZHr=Om#jjKOE;B%dmb z!Dr_rohppMXXhlFDvZHr=Omdbybmn7RACH0JBL)N#~6He4yja+G5G8pQmGze@Yy+} zQa#4tvvWwLdW^wm6{J!<#^AFGQmGze@L2_^RF5(Etb$ak#~6H8K`PZ_3_hzMmFh7D zpH+}b^%#TCDoCYzjKOCWq*6V`;Ij%+sUBnSSp}(7k1_bHf>f%<7<^ViD%IodV5Cw# z#^AFGQmGze@L2_^RF5(Etb$ak#~6H8K`PZ_3_hzMmFh7DpH+}b^%#TCDoCYzjKOCW zq*6V`;Ij%+sUBnSSp}(7k1_bHf>f%<7<^ViD%Il+V5Cw##^AGxq*C#>z~HlrWKw|` zd{&V}DiDLuDw0P9V(?i-(x^ZTKC4I;6^OxS6-lB3G5D+^IaDA9pH(D<3dG>EieylM z7<^Wd1S$}N&nl8X1!C}7Mbf803_hz!_7sT0XBA1F0x|fkBDquGe4wOGff#&Nk<2L& zgU>3GI0a(xSw-@uKny;sNZJ&LX=fG5ngTKHtRhKMAf}yFZX#mZS!DIXO%%jj5wQ%Nhv zNS#VbF-GcCIw(E@Zm$?4bt?6WF;b`ED#l2iilZ1Kbt<-E41layiZKAPVk(9XR_YW( z2P?ITp@Wsn6hj9qmnw!1RxVKt9jsie7&=(FNHKJ!GvPb!5YP)gVl;f2jhxG2dfl|4pQIo%mt>toFJ5IWcfbr*yVwn5wlp@VJEc0uT18>C$jI@ktf7laPBLD&VMgKf}tLFix`WL*$C z*alS>gbubr)CHk~ZP0W<=wKTpT@X6h21OTy4z@wi1)+m&&~riPU>oFI5IWdKHP1r_ z+o)Ui$U94zYCCV~zY zb!-zw2a7tkiKK%?9ot0H!J>|BBI;mK$2L)Qu&863$U0cmu}yRxEb7=M!VVU7Y!hV% zi#oQ6w1Y(*+eF*JqK<7M?qE^JHmZ9b>KJWr^4s@%iF2&xqiY__*`FMDtxYwd@K~+dvmkAnG&BH z+-_5}4HECYa8iB*G~NqNNC1)dg5wfE<-On)2}I`Qf8>}1(0MO7DglJv3yw%2N-w7! zmO!Llf%HKh1Q2^Kcv%9dy%)SB0p#8bUX(xtUq0Y~1fuv7ydZ%{z6ARv$f)3X z2}JbemFFZ7)tBH|2}JfK*e8MLz65(E5aE|#j|8Ip5D?3O^}UxFtj5dD{6mjq$}55@fCLXo zAT}VuP6@;ZBzRB)F#-v8NFYui!FCD63MAMjfp~!gTO|-PkYI}h;sz2tAc5F{1oulI zejvep5{My4uvvnr3htFaEJ0qmM}n{lHc23+Ag^qcKwLqByCo1?kYIxZ;tLY2mx~w1 zfNxiBoiL0+c&#vuL3oWYj6rxcxE01Ayh<3xAiPo-#vr^x7{(yHTo}e6yi6FzAiPu< z#vr^z7{(yHSQy42yhvD#0lZLHoB_N*SgZj&Us${WJWp860X$b&+yOjCSnL5jTUh)7 zJX2T<0z5-l90ELDSS$iOO;|hvJXLrmd5W;O1ddO}FBH%JJ^d@&)qE0+V7K{C0>26T zL*V;?Zv?)C`v0lG(ZCCVrvr}!wgm3RYV-N%02qts%prk3fnI^mfeiMZzYskDe*a(a ztocj-kNn^9zv+L?e-={#U-s|w??M;ACjZKsU)TJk=09^T;Mw?btTuQi{s`*+>*Gt~ zbK_Iuqp{<_;P~}eb8vY)g?<0dkH?UE_*2zK*mvLum_YCqtUV}Hy;Aie_8xc)IfzZz zePAK>{u__|2X3zFSJfLk5ag;H3z%T=Linlh zL*e_vYr~7Nd%^hdu<(%Z4cPmyW4L|z(r_Xi4E+^582kb||9um)49eKU;85sUOf%Sy zeg9U5=7*+Yp25)2K zGyPpm8T=yV6g2Bcutwo2{bBt9tWsF6&(o)3ox&ZMS8xMXDsp02%f|vQ~IMIEbFu{F|Fy1{!80S_9W8F5w z7`K%$+AR}Cxh;gd+!A4=TO^Ed&k}~aX9&aG0^v^M_k=r)j|sOMzatDaeoMH`_=s?; z@gdzO_5 z*sq@1!;XFHnLX^-r=HovjyIgI@#O1`&j{BUe z+F9d^>bx_?IYkAdqUf~Irs$N>s;F6?s;J2*DSFi?Dmv-1CfTT+a9NXV)Q-EXNj7S) zxU5MwYR6pGBpbD(E^CsF+7XvE$wuw4%bH}PcF1K-vQazevL@N6z3j3k*{HqbvL@N6 zz38$g*{B_GS(9wkUT|5HY}EF$LPgu%1&X%0^A&A% z=PBCa&QQXTjP9}#kR(IE{koAb6pnO8t1qywl&UnS!`>ZWzc9EXS%Gq zHO_Ev;?J7y4k1i)S#@ii>ayzAIK^eztZ}l-vRUIKmu0iYi7v}#jT2m!%^JtMtQ0nm zb6GcS9P6@N+Bn9&oLc&kD0XuQREm2baUpG>&PI7t|ytH0@u#t9x7?Cv5Aa`zDi zx_b!&j5i4V-KPls+$RZr-Q9#f?tg3V%)_Oq&ivoEtGDW<3hgTbB691L3VN%n0YOxh zQV>y5Q2_w~*+FGf76IA1-4%C5!3{S=G_J%ghUjl@*S+zlnM5-#6DKi=A(|NDmT^sH zzVG=SmihgjXa1Pwd1jsm{^9e!Rb5?u?z#8d=Uq;%CmdJimxtikGQT_oQJG&Jg2CmN zc+N3pelZA+Eu6!F`l`XF$WGwSnB3-_fo>ci3f>pkm zkhCUgO$^G^l2&Nq1pSw&HSx0N8G5NqeQ8bn$UDIJws}1a{jf~UX@w?Ib6T+vH5H^4 z`%qIsTCoo`6{HpWP*Xu#6VH~Z8?D%fn!3@7eWu`kuG9p+~*F3_ap?GPK2W4L$5RhBkX8Ll1dHLz}#Up$EOZp$9zM z(EVP{(0yLk(7j&9&_*w9=pHX+=x)z4beESjbf?#3=ngMoXhX}t7+T-*H$%6#{MFEH zE#Dbh*Yd5QTU)*{bW6+EhHh^8%Fs8Mi%O4C~+VY{HOIkii=ou-+xa|Kw z`QOX`k8@9Pk9GUIz1{uYz1+0(weu(E*UmpUKgKfvpL8B{);rfaHD|GNt~1d&-8tSl z0u=x)&OVM^`fKS^?8N_0>9x|!rSD@O{<}~Ea9L>?cHy5=8eKZEbTszhKd{ubR4O&0 z3gAQR0PwS71N-lPuXu0q*5XyzegA^u4AcRff;|BG7kd}?FYbk%_rFHP{jUnI7aE1< zuzWVRmZ`rS4P5lIR09a>Vh1KJHdn$7O!|g$K6)Wj3b}{!axzBRH z%e|9(E%#DxYi={v&^P2R%`MH%!3ug5o&z{2SH=3dORktpWWT`b`Q7YKvu)Yuuy)>< zy(N2Pb_G_>)3alRR z%nZ#8%(P~D;@J$j^mpk`((k9=PQRLdDg88}GV77~U!A@%JtI9feRBF3L}PsPW8{(b z|0MO>)SIavBMS3)>b}&isVh?#BjZ0MH3}>3BX{lr@HJ}de}xrx!+Oqo#JbzM(Yh4b z{`0W19%&7+23WnV?v{%+^_R&%CV!QDBN->3Pd=L5n7n0Iu0MJ5uI>Loc8m}!!b;&@ zO-t<<5mw<&!U(VmyTXXC3KxYDUKK7hEzQS_u2ytUVT|Z14pgM4Fh+1ySb7R$##Sr3 zr!Z!0wW2p>iWyt2=q~jbu~m7A^c2PjtqMy|VT{PCu=Eth2&@WAPhpI>s<8AF#tf@g zbWdT-uxds36vhmzR&-Bc%&=-j_Y}qqt5$SRVa%{SeCQy4R> zTG2g)F~h1A-BTDdtXk1Mg)zgb72Q)9Bdm%TYen}I#)zwG;~u$D1Xi_iw-|`5YD0Po z8wjmx<4!RUTh+!LVj#GxjSXTTx~dK7DQqCTs*T&lKzvmjw~2uOt2Wk&fe5QMq%pmL z5UVz%r?7z-t2U%Dy@4RBHf|CFQC4k8V|oK&R&7XQdIND*ZCoz~0D z!UjUE+E^r^ai4>+K`^Y2Ewh{kjC@|;;q_{p27wKuG)~s^u}ys zNMm|qmNBHKurbpZmxwXL7}8VNm~M=k7}Jcg27P9YshqshQ`ne7mY%}KWU}-WHqIeS zPhn#cS$YZ^6Uow3*qA_;p2Ei2Wa%kvj3-M^VPhOwdI}q3$3L9sVrKhlQ23dLv8>f?{r?4@SEIoyd)5y|O*f^CeJ%x=^$kJ2T7(tev z!p6yD=_zcSM3$by#))L`XmO00|6*8 zC>)4Ei9z8&7)lHZ2O?2oP&g2b5`)5lc$63v4uqt{pl}2b4j2>;1g6BGa3D4%289FR zDKRJ4I0#;&BI1sZEgTjHZl^7HbM6Sf3 za3FXk28AO)@)QPzBS7*L28AO)@)QPzBS7*L28AO)@)QPzBS7*L28AO)@)X8=^CMX+ z289E^2V%@MN3IrQjxnwhgTfIYc?yHV5g>UAgTfJ@865_NBS7*L28AO)Gdc_kM}Xuh z3<^hpvj2~#+NF~Ss%U=aRjwNW^NBZVm(!4bj~j$oiLg(Emzn8FbZ5TwU!C}G_ zj-a0~g(K)I9CB>?2vazMs&GJmDBMb}2vazMK$yZ294buV2o4dZa0I=DDI7sBVG2iZ zurP%qI7pbn5gaH?;Rt+T5f0RIN`Yb4zEuXiqYR$?#0^Z(7W0srj| z0UwoqgFOjN+Ym4z`#3B@yt!;8mYUw}i3J&T=-#bUDXRpH~p z`{-8qX(2AWi02e+Mx5f7!qtT}s12BdX9JG?-}Y=k^bow5dMdR!b$9BP)YYjqsU@j7 z$ls5}Qw4^m2BrF?4oS77x};p}F8EjL3+s>8Z}4=1pIYtKHbf8Jl-Xr{-~AnSn0&*1 z#eLa*&VAh7WIgKM<=*064hq!nWq_ttkvmmV-vFqfw&S%bt z*mv?R>q=|2wZxi>XBC`nonf75Mb_a~#qzCgRwpZy{4V)f@&jvIV((;iFU2^0wUcT% zZ>7g2tBANVw^vQP)U0$oteW^ib5BDrG&AB_O+0Tg8(2*|)6CdwHSzuC{dL%^dcMVo zZgrY<6FuixHxkBKHxSOUt|y#oT}K#UT}wEj*&{^FErg?+yAzIT-p_d}^+dAT$6D)_ zQV%7ot=2VepVZyS>VekP?yS_U$?E>rRqm$L+GMray3+kPbxE@7sy4pdv92JLtjh^S z^>>7V`agtxb2ozB+?9~CE+b@{yAU$grG#|zzJyeBXM)wd4W=4TSj4d;d zVd7=QJZy+jW@I=_{77xnqZ}r-Ddu6r#1GYr#`mK7fuSEXGg=%bUT9{tIK)qbQR*=9 zoZ4#6dsaPZ=$U55l0*E27)uTlTh-&{=+o*kLrT7DJDzhYfvC zZ8r3%ddSctYLlTY>On&fs|O5iR`(lvNZn^>le*W?gKDFp2h=@=?pJpkx=-C@=w5ZF zp^fSeL-#0l*@lU`)q3N*OWkhhPQ{FNn7BhRqa7wTD9+(9v0ic3hl$(O&E^%iDP|$U z#5%={LzuW#-C&O1qOLb|v%1dEO^Oq^GShoS&jG2cAx!s}N83|igRcdZ{~-l7hkHzt zRt9*?jaK@5Oo>(w^O&8i^z)dMtn~Gm#jEu3n8mA9J!bJLp~oyHtqrA86XRA&;-P-hTMSEmz3s*!}#)Mu@i{gmu_S9mI27#e{X}Sc~W>Sqlk8 zW!)9h4E6~Jw z`mZPQ8p<>DQZuuWNMk5|-#`vS@mmHG7;1lW-iysiLq8}p2U$UempRA^GQ7+|R*>Ok z4ziMX)|zi#@l2VS#|kpM%se8ap_t7@Izus=i(H0cHW!HuMIA>LLs7Gl!cffSB7dQn z%|-G;QJ;~yP}FCnEff_PISWMvM#4fdn~Q9PVm2443dL+L@)U~MTqG$Jv$@DnC}wk! zo>0u@A~&I!&8;NvRXfIXquMck_oy8sbhlzQx01L^F`HXK)f2P16;wU_&5X+iZ^uZk z_jZir?cR=&yv^G&lIuKXb1SHNVm7yes;3=edb77Y*vxYA=bx01NRV>Y*vxZGnl zx01Nb`@p>RQt$VMF7dV-s(ZgPRP)|9w8s0bp01VE-fsx2yk8SmdhZcdc)ucC?ER9k z-1{fOGVfi&Qtuapi@bj%Eb-nUEcV_eEb`tWEcD(aTE4+&oR142vr_k^D1?SuoY^9Vi4za#8lexK02YzBP4vKjDhWi#Mi z%Vxm4l+A$eTQ&pUxoie}pRyV7=CT>^a@h>{-eoi3dzHN9}zQJMMi@_yzU>c)75(@DOV5uf?i*VPR%rTwz3E zaG@`1?Yk5T*ahIz{QLR0@~`B7h#LF*vA^C``4##3`KkHQ`QfOoujE_sXFrSn|3BI9 z;Ryh-{k;9CeGm53yUbpS-v4uUKL4-9-p96cf6aZ0{Quk7|9@NV$=rjv^|`gVHK?GU zotuywnH!4eM{BNU4r+nw`A@R%XW!1girV?D+0EHIvp1k}era}2c5-$U>gES!t64wW z1y%D2?3edJ=3UgxxBZ7Y|JS4!rDvxnq(`QQ;t7DQ>7Hp(qVG@v@P6v;)T^nNQd?7- z@eIHl(1o!S>-BR|XW%&i1JU!}1C{nE>r3ko)<0pD{&(10?_pHfUvJg%6oA=SS7Xl- z>o8Q-cf&IP6X^Hfj%NV8n*34nspNyn+mqKMS0yh)xz5~HcBsr@{IlPeX zKy*_Zo5etQQyUM7f%v92Hi>}%r#2oG0})PbJRk-_oZ7fw48%CKai16na%$sVF%ad{ z#zrv^=G4YLVj#|`jl0D_pi>)niGfI`HtrMyp-yewAqHZd+Snilf}Pq}F9xEW+PGZ| zggdoyn;3|9YGa)k2zYAaRxuFq)W$7hAmpiyo5euPQyVvlfuN^0ZWIGiPi@>F2Ev}& zxLypzJ+*P27zli7<61Eg`P9Z*F%bIH#x-If_Nk4l#X#^=8&`=T(NFndT`2~_pW3)W z48%XRak&^00F~1&6GI}PVq7W)LZI5XL=410wNV!XK~Qbf#6T2O8*36T*d2(2B5Yb+ zEsQv*@G4=%L4{WeBMvIOLKtyS;fsY42Nhl}j5w(9GGW9)g_jB=4k~<+Fyf%XON0>z z6<#ciIH>RB6hXQ-xQOrwFegPZqwIJV|&td7|(#@&w_fl#3(02+UqC)Xcmerz;rZl|!t=?;Sfdk=*auQ@hc(|NIl|V!he_q zIHX(@`XC1e%Sn(2;bY_^szaD~R!)LC$bpj*f6BL091xw9`=dC7C=q}W=)aO7N(5lE z8skYZC=MY?1Yl4cLX-%=pg4pm5r9E)2vH&cgW?dPL;wcGAw+E%42naD5&;+#hfwQv zJH;VHi2#mJ972=`z@RvUC=q}`aR^Z&0E6NXqC@}&#UVtA01S#lh!O!96o(Kc0x&2J zAxZ>bP#i*(2*7|iKq(O46a(s@4bkg%$b&XSuiK#y+7P{Nhd^jU^tv4ip$*aNc1VOa zM6cVS5!w*FZih%{L-e{GDxnS0>vq=|qSx)v34KKLy1ir!(d+i2F+{K1Ar<;G(d%|- zg*L7i17e{K(d%}og*HU5+aVX)5WQ}PUT8z~x*dX{4bkg%D26sfuiGIR+7P{Nhh}I) z^tv6Qp$*aNcBqCnM6YAWhBid6W9Wu9M6Y8Ahc-m7Vt=Y+7XIg$JCBc^g5zLXRieAUmj!^VErgns)*DzLXRieAUmj!^VErgns)*D)6PK=yhyl zL-aa^Y{)f5uVbScqSvue4bkfusv+lyUdKi>M6ctJe$nd~njzc1fWzgs4Lqq7dr1gtwtu`A$oXFQ$? zILsO3^mTeUJ@8z>ypzB_{r~-0_*CIr>>2oB;l09Jh!!-Ehkv@TrEqWIcI+H@d0}N? zQQ>@K;>Z10W#Xm(K3}v?&s%s}!V3GF^ttKD>9f+OrjJh#vOi51(#iDg=qUIA{rSK8 ze>(KPwBO8qY`=#1!n@d8@Ri)l*beVG>@T><{z2}p+%4E+u%26%TacS&Kb4!58;ySb zA-N-SeR939*I?&dDVNHAi;n#dv+rf!%KjwV$i9dj2Oq|B2XD<@ldWOT!MS+y;JEB* z+2gV6U>`htaQ|#MYh&NRzhJliUuWLRyoQ|zpU*swClKC&z51`ntjsLToSQi(Gdgo} z=2-01AK*EJT{CVbo&GlcY5Mo+f5QF{KTiKB{r&VK>3i+X_TB00(ihsd*jL+Y(tWWj zM2~c{y(IOOJ!fZdU=QpWf&Wn>pkv|H#LNC<9VM-v=$}Iv?oTque&kOyw9TJj=!gE< zhFXu`4nDD(Q~{4?nq?4Ln6#y{O0d)8+bw0e?% znsIIQPc`(ke~O`}{1Jwp^iMYQgnyEu$NduxJ?0NL^gaIsLy!8y3_ao>Z)l4@)X>BJ z5JQ{&;|x9IA8Tln9~pYkA8hCW{}@B}`$rqP&mUyyUjHaV8~q~<-Qyo&=x%?Yp}YLU z4c+MvFm#9C-_QpCFhlG8eui%M`x?5Px~{_0NPcipiwvX!Qj>qtxewGu3B=Gt{Sq)72-0k?PNc z)6~a=Q`DabC##PLgVY}hN2)&%j!?|l{cos2;~fuFOm~L0x0$dUds->(o_-u2okWTC1)wbd9>)(ADZP zLszLw4PB`&F?5Bh8@gQ83|*$y7`jxgHgt(vWvH%J8mg%khSsQy_3ucyS}iB6Qp*S{ z)l$L=brIoWwS=%-Eha2eiwH~ALc&GrLc$Vt0b#LPKv<;a6Bep@gbUSN!Ubv$VSzfI zFkhWVn5UR;59g}c^vqGS2r$p0tycWz3!pS#=LcidOq zAGuGt54yLbDtncCfjh%x_P?Kdu)Ck@x|Z{$^GD~G&d;1S=UL|w=N`Ot&%Zq*uxAAJ zjKH1|*fRoqMqtkf>=}VQBd})#_Kd)u5!f>V|A7(6cc6L#B`8SFptPWatG2*RjR-`SVB>i zDzFZgP*kM~tb-*KRjC5&ULZL4zRbU;gp{Pm~SO;q;s!|2kff@>Zl2n0p zu!y26RbU+`qR$S*!{5kUsu=0-hUrD?_lS@=beYK_P^d)?aX)1aYkd;zy8jF z*z+%4`WtflAD6b5eu)nIZKcPs3;%WKt)Ew#R5}Iq{)d)&mi8&7ik}yMgT4M?4 zApK^#E&Wt_BQoSG(&weeqE`Qe^fBrFsMc5MZfQI96`s-eCZ3tFHT7`nw$$3x^3?3q z81&TlP4!GU)_17Tf7^SA=vf<`vG!H`d(ExQ zq^BO8`n0~XQ=5V0QZ~CZ8a_gw;?$;V$GqscgY-K&wQ1ThJsP-OJF>N@a5QDdyH0J2 zJ~T4w!4K-xCTqvAC?OYn^);t=BnG<^_5JBpqGyF6#o(;7`XQxAz-JA)oCnl{9EPN%0!G_9&Xsa+ch58lN|taodt z@n|ZVRy22Ys`ezliKc$7Kc!ncg`Q8MsT>KnHiDk*(bPB0yPQnVyV2BV^zFK}ljwOp zntG?X@`?0xL{oVuZf!U{+oCD=o9moF&(>)2CuWKbqi0KW&PV1t$J4Vhny6pYFIO81 zPg5qbZkAgc!h>t0(eLRCAQAngSBIN zbo2=QW=`!G?HC_b#gokj6Y&a+Dd9e)NormYizFwl6&=MN1|bPak@sXvsX|snRnb zTC&hwC#0u!*Etn>yl9Dj5$0GxPnT%PDE)cuS}Q#Gd*C!pcWa08XewIL+sutavp}CthzF!Nd?H+OyjJ!_+BJMOaw zJ@sgU{!wmlYWw4dlT9y;&U{o~CR^(cM^k!UAE&mTJ~TZ#V!QqXPOY1EjE{QiJM8Dw zx@yPBs58gbsddqgVUfGzjD59ZP?XX`mvCyGwWIG~eo9Dg@}73kS*BIW7X zZ6Zkm2JgPxL_+Q$nM`pa;fNgFZ6al~XZMMerf0W_l%i+1iDc2U+eE@U;9WS8ns{`# ziIkvc*F;*)(`6p5;;~)RXeAxHX3+{dc1@y->DV=gmea9o3N4eLS8CS`S_-=9bhdyJpWKZSR^q3$?v#?p&ztT~p@*ZSR^n3$(p!;>?GgLo50`{eM0U zZO`RWt`>9)lVuKw1J-3=h?R024x0+7c>CkF!HAOoeTFkAc0nu{KW9&bJpSIQ1 z8ZGB9i>syFYVxAx@9?(~N-k$~iI&SR8q^+2E)FMJzK!<*B^O63TK<@J*i+$1T8VF( zw%Cwz!B3hVb|K<8EwMdXzKXAdh>PRhXu0{r2oV>@>(TNFd@G2!I69)`r|X-sA?9+q zZB6&PkaIbAfrnkPfv<>ZY`8(gjMR$^VWjKA`(7I-VMHd;D>uNHmB ztLxE{@AP{+5c#I8wKQ71PM?s2#5X0ac}+(;kairI9xdPqIS_W(JZ>AxNhWF7X% zX!@hP5=0&LuxLV8eP0fQ9rmE;v~jc{>#+Mq14r@HZiFq-Dci?K7PGVlnQ2Lf#QE9wn zKs3Xsht}#O=EaPIc+ul{hPTrJ!IqbF*?A2Jwm6&}4jY1^RMZNQ-0p&MQNt#qn-5qg4-x3$Yf*>(PuMyj_U4I68KILWs9Gwnfvg(qrmE z#Ko~SnkJWc^)(w}E_bjcvCf8^3vNtY?P^6&VqQ$*&%)J$p2WNuH;kWK>v+xdGZ#-9I=I(Il%JIkEe&RMAIKg{u*PFVGSRQktKN9mc;1K3S( z4c7Y;@U*>wc+y@op0f7|cF%hitNpF$?7zRbp?G6)O>us4MsZYeNO55CVCZ&|Kg5py>kC&D78j-!PDeL?P}r|vW2OJQ{2SQE|MC1?`D^ma^0Uk{@&@G(&3DV& z_E+}r?KkZPo{4wAeWShFo@<|NpNKX7fp%9roBKBRVeYM5BlmRf-rV)MmAUhC<8mkD z`sWlr_MU%xMqtkf>=}VQBd})#_KbjxfLqtgzC6AS&f>QUx31THd3+z->Cp?nJiZa` z^yrme9;<|%9=-I-W0^3E-=N&OUi;;-PMGymJ=ktt7Ju1%lNZf;T7Oq^>#_!fr%N=8 zODVUmmx6gL6=v}plUvto!93QGv&QJ}J#Jku2J?tI%+i`+;8q&FADQmQtns<)v+p+cib3Fzuep>)`j9(7fpNKTnFnz@vM!eZZhX!g(#kS zG-ZVT4(!zR8Zo~#I%l#THm9x^iTQca*|C0&Q`f7+{PgIoW%{yCT`v>!S6w70whG1NL% zlW_Fd@y#+*$7&K^Et@lStReyVbRDb5TrTg{^`g7O1t@xQ4Q&~X5<3%ezH6Fc=v@xqzmd#H~ zFC=Zus+9xGxa*aqjajvlD-5@;my$MS)ykT=j$TXJm{ltuHXgm0v@xqz{@i>ny_&SK zB3;#F&XMJ0*2dgg#kGlBmsKS^9nq>CGgvP!ZOpJ$lg$0-)uoLYwrZ^T?0R`=V}`9d z%)A%YmvWtr(aIgaV_0E|XI-@N2=ne(V~S^Ov|^yS4py1ssYlCyp-021>vg8RG+K73 zap;AnJukYbyM8C9u2-7&^k~uZ`m(vYEH#t%_@U(BuVPY<#$J3QU#LH6Y!Gtm3dgY3%= zPd9pyed(?5(ye!;2iccaGxS~PaiVGZt?(yjUwV*(*)gR$YY!&Sv_a-o`_S{r&b&^& znV#)C^GWqGJ?}=-#+i5Do1WLBX$#Hg+KZl!XxapG8VLp|`qA&(>(lcgEw; zvn87RsPUBOK@Mi4nH)uW)99z%jr2O zn)o?Kyta&FKg_#A}P_aiWQ9 z&HXH-ClyUxXs&ai_FyJW9A~a`0X?5Y6OS;S1@vr>Cic`L=+@@b^KLXTWA1PsJ+DU- IKG#?NS0h(qm;e9( diff --git a/GCBM/layers/tiled/Classifier1_moja.json b/GCBM/layers/tiled/Classifier1_moja.json deleted file mode 100644 index f1b22ebc..00000000 --- a/GCBM/layers/tiled/Classifier1_moja.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "layer_type": "GridLayer", - "layer_data": "Byte", - "nodata": 255, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "blockLatSize": 0.1, - "blockLonSize": 0.1, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025, - "attributes": { - "1": "TA", - "2": "BP", - "3": "BS", - "4": "JP", - "5": "WS", - "6": "WB", - "7": "BF", - "8": "GA" - } -} \ No newline at end of file diff --git a/GCBM/layers/tiled/Classifier1_moja.tiff b/GCBM/layers/tiled/Classifier1_moja.tiff deleted file mode 100644 index 952609319617296ccb7dde60bb15f4782f275a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26867 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 DQ8d`T diff --git a/GCBM/layers/tiled/disturbances_2011_moja.json b/GCBM/layers/tiled/disturbances_2011_moja.json deleted file mode 100644 index 25a3c9bf..00000000 --- a/GCBM/layers/tiled/disturbances_2011_moja.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "layer_type": "GridLayer", - "layer_data": "Byte", - "nodata": 255, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "blockLatSize": 0.1, - "blockLonSize": 0.1, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025, - "attributes": { - "1": { - "year": 2011, - "disturbance_type": "Wildfire", - "transition": 1 - } - } -} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2011_moja.tiff b/GCBM/layers/tiled/disturbances_2011_moja.tiff deleted file mode 100644 index f5541f141a19fc49e49a659aad4176d0161a71da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26412 zcmeI%aZHqD90%~{fa$3>yAqS?)HAN2L_PJiQ&CPi0}_?w(o4=fg%ph%I;NzTT#4h_ zsIiGjc@=KA#7Pqt85S#?uwmk&M#l0Is>{)$g++A6f!*=@vhi+g?Opxj?spq}-sk&1 zcii3k-uJn^q@~RkN+E_Z@kDlMkyzB;7^0@1~7cidAA9 zvN~jEOCp69nGab_iAqEu)7?WGwIvb5?{#RjDJ4^DG&sb|o(K_zc?%XT!WLn{h~@Vq z^bYWO5Z>oOI*N(UgYZ5N`1ps%@pnYi>uiI%sWdKxtx$U}YNk=151U|24CQ&S z5k}ufc`j^#>ia3rf%Q=J0OfXA2bCJiZLkJLO{d%ntD%@dxdm3i0L++4`#sPP)3uaW z!akTfi*h&Yh2{q-uYf(!6iazI?1qUt%FCb+8Xuy(6m~(w!<4(A7wY3EFNPg3A)az4 zY=`lWQ0{Y1g|HQBXH#APTc9R^@_g6?W9Cqv2ODAZT*`A{160qWJO|c8m7a1t ztb@w=l-pnpj9Ngs6;?yBka7#Gf&rLep#2``hv|zbuY`Rtbur~`*bB{%QC zU{ng_R#**1D&-bf1p_c6jrMz>AErM+c_r+FscR^A!(M1kr@R98K+{^v%V9T6Tt|5s z^g-i#%1dDvG-Ocjf?lY9lJa8M0TVV*?u6|yK9h0>Y=b%r<%O^nYM-LK0JcEQM#}SH z6O7qJc^+(p(N@ZHVFOe@O?eKihpNq#+hHA4W>Ic~H89FXxfNDJv4wIAtbzfU@eJ+v zKtD|1N_i#hgQ<4P-LMy$w^3dJd!T7M<>jy&CT3G!27S<&LwPCef`(@)cR?@I@1VRG zcEG^tn_sQnu1^|~X8p@==jO)Y8O}APk(r9&3n1e~=t6@ccvV6%tU`n?MkvG$wL)22 z65K1s4Ub=souI5K3EgMXutK<=FL-0RXK(27Oz&B&D+}GfUQh(@E}Uhz&-|jC7~J|V zx83`XPyYQ5dd#a?FI?2CBTd~yCHs;FT(%U&Mq9_i@ybg_>^`gD&g-!+{+<2tp`FLNzK^^4$z}7*>j_2A zo$#JncBRuA*XJAhV*PKO`<(l)9zQq17FgiedZMX$-UlCjon{LxJ&^f!OLM2{?AfFB z{tbtA9ZT)reYnfNcp&@2^cCV{$DD!KnUzQW{CV)r_PGPewOjg6?LDZ`9=qmA*^~Fj zVDrgS=hya6+xgCoexqqmSK98QgU!3*PHzcDSCX&w%v<-?j&n;)dp_6IULN|Pv*=RR zhv&D}{&efFZ$Ddcd*gV2&d_W9Ne3M7CJoM7?+sjxO({C)%awBm_*+!*WLac@OVvA>5zb zpWL5v8dEx#`;+@KT(6_^+QDlFuN~6$K+cHQ4qiKW?FhgBKl8fD>n5+8a#l*|TwXVM z-Q;zX*G*|F$QyBoaEEY*aEHii4e4y|5bhA}5bh9ZE65vhhj52*hj53;YYpja?hx(} z?hx(}X)DMZaffh+aEEY*$ZHMhZ0->55bhA}5NRvO8*ztlhj52*hsbLU>1^&0?hx(} t?ht7!$QyBoaEEY*aEHii4e4y|5bhA}5bh9ZE65vhhj52*hx|_+@(&J%zUBY` diff --git a/GCBM/layers/tiled/disturbances_2012_moja.json b/GCBM/layers/tiled/disturbances_2012_moja.json deleted file mode 100644 index 15500f70..00000000 --- a/GCBM/layers/tiled/disturbances_2012_moja.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "layer_type": "GridLayer", - "layer_data": "Byte", - "nodata": 255, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "blockLatSize": 0.1, - "blockLonSize": 0.1, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025, - "attributes": { - "1": { - "year": 2012, - "disturbance_type": "Wildfire", - "transition": 1 - } - } -} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2012_moja.tiff b/GCBM/layers/tiled/disturbances_2012_moja.tiff deleted file mode 100644 index 8a6beaa1fe4bed4224fce808bd8b4bd0be940d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26429 zcmeI%e@v8h90%~{fe;8TK)j6d0un+rN>oZPI8jc$j1+|s2!iM=h*+-iq6JYRbDEJk-pBE9mdNJJ$fn;{DUmIZ z$f6~(H8Zm54P7gd#fkPk!!N9Kr|r|s%&>0jjMq+Y-+k|R3eNNrq0)yI_8;&R<{u`)Id?NE8#F2Y2Urz@Piw^|_bLqx~I#5lVVq3j1OB{gfBOJ{UHi@*>y+ zLm!~r0L?JikMca&1p^{~) zx(86MgH6ySkn$AR2*pPzPl6553KJI6`Z_oUn{C_fAbVPq)fWpDsSET+5^_QUWclo!K381@+DMX(2khEZ;SW*Gc9<$16R20lS~ zF6@M=rIcsGcIX#Qc@{K5s9aBZCTxX18z|Sq7O2oto(`L#`!kg5U=wuNNO=lugyOT5C&312 zg$ePrz7CGT_~$6Eg%+sYM0ph)ftt;fSHNKyn?QLv9D>nXC_fAbVdPfI%isWvNTj?J z_QUWb%8Owi411pPBG>~%lPNbqGYsBFc^>S7fhm;d!cM5#PI)$LhkiRK&w?hXOr<;% zwn85r<$Blx6)#Yp4x6ES8s$3J1YKUFJOwsFF`e=x*Z{3CA%oV}!7&*B66Lkf0<|ww zUIj;>Mo)PK9EP#4P+ks);6%g7rTC1c>S<}zzx-Rc{p{3;!i}q^M~YK7KwJgKjRw(v zS3;ap6dX4rMBx{2(XFY(zE+qs_59F6cefKIj@NihDF_F%_I#{5n&WuC)%A(nV)s=J zn?(D|g~AVPpWkr1*S_?B9=4OUmjj43DZ*29( zOGhrwvyPWEjv8&%`PN}~-S}mXZ*QKQ|IyHudjJ2pJNx#E=gwSPo8(a-fK*2%eRhOZfrU>I#I1t$0#-%`fd7Nqa`_Q@1Z{?>cnHls7-sV zsRb5Ih)1`7pT%hHIhlCjxPP~Jtb38K%I2-=jxqZy`>xD0xA}fq5VTVr)Y==OSh}Nn z`PnV`>uec@^TKOmR@ZID-D=aj6X$(*eervw>B!&t9={#m-BVC=rd#OvX_e<2r&A{_ zfBk%`&97$sX7z^GtK&M}w_1BfCsT871)YkqX7{!^)!SM+PF?LA`?1)odvx)x49wPY zj%9L=>xa!Dy4!RT%$AdtxAV>~6#k6(GrE%}JU&19{N(df&UX&!F}L%}C|{d=ZSu7# zecj1P`P!U4e|U4(ao2Iz$!Rs|G2C_Bb+h3HEB8G2JomhGhs#O1=eg&(=kM(QMC3V+ z=Qy6@pEP9l{;L9U|Qh@>1>)?hx(} z?htuxAw7yaggb;gggZpK9pt6lA>1L{A>1MI+Cq91cL;X~cL;ZgbUVmPxkI=^xI?%@ PpF8gE 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 diff --git a/GCBM/layers/tiled/disturbances_2015_moja.json b/GCBM/layers/tiled/disturbances_2015_moja.json deleted file mode 100644 index 72869bdb..00000000 --- a/GCBM/layers/tiled/disturbances_2015_moja.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "layer_type": "GridLayer", - "layer_data": "Byte", - "nodata": 255, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "blockLatSize": 0.1, - "blockLonSize": 0.1, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025, - "attributes": { - "1": { - "year": 2015, - "disturbance_type": "Wildfire", - "transition": 1 - } - } -} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2015_moja.tiff b/GCBM/layers/tiled/disturbances_2015_moja.tiff deleted file mode 100644 index 3fea15096c5d1869d5c01ec609a614734cf58c65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26331 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 N^|gnrKjXeX{{ao@Z=(PJ diff --git a/GCBM/layers/tiled/disturbances_2018_moja.json b/GCBM/layers/tiled/disturbances_2018_moja.json deleted file mode 100644 index f7c50f24..00000000 --- a/GCBM/layers/tiled/disturbances_2018_moja.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "layer_type": "GridLayer", - "layer_data": "Byte", - "nodata": 255, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "blockLatSize": 0.1, - "blockLonSize": 0.1, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025, - "attributes": { - "1": { - "year": 2018, - "disturbance_type": "Mountain pine beetle — Low impact", - "transition": 1 - } - } -} \ No newline at end of file diff --git a/GCBM/layers/tiled/disturbances_2018_moja.tiff b/GCBM/layers/tiled/disturbances_2018_moja.tiff deleted file mode 100644 index 39ab4719f567fa33ecc87688579570e97a8ffe11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26282 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 aUC|BDo4hM_MK?fi@~+qw-2lA_yZRRrfRaW4 diff --git a/GCBM/layers/tiled/mean_annual_temperature_moja.json b/GCBM/layers/tiled/mean_annual_temperature_moja.json deleted file mode 100644 index 4a83b6e3..00000000 --- a/GCBM/layers/tiled/mean_annual_temperature_moja.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "layer_type": "GridLayer", - "layer_data": "Float32", - "nodata": 3.4e+38, - "tileLatSize": 1.0, - "tileLonSize": 1.0, - "blockLatSize": 0.1, - "blockLonSize": 0.1, - "cellLatSize": 0.00025, - "cellLonSize": 0.00025 -} \ No newline at end of file diff --git a/GCBM/layers/tiled/mean_annual_temperature_moja.tiff b/GCBM/layers/tiled/mean_annual_temperature_moja.tiff deleted file mode 100644 index 6f85a9dd8a052e5a56bc5186198b1681a7d01bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77865 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 zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ zb2BU>6_7kP!!l9<$#XL-BNdQ5H^VYg0m*YSEF%?=JU7EKQUS?xGb|$&kUTfTGExD_ HV>AB-+l?vS diff --git a/GCBM/layers/tiled/study_area.json b/GCBM/layers/tiled/study_area.json deleted file mode 100644 index bdedbc94..00000000 --- a/GCBM/layers/tiled/study_area.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "tile_size": 1.0, - "block_size": 0.1, - "tiles": [ - { - "x": -106, - "y": 55, - "index": 12674 - } - ], - "pixel_size": 0.00025, - "layers": [ - { - "name": "initial_age", - "type": "VectorLayer" - }, - { - "name": "mean_annual_temperature", - "type": "VectorLayer" - }, - { - "name": "Classifier1", - "type": "VectorLayer", - "tags": [ - "classifier" - ] - }, - { - "name": "Classifier2", - "type": "VectorLayer", - "tags": [ - "classifier" - ] - }, - { - "name": "disturbances_2011", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - }, - { - "name": "disturbances_2012", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - }, - { - "name": "disturbances_2013", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - }, - { - "name": "disturbances_2014", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - }, - { - "name": "disturbances_2015", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - }, - { - "name": "disturbances_2016", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - }, - { - "name": "disturbances_2018", - "type": "DisturbanceLayer", - "tags": [ - "disturbance" - ] - } - ] -} \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index d61f4afd..ab172729 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -1,8 +1,10 @@ from genericpath import isdir +from operator import index import os import pandas as pd import tabulate import zipfile +import json # Unzip file zip = os.path.join('..','..','..','GCBM_Demo_Run.zip') @@ -16,7 +18,14 @@ configs = os.listdir(os.path.join(GCBM_template_path,'config')) api_configs = pd.DataFrame({"Config files":configs}) output_config = f"Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation." -with open(os.path.join('GCBM_summary.txt'),'w') as outfile: + +# Simulation Information +with open(os.path.join(GCBM_template_path,'config','localdomain.json')) as ld: + localdomain = json.load(ld) +info = f" - Simulation Start Date : {localdomain['LocalDomain']['start_date']}\n - Simulation End Date : {localdomain['LocalDomain']['end_date']}" + +with open('GCBM_summary.txt','w') as outfile: outfile.write(api_inputs.to_markdown(index=False)+'\n\n') outfile.write(api_configs.to_markdown(index=False)+'\n\n') - outfile.write(output_config) + outfile.write(output_config+'\n\n') + outfile.write(info) \ No newline at end of file From 91f67d9bbad0a85d0aa7a904ba0fbb42a0720b85 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 16:47:33 +0300 Subject: [PATCH 042/196] add action to create new sim --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 87de6245..ff04ecbe 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -25,4 +25,6 @@ jobs: python create_cml_report.py echo "## GCBM Model" > report.md cat GCBM_summary.txt >> report.md + # Create,load and run sim using curl + curl -d "title=sim" -X POST http://localhost:8080/gcbm/new cml-send-comment report.md \ No newline at end of file From 2cd7271f2c81d273f14801e4f82dee8cc71b5c1d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:12:45 +0300 Subject: [PATCH 043/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 3 ++- local/rest_api_gcbm/cml_report/init_docker.py | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 local/rest_api_gcbm/cml_report/init_docker.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ff04ecbe..4e27598c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,5 +26,6 @@ jobs: echo "## GCBM Model" > report.md cat GCBM_summary.txt >> report.md # Create,load and run sim using curl - curl -d "title=sim" -X POST http://localhost:8080/gcbm/new + python init_docker.py + curl http://localhost:8080/gcbm/list cml-send-comment report.md \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/init_docker.py b/local/rest_api_gcbm/cml_report/init_docker.py new file mode 100644 index 00000000..d8ac5f6f --- /dev/null +++ b/local/rest_api_gcbm/cml_report/init_docker.py @@ -0,0 +1,5 @@ +import os + +os.system("docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .") +os.system("docker run --rm -p 8080:8080 gcbm-api") + From 35730207ea584851a2c220f08039dd5b563ab7a7 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:16:20 +0300 Subject: [PATCH 044/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4e27598c..95514276 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,6 +26,7 @@ jobs: echo "## GCBM Model" > report.md cat GCBM_summary.txt >> report.md # Create,load and run sim using curl + cd .. python init_docker.py curl http://localhost:8080/gcbm/list cml-send-comment report.md \ No newline at end of file From 2f993136c27a3f48ab52e8013f9f5b9ef74b7c1e Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:18:00 +0300 Subject: [PATCH 045/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 95514276..5372a6fc 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -27,6 +27,6 @@ jobs: cat GCBM_summary.txt >> report.md # Create,load and run sim using curl cd .. - python init_docker.py + python cml_report/init_docker.py curl http://localhost:8080/gcbm/list cml-send-comment report.md \ No newline at end of file From 9ea2b355a62d16e2b2ca65abee515cc7d9b7a6de Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:28:26 +0300 Subject: [PATCH 046/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 2 +- local/rest_api_gcbm/cml_report/init_docker.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 5372a6fc..53e04b09 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -29,4 +29,4 @@ jobs: cd .. python cml_report/init_docker.py curl http://localhost:8080/gcbm/list - cml-send-comment report.md \ No newline at end of file + # cml-send-comment report.md \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/init_docker.py b/local/rest_api_gcbm/cml_report/init_docker.py index d8ac5f6f..ade455af 100644 --- a/local/rest_api_gcbm/cml_report/init_docker.py +++ b/local/rest_api_gcbm/cml_report/init_docker.py @@ -1,5 +1,5 @@ import os os.system("docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .") -os.system("docker run --rm -p 8080:8080 gcbm-api") +os.system("docker run -d --rm -p 8080:8080 gcbm-api") From d3de7d0b967898e488909610d6bd9298dbc8726b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:39:04 +0300 Subject: [PATCH 047/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 53e04b09..82781c71 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -18,15 +18,15 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - python -m pip install --upgrade pip - cd local/rest_api_gcbm/cml_report - pip install pandas - pip install tabulate - python create_cml_report.py - echo "## GCBM Model" > report.md - cat GCBM_summary.txt >> report.md - # Create,load and run sim using curl - cd .. + # python -m pip install --upgrade pip + # cd local/rest_api_gcbm/cml_report + # pip install pandas + # pip install tabulate + # python create_cml_report.py + # echo "## GCBM Model" > report.md + # cat GCBM_summary.txt >> report.md + # # Create,load and run sim using curl + # cd .. python cml_report/init_docker.py curl http://localhost:8080/gcbm/list # cml-send-comment report.md \ No newline at end of file From 6838b7b4510c4348da839b401acaa788049edfd6 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:42:19 +0300 Subject: [PATCH 048/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 82781c71..9e892484 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,7 +26,7 @@ jobs: # echo "## GCBM Model" > report.md # cat GCBM_summary.txt >> report.md # # Create,load and run sim using curl - # cd .. - python cml_report/init_docker.py + # + python local/cml_report/init_docker.py curl http://localhost:8080/gcbm/list # cml-send-comment report.md \ No newline at end of file From e9dec2be292d6d2946ae0245d45a6b46526260c3 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:44:33 +0300 Subject: [PATCH 049/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9e892484..38b9b758 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -27,6 +27,6 @@ jobs: # cat GCBM_summary.txt >> report.md # # Create,load and run sim using curl # - python local/cml_report/init_docker.py + python local/rest_api_gcbm/cml_report/init_docker.py curl http://localhost:8080/gcbm/list # cml-send-comment report.md \ No newline at end of file From aa01b46993d6e864b57f6e3ae23b7cde82118281 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 17:47:53 +0300 Subject: [PATCH 050/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 38b9b758..06e79458 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -27,6 +27,7 @@ jobs: # cat GCBM_summary.txt >> report.md # # Create,load and run sim using curl # - python local/rest_api_gcbm/cml_report/init_docker.py + cd local/rest_api_gcbm + python cml_report/init_docker.py curl http://localhost:8080/gcbm/list # cml-send-comment report.md \ No newline at end of file From bed6c7aca77237332914ea6fab293059e10dd305 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 18:03:49 +0300 Subject: [PATCH 051/196] run api and get list of saved simulations --- .github/workflows/cml-report.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 06e79458..34565264 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,8 +26,7 @@ jobs: # echo "## GCBM Model" > report.md # cat GCBM_summary.txt >> report.md # # Create,load and run sim using curl - # cd local/rest_api_gcbm python cml_report/init_docker.py - curl http://localhost:8080/gcbm/list + curl http://0.0.0.0:8080/gcbm/list # cml-send-comment report.md \ No newline at end of file From b5788d8c4b82af53dfe1f7bdc56cdad93985a1ac Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 7 Jun 2022 18:11:31 +0300 Subject: [PATCH 052/196] create new sim and check if it works --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 34565264..4ada8fa7 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -28,5 +28,6 @@ jobs: # # Create,load and run sim using curl cd local/rest_api_gcbm python cml_report/init_docker.py + curl -d "title=sim" -X POST http://0.0.0.0:8080/gcbm/new curl http://0.0.0.0:8080/gcbm/list # cml-send-comment report.md \ No newline at end of file From 7db1fb91cdb57230ed9acbfcd0780302e22e8ca1 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 13:04:16 +0300 Subject: [PATCH 053/196] add script to get log files in CML action --- .github/workflows/cml-report.yml | 15 +- local/rest_api_gcbm/GCBM_summary.txt | 37 ---- .../cml_report/create_cml_report.py | 32 +-- local/rest_api_gcbm/cml_report/init_docker.py | 5 - local/tests/77cce3e812e1.txt | 185 ++++++++++++++++++ local/tests/simulation.txt | 6 + local/tests/simulation_status.py | 36 ++++ 7 files changed, 248 insertions(+), 68 deletions(-) delete mode 100644 local/rest_api_gcbm/GCBM_summary.txt delete mode 100644 local/rest_api_gcbm/cml_report/init_docker.py create mode 100644 local/tests/77cce3e812e1.txt create mode 100644 local/tests/simulation.txt create mode 100644 local/tests/simulation_status.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4ada8fa7..0f995849 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -19,15 +19,10 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | # python -m pip install --upgrade pip - # cd local/rest_api_gcbm/cml_report - # pip install pandas - # pip install tabulate - # python create_cml_report.py + cd local/rest_api_gcbm/cml_report + python create_cml_report.py # echo "## GCBM Model" > report.md # cat GCBM_summary.txt >> report.md - # # Create,load and run sim using curl - cd local/rest_api_gcbm - python cml_report/init_docker.py - curl -d "title=sim" -X POST http://0.0.0.0:8080/gcbm/new - curl http://0.0.0.0:8080/gcbm/list - # cml-send-comment report.md \ No newline at end of file + # cml-send-comment report.md + cd local/tests + python simulation_status.py \ No newline at end of file diff --git a/local/rest_api_gcbm/GCBM_summary.txt b/local/rest_api_gcbm/GCBM_summary.txt deleted file mode 100644 index fba7f691..00000000 --- a/local/rest_api_gcbm/GCBM_summary.txt +++ /dev/null @@ -1,37 +0,0 @@ -| Data Files | -|:----------------------------------------------------------| -| @\input\simulation_name\bounding_box.tiff | -| @\input\simulation_name\Classifier1_moja.json | -| @\input\simulation_name\Classifier1_moja.tiff | -| @\input\simulation_name\Classifier2_moja.json | -| @\input\simulation_name\Classifier2_moja.tiff | -| @\input\simulation_name\disturbances_2011_moja.json | -| @\input\simulation_name\disturbances_2011_moja.tiff | -| @\input\simulation_name\disturbances_2012_moja.json | -| @\input\simulation_name\disturbances_2012_moja.tiff | -| @\input\simulation_name\disturbances_2013_moja.json | -| @\input\simulation_name\disturbances_2013_moja.tiff | -| @\input\simulation_name\disturbances_2014_moja.json | -| @\input\simulation_name\disturbances_2014_moja.tiff | -| @\input\simulation_name\disturbances_2015_moja.json | -| @\input\simulation_name\disturbances_2015_moja.tiff | -| @\input\simulation_name\disturbances_2016_moja.json | -| @\input\simulation_name\disturbances_2016_moja.tiff | -| @\input\simulation_name\disturbances_2018_moja.json | -| @\input\simulation_name\disturbances_2018_moja.tiff | -| @\input\simulation_name\initial_age_moja.json | -| @\input\simulation_name\initial_age_moja.tiff | -| @\input\simulation_name\mean_annual_temperature_moja.json | -| @\input\simulation_name\mean_annual_temperature_moja.tiff | -| @\input\simulation_name\study_area.json || Config files | -|:------------------------------------------------| -| @\input\simulation_name\gcbm_config.cfg | -| @\input\simulation_name\internal_variables.json | -| @\input\simulation_name\localdomain.json | -| @\input\simulation_name\logging.conf | -| @\input\simulation_name\modules_cbm.json | -| @\input\simulation_name\modules_output.json | -| @\input\simulation_name\pools_cbm.json | -| @\input\simulation_name\provider_config.json | -| @\input\simulation_name\spinup.json | -| @\input\simulation_name\variables.json | \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index ab172729..66eff4dd 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -11,21 +11,21 @@ with zipfile.ZipFile(zip,'r') as zip_ref: zip_ref.extractall(os.path.join('..','..','..','GCBM')) -# Define input template as dataframes -GCBM_template_path = os.path.join('..','..','..','GCBM') -inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) -api_inputs = pd.DataFrame({"Data Files":inputs}) -configs = os.listdir(os.path.join(GCBM_template_path,'config')) -api_configs = pd.DataFrame({"Config files":configs}) -output_config = f"Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation." +# # Define input template as dataframes +# GCBM_template_path = os.path.join('..','..','..','GCBM') +# inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) +# api_inputs = pd.DataFrame({"Data Files":inputs}) +# configs = os.listdir(os.path.join(GCBM_template_path,'config')) +# api_configs = pd.DataFrame({"Config files":configs}) +# output_config = f"Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation." -# Simulation Information -with open(os.path.join(GCBM_template_path,'config','localdomain.json')) as ld: - localdomain = json.load(ld) -info = f" - Simulation Start Date : {localdomain['LocalDomain']['start_date']}\n - Simulation End Date : {localdomain['LocalDomain']['end_date']}" +# # Simulation Information +# with open(os.path.join(GCBM_template_path,'config','localdomain.json')) as ld: +# localdomain = json.load(ld) +# info = f" - Simulation Start Date : {localdomain['LocalDomain']['start_date']}\n - Simulation End Date : {localdomain['LocalDomain']['end_date']}" -with open('GCBM_summary.txt','w') as outfile: - outfile.write(api_inputs.to_markdown(index=False)+'\n\n') - outfile.write(api_configs.to_markdown(index=False)+'\n\n') - outfile.write(output_config+'\n\n') - outfile.write(info) \ No newline at end of file +# with open('GCBM_summary.txt','w') as outfile: +# outfile.write(api_inputs.to_markdown(index=False)+'\n\n') +# outfile.write(api_configs.to_markdown(index=False)+'\n\n') +# outfile.write(output_config+'\n\n') +# outfile.write(info) \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/init_docker.py b/local/rest_api_gcbm/cml_report/init_docker.py deleted file mode 100644 index ade455af..00000000 --- a/local/rest_api_gcbm/cml_report/init_docker.py +++ /dev/null @@ -1,5 +0,0 @@ -import os - -os.system("docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .") -os.system("docker run -d --rm -p 8080:8080 gcbm-api") - diff --git a/local/tests/77cce3e812e1.txt b/local/tests/77cce3e812e1.txt new file mode 100644 index 00000000..54046e4a --- /dev/null +++ b/local/tests/77cce3e812e1.txt @@ -0,0 +1,185 @@ +[2022-06-07 14:27:19 +0000] [1] [INFO] Starting gunicorn 20.1.0 +[2022-06-07 14:27:19 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1) +[2022-06-07 14:27:19 +0000] [1] [INFO] Using worker: gthread +[2022-06-07 14:27:19 +0000] [8] [INFO] Booting worker with pid: 8 +File not found: gcbm_config.cfgERROR:root:None +<2022-06-07 15:46:17.681895> (info) - Config has files: 7 +<2022-06-07 15:46:17.682198> (info) - Using Logging Configuration: /app/input/sim1/logging.conf +<2022-06-07 15:46:17.682248> (info) - Using configurations: +<2022-06-07 15:46:17.682269> (info) - localdomain.json +<2022-06-07 15:46:17.682340> (info) - pools_cbm.json +<2022-06-07 15:46:17.682401> (info) - modules_cbm.json +<2022-06-07 15:46:17.682431> (info) - modules_output.json +<2022-06-07 15:46:17.682482> (info) - spinup.json +<2022-06-07 15:46:17.682515> (info) - variables.json +<2022-06-07 15:46:17.682572> (info) - internal_variables.json +<2022-06-07 15:46:17.682601> (info) - Using provider configurations: +<2022-06-07 15:46:17.682655> (info) - provider_config.json +<2022-06-07 15:46:17.714263> (info) - Using operation manager: +<2022-06-07 15:46:17.714350> (info) - spinup ON, sequencer - CBMSpinupSequencer +<2022-06-07 15:46:17.839000> (info) - GCBM version: 1.0.0 +<2022-06-07 15:46:17.935849> (info) - 0:Queuing tile: ( 12674) 1 of 1 +<2022-06-07 15:46:17.936481> (info) - 0:Total Blocks queued for simulation: 100 +<2022-06-07 15:46:17.936534> (info) - 0:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' +<2022-06-07 15:46:17.936553> (info) - 0:Threads created for processing: 4 +<2022-06-07 15:46:17.938042> (info) - GCBM version: 1.0.0 +<2022-06-07 15:46:17.942679> (info) - 100:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' +<2022-06-07 15:46:17.942740> (info) - 100:Thread Created +<2022-06-07 15:46:17.943781> (info) - GCBM version: 1.0.0 +<2022-06-07 15:46:17.948851> (info) - 101:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' +<2022-06-07 15:46:17.948935> (info) - 101:Thread Created +<2022-06-07 15:46:17.949957> (info) - GCBM version: 1.0.0 +<2022-06-07 15:46:17.954626> (info) - 102:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' +<2022-06-07 15:46:17.954687> (info) - 102:Thread Created +<2022-06-07 15:46:17.955785> (info) - GCBM version: 1.0.0 +<2022-06-07 15:46:17.960358> (info) - 103:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' +<2022-06-07 15:46:17.960415> (info) - 103:Thread Created +<2022-06-07 15:46:17.960433> (info) - modules loaded: +<2022-06-07 15:46:17.960578> (info) - library: internal.flint, module name: TransactionManagerAfterSubmitModule +<2022-06-07 15:46:17.960627> (info) - library: moja.modules.cbm, module name: CBMAgeIndicators +<2022-06-07 15:46:17.960640> (info) - library: moja.modules.cbm, module name: CBMAggregatorLandUnitData +<2022-06-07 15:46:17.960647> (info) - library: moja.modules.cbm, module name: CBMAggregatorSQLiteWriter +<2022-06-07 15:46:17.960654> (info) - library: moja.modules.cbm, module name: CBMBuildLandUnitModule +<2022-06-07 15:46:17.960694> (info) - library: moja.modules.cbm, module name: CBMDecayModule +<2022-06-07 15:46:17.960738> (info) - library: moja.modules.cbm, module name: CBMDisturbanceEventModule +<2022-06-07 15:46:17.960750> (info) - library: moja.modules.cbm, module name: CBMDisturbanceListener +<2022-06-07 15:46:17.960757> (info) - library: moja.modules.cbm, module name: CBMGrowthModule +<2022-06-07 15:46:17.960764> (info) - library: moja.modules.cbm, module name: CBMLandClassTransitionModule +<2022-06-07 15:46:17.960770> (info) - library: moja.modules.cbm, module name: CBMSequencer +<2022-06-07 15:46:17.960778> (info) - library: moja.modules.cbm, module name: CBMTransitionRulesModule +<2022-06-07 15:46:17.960818> (info) - library: moja.modules.gdal, module name: WriteVariableGeotiff +<2022-06-07 15:46:17.960832> (info) - Operation manager: Simple, Version: 1.0, Config: (Kahan[OFF], ZeroTransfers[OFF], AllowNegativeTransfers[ON], WarnNegativeTransfers[OFF]) +<2022-06-07 15:46:17.962700> (info) - 100:Thread Started +<2022-06-07 15:46:17.962836> (info) - 101:Thread Started +<2022-06-07 15:46:17.962967> (info) - 102:Thread Started +<2022-06-07 15:46:17.963008> (info) - 103:Thread Started +<2022-06-07 15:46:20.573244> (info) - 103: Stats level [Block]: Record [ 100 of 100]: Index [( 12674, 0)]: Time(ms) [Total: 2230, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71746] +<2022-06-07 15:46:20.606427> (info) - 100: Stats level [Block]: Record [ 98 of 100]: Index [( 12674, 2)]: Time(ms) [Total: 2244, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71293] +<2022-06-07 15:46:20.642325> (info) - 102: Stats level [Block]: Record [ 99 of 100]: Index [( 12674, 1)]: Time(ms) [Total: 2299, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69594] +<2022-06-07 15:46:20.655591> (info) - 101: Stats level [Block]: Record [ 97 of 100]: Index [( 12674, 3)]: Time(ms) [Total: 2288, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69915] +<2022-06-07 15:46:22.775935> (info) - 102: Stats level [Block]: Record [ 94 of 100]: Index [( 12674, 6)]: Time(ms) [Total: 2133, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75006] +<2022-06-07 15:46:22.862101> (info) - 100: Stats level [Block]: Record [ 95 of 100]: Index [( 12674, 5)]: Time(ms) [Total: 2255, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70944] +<2022-06-07 15:46:22.941207> (info) - 101: Stats level [Block]: Record [ 93 of 100]: Index [( 12674, 7)]: Time(ms) [Total: 2285, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70015] +<2022-06-07 15:46:22.979674> (info) - 103: Stats level [Block]: Record [ 96 of 100]: Index [( 12674, 4)]: Time(ms) [Total: 2405, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66505] +<2022-06-07 15:46:24.910979> (info) - 102: Stats level [Block]: Record [ 92 of 100]: Index [( 12674, 8)]: Time(ms) [Total: 2134, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74954] +<2022-06-07 15:46:25.044153> (info) - 100: Stats level [Block]: Record [ 91 of 100]: Index [( 12674, 9)]: Time(ms) [Total: 2181, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73342] +<2022-06-07 15:46:25.241136> (info) - 103: Stats level [Block]: Record [ 89 of 100]: Index [( 12674, 11)]: Time(ms) [Total: 2261, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70761] +<2022-06-07 15:46:25.534531> (info) - 101: Stats level [Block]: Record [ 90 of 100]: Index [( 12674, 10)]: Time(ms) [Total: 2592, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61705] +<2022-06-07 15:46:27.106444> (info) - 100: Stats level [Block]: Record [ 87 of 100]: Index [( 12674, 13)]: Time(ms) [Total: 2061, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77598] +<2022-06-07 15:46:27.414036> (info) - 102: Stats level [Block]: Record [ 88 of 100]: Index [( 12674, 12)]: Time(ms) [Total: 2502, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63932] +<2022-06-07 15:46:27.800744> (info) - 103: Stats level [Block]: Record [ 86 of 100]: Index [( 12674, 14)]: Time(ms) [Total: 2559, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 62519] +<2022-06-07 15:46:27.878247> (info) - 101: Stats level [Block]: Record [ 85 of 100]: Index [( 12674, 15)]: Time(ms) [Total: 2343, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68281] +<2022-06-07 15:46:29.450820> (info) - 100: Stats level [Block]: Record [ 84 of 100]: Index [( 12674, 16)]: Time(ms) [Total: 2343, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68260] +<2022-06-07 15:46:29.858315> (info) - 102: Stats level [Block]: Record [ 83 of 100]: Index [( 12674, 17)]: Time(ms) [Total: 2443, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65469] +<2022-06-07 15:46:30.087907> (info) - 101: Stats level [Block]: Record [ 81 of 100]: Index [( 12674, 19)]: Time(ms) [Total: 2209, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72429] +<2022-06-07 15:46:30.129182> (info) - 103: Stats level [Block]: Record [ 82 of 100]: Index [( 12674, 18)]: Time(ms) [Total: 2327, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68732] +<2022-06-07 15:46:31.531188> (info) - 100: Stats level [Block]: Record [ 80 of 100]: Index [( 12674, 20)]: Time(ms) [Total: 2079, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76924] +<2022-06-07 15:46:31.879035> (info) - 102: Stats level [Block]: Record [ 79 of 100]: Index [( 12674, 21)]: Time(ms) [Total: 2020, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79194] +<2022-06-07 15:46:32.079628> (info) - 101: Stats level [Block]: Record [ 78 of 100]: Index [( 12674, 22)]: Time(ms) [Total: 1991, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80348] +<2022-06-07 15:46:32.094273> (info) - 103: Stats level [Block]: Record [ 77 of 100]: Index [( 12674, 23)]: Time(ms) [Total: 1964, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81434] +<2022-06-07 15:46:33.808071> (info) - 100: Stats level [Block]: Record [ 76 of 100]: Index [( 12674, 24)]: Time(ms) [Total: 2276, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70284] +<2022-06-07 15:46:33.862646> (info) - 102: Stats level [Block]: Record [ 75 of 100]: Index [( 12674, 25)]: Time(ms) [Total: 1983, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80676] +<2022-06-07 15:46:34.178220> (info) - 101: Stats level [Block]: Record [ 74 of 100]: Index [( 12674, 26)]: Time(ms) [Total: 2098, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76254] +<2022-06-07 15:46:34.528678> (info) - 103: Stats level [Block]: Record [ 73 of 100]: Index [( 12674, 27)]: Time(ms) [Total: 2434, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65733] +<2022-06-07 15:46:35.931882> (info) - 100: Stats level [Block]: Record [ 72 of 100]: Index [( 12674, 28)]: Time(ms) [Total: 2123, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75350] +<2022-06-07 15:46:36.020489> (info) - 102: Stats level [Block]: Record [ 71 of 100]: Index [( 12674, 29)]: Time(ms) [Total: 2157, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74159] +<2022-06-07 15:46:36.363144> (info) - 101: Stats level [Block]: Record [ 70 of 100]: Index [( 12674, 30)]: Time(ms) [Total: 2184, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73241] +<2022-06-07 15:46:36.699950> (info) - 103: Stats level [Block]: Record [ 69 of 100]: Index [( 12674, 31)]: Time(ms) [Total: 2170, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73702] +<2022-06-07 15:46:37.976141> (info) - 100: Stats level [Block]: Record [ 68 of 100]: Index [( 12674, 32)]: Time(ms) [Total: 2043, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78283] +<2022-06-07 15:46:38.483976> (info) - 101: Stats level [Block]: Record [ 66 of 100]: Index [( 12674, 34)]: Time(ms) [Total: 2120, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75458] +<2022-06-07 15:46:38.827394> (info) - 102: Stats level [Block]: Record [ 67 of 100]: Index [( 12674, 33)]: Time(ms) [Total: 2806, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 57011] +<2022-06-07 15:46:39.394974> (info) - 103: Stats level [Block]: Record [ 65 of 100]: Index [( 12674, 35)]: Time(ms) [Total: 2694, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59379] +<2022-06-07 15:46:40.605263> (info) - 100: Stats level [Block]: Record [ 64 of 100]: Index [( 12674, 36)]: Time(ms) [Total: 2628, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60866] +<2022-06-07 15:46:41.053897> (info) - 102: Stats level [Block]: Record [ 62 of 100]: Index [( 12674, 38)]: Time(ms) [Total: 2226, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71874] +<2022-06-07 15:46:41.152440> (info) - 101: Stats level [Block]: Record [ 63 of 100]: Index [( 12674, 37)]: Time(ms) [Total: 2668, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59968] +<2022-06-07 15:46:41.830788> (info) - 103: Stats level [Block]: Record [ 61 of 100]: Index [( 12674, 39)]: Time(ms) [Total: 2435, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65700] +<2022-06-07 15:46:42.785124> (info) - 100: Stats level [Block]: Record [ 60 of 100]: Index [( 12674, 40)]: Time(ms) [Total: 2179, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73412] +<2022-06-07 15:46:43.166636> (info) - 102: Stats level [Block]: Record [ 59 of 100]: Index [( 12674, 41)]: Time(ms) [Total: 2112, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75745] +<2022-06-07 15:46:43.334676> (info) - 101: Stats level [Block]: Record [ 58 of 100]: Index [( 12674, 42)]: Time(ms) [Total: 2181, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73330] +<2022-06-07 15:46:43.920518> (info) - 103: Stats level [Block]: Record [ 57 of 100]: Index [( 12674, 43)]: Time(ms) [Total: 2089, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76579] +<2022-06-07 15:46:44.785798> (info) - 100: Stats level [Block]: Record [ 56 of 100]: Index [( 12674, 44)]: Time(ms) [Total: 2000, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79989] +<2022-06-07 15:46:45.269679> (info) - 102: Stats level [Block]: Record [ 55 of 100]: Index [( 12674, 45)]: Time(ms) [Total: 2102, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76095] +<2022-06-07 15:46:45.587858> (info) - 101: Stats level [Block]: Record [ 54 of 100]: Index [( 12674, 46)]: Time(ms) [Total: 2252, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71021] +<2022-06-07 15:46:46.137128> (info) - 103: Stats level [Block]: Record [ 53 of 100]: Index [( 12674, 47)]: Time(ms) [Total: 2216, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72195] +<2022-06-07 15:46:46.982642> (info) - 100: Stats level [Block]: Record [ 52 of 100]: Index [( 12674, 48)]: Time(ms) [Total: 2196, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72844] +<2022-06-07 15:46:47.623350> (info) - 102: Stats level [Block]: Record [ 51 of 100]: Index [( 12674, 49)]: Time(ms) [Total: 2353, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 67989] +<2022-06-07 15:46:47.744606> (info) - 101: Stats level [Block]: Record [ 50 of 100]: Index [( 12674, 50)]: Time(ms) [Total: 2156, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74197] +<2022-06-07 15:46:48.990063> (info) - 100: Stats level [Block]: Record [ 48 of 100]: Index [( 12674, 52)]: Time(ms) [Total: 2006, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79722] +<2022-06-07 15:46:50.000754> (info) - 101: Stats level [Block]: Record [ 46 of 100]: Index [( 12674, 54)]: Time(ms) [Total: 2255, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70928] +<2022-06-07 15:46:50.515058> (info) - 102: Stats level [Block]: Record [ 47 of 100]: Index [( 12674, 53)]: Time(ms) [Total: 2891, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 55338] +<2022-06-07 15:46:51.204871> (info) - 100: Stats level [Block]: Record [ 45 of 100]: Index [( 12674, 55)]: Time(ms) [Total: 2214, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72255] +<2022-06-07 15:46:52.023380> (info) - 101: Stats level [Block]: Record [ 44 of 100]: Index [( 12674, 56)]: Time(ms) [Total: 2022, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79119] +<2022-06-07 15:46:53.455011> (info) - 102: Stats level [Block]: Record [ 43 of 100]: Index [( 12674, 57)]: Time(ms) [Total: 2939, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 54432] +<2022-06-07 15:46:53.627818> (info) - 100: Stats level [Block]: Record [ 42 of 100]: Index [( 12674, 58)]: Time(ms) [Total: 2422, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66045] +<2022-06-07 15:46:54.487695> (info) - 101: Stats level [Block]: Record [ 41 of 100]: Index [( 12674, 59)]: Time(ms) [Total: 2463, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64937] +<2022-06-07 15:46:55.522513> (info) - 102: Stats level [Block]: Record [ 40 of 100]: Index [( 12674, 60)]: Time(ms) [Total: 2067, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77403] +<2022-06-07 15:46:55.845862> (info) - 100: Stats level [Block]: Record [ 39 of 100]: Index [( 12674, 61)]: Time(ms) [Total: 2217, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72147] +<2022-06-07 15:46:56.444971> (info) - 101: Stats level [Block]: Record [ 38 of 100]: Index [( 12674, 62)]: Time(ms) [Total: 1956, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81761] +<2022-06-07 15:46:57.539287> (info) - 102: Stats level [Block]: Record [ 37 of 100]: Index [( 12674, 63)]: Time(ms) [Total: 2016, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79354] +<2022-06-07 15:46:58.011761> (info) - 100: Stats level [Block]: Record [ 36 of 100]: Index [( 12674, 64)]: Time(ms) [Total: 2165, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73886] +<2022-06-07 15:46:58.869365> (info) - 101: Stats level [Block]: Record [ 35 of 100]: Index [( 12674, 65)]: Time(ms) [Total: 2424, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66005] +<2022-06-07 15:46:59.969503> (info) - 100: Stats level [Block]: Record [ 33 of 100]: Index [( 12674, 67)]: Time(ms) [Total: 1957, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81742] +<2022-06-07 15:47:00.007090> (info) - 102: Stats level [Block]: Record [ 34 of 100]: Index [( 12674, 66)]: Time(ms) [Total: 2467, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64844] +<2022-06-07 15:47:01.101627> (info) - 101: Stats level [Block]: Record [ 32 of 100]: Index [( 12674, 68)]: Time(ms) [Total: 2231, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71687] +<2022-06-07 15:47:02.267593> (info) - 102: Stats level [Block]: Record [ 30 of 100]: Index [( 12674, 70)]: Time(ms) [Total: 2260, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70790] +<2022-06-07 15:47:02.432752> (info) - 100: Stats level [Block]: Record [ 31 of 100]: Index [( 12674, 69)]: Time(ms) [Total: 2462, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64964] +<2022-06-07 15:47:03.721274> (info) - 101: Stats level [Block]: Record [ 29 of 100]: Index [( 12674, 71)]: Time(ms) [Total: 2619, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61088] +<2022-06-07 15:47:04.274153> (info) - 102: Stats level [Block]: Record [ 28 of 100]: Index [( 12674, 72)]: Time(ms) [Total: 2006, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79754] +<2022-06-07 15:47:04.497280> (info) - 100: Stats level [Block]: Record [ 27 of 100]: Index [( 12674, 73)]: Time(ms) [Total: 2064, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77514] +<2022-06-07 15:47:05.895783> (info) - 101: Stats level [Block]: Record [ 26 of 100]: Index [( 12674, 74)]: Time(ms) [Total: 2174, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73592] +<2022-06-07 15:47:06.240673> (info) - 102: Stats level [Block]: Record [ 25 of 100]: Index [( 12674, 75)]: Time(ms) [Total: 1966, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81377] +<2022-06-07 15:47:06.493262> (info) - 100: Stats level [Block]: Record [ 24 of 100]: Index [( 12674, 76)]: Time(ms) [Total: 1995, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80174] +<2022-06-07 15:47:08.221330> (info) - 102: Stats level [Block]: Record [ 22 of 100]: Index [( 12674, 78)]: Time(ms) [Total: 1980, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80796] +<2022-06-07 15:47:08.287085> (info) - 101: Stats level [Block]: Record [ 23 of 100]: Index [( 12674, 77)]: Time(ms) [Total: 2390, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66921] +<2022-06-07 15:47:08.476018> (info) - 100: Stats level [Block]: Record [ 21 of 100]: Index [( 12674, 79)]: Time(ms) [Total: 1982, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80710] +<2022-06-07 15:47:10.276573> (info) - 101: Stats level [Block]: Record [ 19 of 100]: Index [( 12674, 81)]: Time(ms) [Total: 1989, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80437] +<2022-06-07 15:47:10.576332> (info) - 100: Stats level [Block]: Record [ 18 of 100]: Index [( 12674, 82)]: Time(ms) [Total: 2099, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76199] +<2022-06-07 15:47:10.945027> (info) - 102: Stats level [Block]: Record [ 20 of 100]: Index [( 12674, 80)]: Time(ms) [Total: 2723, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 58752] +<2022-06-07 15:47:12.342626> (info) - 101: Stats level [Block]: Record [ 17 of 100]: Index [( 12674, 83)]: Time(ms) [Total: 2065, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77457] +<2022-06-07 15:47:12.643550> (info) - 100: Stats level [Block]: Record [ 16 of 100]: Index [( 12674, 84)]: Time(ms) [Total: 2066, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77412] +<2022-06-07 15:47:12.996141> (info) - 102: Stats level [Block]: Record [ 15 of 100]: Index [( 12674, 85)]: Time(ms) [Total: 2050, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78028] +<2022-06-07 15:47:14.448038> (info) - 101: Stats level [Block]: Record [ 14 of 100]: Index [( 12674, 86)]: Time(ms) [Total: 2105, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76008] +<2022-06-07 15:47:14.659477> (info) - 100: Stats level [Block]: Record [ 13 of 100]: Index [( 12674, 87)]: Time(ms) [Total: 2015, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79381] +<2022-06-07 15:47:14.963544> (info) - 102: Stats level [Block]: Record [ 12 of 100]: Index [( 12674, 88)]: Time(ms) [Total: 1967, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81341] +<2022-06-07 15:47:16.469841> (info) - 101: Stats level [Block]: Record [ 11 of 100]: Index [( 12674, 89)]: Time(ms) [Total: 2021, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79151] +<2022-06-07 15:47:17.048810> (info) - 102: Stats level [Block]: Record [ 9 of 100]: Index [( 12674, 91)]: Time(ms) [Total: 2084, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76743] +<2022-06-07 15:47:17.258358> (info) - 100: Stats level [Block]: Record [ 10 of 100]: Index [( 12674, 90)]: Time(ms) [Total: 2598, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61575] +<2022-06-07 15:47:18.790985> (info) - 101: Stats level [Block]: Record [ 8 of 100]: Index [( 12674, 92)]: Time(ms) [Total: 2320, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68942] +<2022-06-07 15:47:19.458353> (info) - 102: Stats level [Block]: Record [ 7 of 100]: Index [( 12674, 93)]: Time(ms) [Total: 2409, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66412] +<2022-06-07 15:47:19.759307> (info) - 100: Stats level [Block]: Record [ 6 of 100]: Index [( 12674, 94)]: Time(ms) [Total: 2500, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63988] +<2022-06-07 15:47:21.010020> (info) - 101: Stats level [Block]: Record [ 5 of 100]: Index [( 12674, 95)]: Time(ms) [Total: 2218, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72118] +<2022-06-07 15:47:21.509144> (info) - 102: Stats level [Block]: Record [ 4 of 100]: Index [( 12674, 96)]: Time(ms) [Total: 2050, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78033] +<2022-06-07 15:47:22.248906> (info) - 100: Stats level [Block]: Record [ 3 of 100]: Index [( 12674, 97)]: Time(ms) [Total: 2489, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64276] +<2022-06-07 15:47:22.249276> (info) - 100:Thread Finished +<2022-06-07 15:47:23.313079> (info) - 101: Stats level [Block]: Record [ 2 of 100]: Index [( 12674, 98)]: Time(ms) [Total: 2302, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69489] +<2022-06-07 15:47:23.313468> (info) - 101:Thread Finished +<2022-06-07 15:47:23.973160> (info) - 102: Stats level [Block]: Record [ 1 of 100]: Index [( 12674, 99)]: Time(ms) [Total: 2463, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64944] +<2022-06-07 15:47:23.973502> (info) - 102:Thread Finished +<2022-06-07 15:51:25.513865> (info) - 103: Stats level [Block]: Record [ 49 of 100]: Index [( 12674, 51)]: Time(ms) [Total: 279376, Processed: 115253]: Units [Total: 160000, Processed: 11347, NotProcessed: 148653, Errors: 0, LU/second: 572] +<2022-06-07 15:51:27.168422> (info) - 103:Thread Finished +<2022-06-07 15:51:27.170829> (info) - 0:Summary of processing by Tile +<2022-06-07 15:51:27.170951> (info) - 0: Stats level [Tile]: Index [( 12674)]: Time(sec) [Total: 501000, Processed: 115000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 31898] +<2022-06-07 15:51:27.171001> (info) - 0:Summary of processing for full run +<2022-06-07 15:51:27.171049> (info) - 0: Stats level [Global]: Time(sec) [Total: 501000, Processed: 115000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 31898] +<2022-06-07 15:51:27.171066> (info) - 0:Start Time : Tue Jun 7 15:46:17 2022 UTC +<2022-06-07 15:51:27.171078> (info) - 0:Finish Time : Tue Jun 7 15:51:27 2022 UTC +<2022-06-07 15:51:27.171088> (info) - 0:Total Time (seconds) : 309 +<2022-06-07 15:51:27.171104> (info) - 0:Effective All LU/millisecond: 51 +<2022-06-07 15:51:27.171114> (info) - 0:Effective All LU/second: 51779 +<2022-06-07 15:51:27.171121> (info) - 0:Effective Processed LU/millisecond: 0 +<2022-06-07 15:51:27.171129> (info) - 0:Effective Processed LU/second: 36 +<2022-06-07 15:51:27.171175> (info) - Loading results into output/gcbm_output.db +<2022-06-07 15:51:27.404979> (info) - Loading DateDimension +<2022-06-07 15:51:27.421429> (info) - Loading PoolDimension +<2022-06-07 15:51:27.434155> (info) - Loading LandClassDimension +<2022-06-07 15:51:27.446762> (info) - Loading ModuleInfoDimension +<2022-06-07 15:51:27.459932> (info) - Loading AgeClassDimension +<2022-06-07 15:51:27.472400> (info) - Loading LocationDimension +<2022-06-07 15:51:27.485510> (info) - Loading DisturbanceTypeDimension +<2022-06-07 15:51:27.498183> (info) - Loading DisturbanceDimension +<2022-06-07 15:51:27.510905> (info) - Loading Pools +<2022-06-07 15:51:27.533899> (info) - Loading Fluxes +<2022-06-07 15:51:27.559850> (info) - Loading ErrorDimension +<2022-06-07 15:51:27.560122> (info) - Loading LocationErrorDimension +<2022-06-07 15:51:27.560255> (info) - Loading AgeArea +<2022-06-07 15:51:27.573013> (info) - SQLite insert complete. diff --git a/local/tests/simulation.txt b/local/tests/simulation.txt new file mode 100644 index 00000000..c87d9d5b --- /dev/null +++ b/local/tests/simulation.txt @@ -0,0 +1,6 @@ +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +77cce3e812e1 gcbm-api "gunicorn --bind :80…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp upbeat_aryabhata +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +77cce3e812e1 gcbm-api "gunicorn --bind :80…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp upbeat_aryabhata +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +77cce3e812e1 gcbm-api "gunicorn --bind :80…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp upbeat_aryabhata diff --git a/local/tests/simulation_status.py b/local/tests/simulation_status.py new file mode 100644 index 00000000..ff23a459 --- /dev/null +++ b/local/tests/simulation_status.py @@ -0,0 +1,36 @@ +""" +Author: @Namyalg +""" +import os +def get_container_id(): + """ + Return the container id corresponding to the image gcbm-api + """ + container_id = "" + os.system('docker ps >> simulation.txt') + with open('simulation.txt') as file_handle: + lines = file_handle.readlines() + for line in lines: + if 'gcbm-api' in line: + container_id = line.split()[0] + os.system('rm simulation.txt') + return container_id + + +def get_simulation_status(): + """ + If the container gcbm-api is running, the associated logs are returned + """ + container_id = get_container_id() + logs_file_name = container_id + ".txt" + if container_id != '': + logs_cmd = "docker logs " + container_id + " > " + logs_file_name + " 2>&1" + os.system(logs_cmd) + logs = [] + with open(logs_file_name) as file_handle: + logs = file_handle.readlines() + #os.system('rm ' + logs_file_name) + return {'container_running': True, 'logs': logs} + return {'container_running': False} + +print(get_simulation_status()) \ No newline at end of file From 660de46b8bc0f778d9c4de0824574e4c7f8b554b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 13:07:29 +0300 Subject: [PATCH 054/196] add script to get log files in CML action --- .github/workflows/cml-report.yml | 3 ++- local/rest_api_gcbm/cml_report/create_cml_report.py | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 0f995849..081dc0ea 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -25,4 +25,5 @@ jobs: # cat GCBM_summary.txt >> report.md # cml-send-comment report.md cd local/tests - python simulation_status.py \ No newline at end of file + python simulation_status.py + echo "Succesfully retrieved log files" \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index 66eff4dd..eee6724f 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -1,10 +1,10 @@ -from genericpath import isdir -from operator import index +# from genericpath import isdir +# from operator import index import os -import pandas as pd -import tabulate +# import pandas as pd +# import tabulate import zipfile -import json +# import json # Unzip file zip = os.path.join('..','..','..','GCBM_Demo_Run.zip') From ba737c869227b59bf9dfcad8ca30624f2239e18d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 13:10:14 +0300 Subject: [PATCH 055/196] fix some paths and get log files in CML action --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 081dc0ea..50418626 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -24,6 +24,6 @@ jobs: # echo "## GCBM Model" > report.md # cat GCBM_summary.txt >> report.md # cml-send-comment report.md - cd local/tests + cd ../../tests python simulation_status.py echo "Succesfully retrieved log files" \ No newline at end of file From 1b9d602bb1399d05f4523bf1a483819d5ea7cdbc Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 16:06:27 +0300 Subject: [PATCH 056/196] test if ci has docker --- .github/workflows/cml-report.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 50418626..8815ea6e 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,4 +26,7 @@ jobs: # cml-send-comment report.md cd ../../tests python simulation_status.py + # docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + # docker run -d --rm -p 8080:8080 gcbm-api + docker --version echo "Succesfully retrieved log files" \ No newline at end of file From 3901db663e2bf8df17c545196b7a34cb146d3e82 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 16:09:03 +0300 Subject: [PATCH 057/196] test curl on gcbm api --- .github/workflows/cml-report.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8815ea6e..a2cc4aae 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,7 +26,7 @@ jobs: # cml-send-comment report.md cd ../../tests python simulation_status.py - # docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - # docker run -d --rm -p 8080:8080 gcbm-api - docker --version + docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker run -d --rm -p 8080:8080 gcbm-api + curl -d "title=run4" -X POST http://localhost:8080/gcbm/new echo "Succesfully retrieved log files" \ No newline at end of file From 2b86fa14e4d267c9e690bcf9cac2159c2b02ceb1 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 16:10:40 +0300 Subject: [PATCH 058/196] test curl on gcbm api --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index a2cc4aae..81604349 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,7 +26,9 @@ jobs: # cml-send-comment report.md cd ../../tests python simulation_status.py + cd ../rest_api_gcbm docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --rm -p 8080:8080 gcbm-api + cd ../.. curl -d "title=run4" -X POST http://localhost:8080/gcbm/new echo "Succesfully retrieved log files" \ No newline at end of file From fa17d127667e08e603efc3a6092de110937fe91c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 16:18:21 +0300 Subject: [PATCH 059/196] update curl command --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 81604349..dda6ff88 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -30,5 +30,5 @@ jobs: docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --rm -p 8080:8080 gcbm-api cd ../.. - curl -d "title=run4" -X POST http://localhost:8080/gcbm/new + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new echo "Succesfully retrieved log files" \ No newline at end of file From 46de531367d0848d00202f2d6a9f5268e15252d1 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 17:13:43 +0300 Subject: [PATCH 060/196] add cli to api --- .github/workflows/cml-report.yml | 10 +++++----- local/rest_api_gcbm/cml_report/api_cli.py | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 local/rest_api_gcbm/cml_report/api_cli.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index dda6ff88..a3cf1282 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,9 +26,9 @@ jobs: # cml-send-comment report.md cd ../../tests python simulation_status.py - cd ../rest_api_gcbm - docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --rm -p 8080:8080 gcbm-api - cd ../.. - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + # cd ../rest_api_gcbm + # docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + # docker run -d --rm -p 8080:8080 gcbm-api + # cd ../.. + # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new echo "Succesfully retrieved log files" \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/api_cli.py b/local/rest_api_gcbm/cml_report/api_cli.py new file mode 100644 index 00000000..cbabee39 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/api_cli.py @@ -0,0 +1,14 @@ +import os +import sys +sys.path.append('../') +import app + +class API_CLI: + app = app() + def new_simulation(): + return app.gcbm_new() + + +cli = API_CLI() +res = cli.new_simulation() +print(res) From db21cef278ecd552d62decce17bc1d3bdba402b1 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 17:28:04 +0300 Subject: [PATCH 061/196] cli instead of curl to interact with gcbm api --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index a3cf1282..46a1040f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -29,6 +29,6 @@ jobs: # cd ../rest_api_gcbm # docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . # docker run -d --rm -p 8080:8080 gcbm-api - # cd ../.. - # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + cd cml_report + python api_cli.py echo "Succesfully retrieved log files" \ No newline at end of file From aca69984fd75386f0da8fe8244697e8ce455b4f1 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 17:29:26 +0300 Subject: [PATCH 062/196] cli instead of curl to interact with gcbm api --- .github/workflows/cml-report.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 46a1040f..10242e4d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -26,9 +26,10 @@ jobs: # cml-send-comment report.md cd ../../tests python simulation_status.py - # cd ../rest_api_gcbm - # docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - # docker run -d --rm -p 8080:8080 gcbm-api + echo "Succesfully retrieved log files" + cd ../rest_api_gcbm + docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker run -d --rm -p 8080:8080 gcbm-api cd cml_report python api_cli.py - echo "Succesfully retrieved log files" \ No newline at end of file + \ No newline at end of file From 9c0230edf85f8d1e7ef27fb2ecca06eef446839f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 18:02:29 +0300 Subject: [PATCH 063/196] Managed to retrieve logs from sim run localy --- .github/workflows/cml-report.yml | 15 +- local/rest_api_gcbm/cml_report/api_cli.py | 14 -- local/tests/77cce3e812e1.txt | 185 ---------------------- local/tests/9fced7a6d773.txt | 184 +++++++++++++++++++++ local/tests/simulation.txt | 8 +- 5 files changed, 191 insertions(+), 215 deletions(-) delete mode 100644 local/rest_api_gcbm/cml_report/api_cli.py delete mode 100644 local/tests/77cce3e812e1.txt create mode 100644 local/tests/9fced7a6d773.txt diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 10242e4d..4e5404ac 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -21,15 +21,10 @@ jobs: # python -m pip install --upgrade pip cd local/rest_api_gcbm/cml_report python create_cml_report.py - # echo "## GCBM Model" > report.md - # cat GCBM_summary.txt >> report.md - # cml-send-comment report.md cd ../../tests - python simulation_status.py - echo "Succesfully retrieved log files" - cd ../rest_api_gcbm - docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --rm -p 8080:8080 gcbm-api - cd cml_report - python api_cli.py + echo "## GCBM Model" > report.md + echo "### Log files" >> report.md + ls *.txt >> report.md + cml-send-comment report.md + \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/api_cli.py b/local/rest_api_gcbm/cml_report/api_cli.py deleted file mode 100644 index cbabee39..00000000 --- a/local/rest_api_gcbm/cml_report/api_cli.py +++ /dev/null @@ -1,14 +0,0 @@ -import os -import sys -sys.path.append('../') -import app - -class API_CLI: - app = app() - def new_simulation(): - return app.gcbm_new() - - -cli = API_CLI() -res = cli.new_simulation() -print(res) diff --git a/local/tests/77cce3e812e1.txt b/local/tests/77cce3e812e1.txt deleted file mode 100644 index 54046e4a..00000000 --- a/local/tests/77cce3e812e1.txt +++ /dev/null @@ -1,185 +0,0 @@ -[2022-06-07 14:27:19 +0000] [1] [INFO] Starting gunicorn 20.1.0 -[2022-06-07 14:27:19 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1) -[2022-06-07 14:27:19 +0000] [1] [INFO] Using worker: gthread -[2022-06-07 14:27:19 +0000] [8] [INFO] Booting worker with pid: 8 -File not found: gcbm_config.cfgERROR:root:None -<2022-06-07 15:46:17.681895> (info) - Config has files: 7 -<2022-06-07 15:46:17.682198> (info) - Using Logging Configuration: /app/input/sim1/logging.conf -<2022-06-07 15:46:17.682248> (info) - Using configurations: -<2022-06-07 15:46:17.682269> (info) - localdomain.json -<2022-06-07 15:46:17.682340> (info) - pools_cbm.json -<2022-06-07 15:46:17.682401> (info) - modules_cbm.json -<2022-06-07 15:46:17.682431> (info) - modules_output.json -<2022-06-07 15:46:17.682482> (info) - spinup.json -<2022-06-07 15:46:17.682515> (info) - variables.json -<2022-06-07 15:46:17.682572> (info) - internal_variables.json -<2022-06-07 15:46:17.682601> (info) - Using provider configurations: -<2022-06-07 15:46:17.682655> (info) - provider_config.json -<2022-06-07 15:46:17.714263> (info) - Using operation manager: -<2022-06-07 15:46:17.714350> (info) - spinup ON, sequencer - CBMSpinupSequencer -<2022-06-07 15:46:17.839000> (info) - GCBM version: 1.0.0 -<2022-06-07 15:46:17.935849> (info) - 0:Queuing tile: ( 12674) 1 of 1 -<2022-06-07 15:46:17.936481> (info) - 0:Total Blocks queued for simulation: 100 -<2022-06-07 15:46:17.936534> (info) - 0:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' -<2022-06-07 15:46:17.936553> (info) - 0:Threads created for processing: 4 -<2022-06-07 15:46:17.938042> (info) - GCBM version: 1.0.0 -<2022-06-07 15:46:17.942679> (info) - 100:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' -<2022-06-07 15:46:17.942740> (info) - 100:Thread Created -<2022-06-07 15:46:17.943781> (info) - GCBM version: 1.0.0 -<2022-06-07 15:46:17.948851> (info) - 101:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' -<2022-06-07 15:46:17.948935> (info) - 101:Thread Created -<2022-06-07 15:46:17.949957> (info) - GCBM version: 1.0.0 -<2022-06-07 15:46:17.954626> (info) - 102:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' -<2022-06-07 15:46:17.954687> (info) - 102:Thread Created -<2022-06-07 15:46:17.955785> (info) - GCBM version: 1.0.0 -<2022-06-07 15:46:17.960358> (info) - 103:Run ID = 'f863356c-e678-11ec-bc5f-0242ac110002' -<2022-06-07 15:46:17.960415> (info) - 103:Thread Created -<2022-06-07 15:46:17.960433> (info) - modules loaded: -<2022-06-07 15:46:17.960578> (info) - library: internal.flint, module name: TransactionManagerAfterSubmitModule -<2022-06-07 15:46:17.960627> (info) - library: moja.modules.cbm, module name: CBMAgeIndicators -<2022-06-07 15:46:17.960640> (info) - library: moja.modules.cbm, module name: CBMAggregatorLandUnitData -<2022-06-07 15:46:17.960647> (info) - library: moja.modules.cbm, module name: CBMAggregatorSQLiteWriter -<2022-06-07 15:46:17.960654> (info) - library: moja.modules.cbm, module name: CBMBuildLandUnitModule -<2022-06-07 15:46:17.960694> (info) - library: moja.modules.cbm, module name: CBMDecayModule -<2022-06-07 15:46:17.960738> (info) - library: moja.modules.cbm, module name: CBMDisturbanceEventModule -<2022-06-07 15:46:17.960750> (info) - library: moja.modules.cbm, module name: CBMDisturbanceListener -<2022-06-07 15:46:17.960757> (info) - library: moja.modules.cbm, module name: CBMGrowthModule -<2022-06-07 15:46:17.960764> (info) - library: moja.modules.cbm, module name: CBMLandClassTransitionModule -<2022-06-07 15:46:17.960770> (info) - library: moja.modules.cbm, module name: CBMSequencer -<2022-06-07 15:46:17.960778> (info) - library: moja.modules.cbm, module name: CBMTransitionRulesModule -<2022-06-07 15:46:17.960818> (info) - library: moja.modules.gdal, module name: WriteVariableGeotiff -<2022-06-07 15:46:17.960832> (info) - Operation manager: Simple, Version: 1.0, Config: (Kahan[OFF], ZeroTransfers[OFF], AllowNegativeTransfers[ON], WarnNegativeTransfers[OFF]) -<2022-06-07 15:46:17.962700> (info) - 100:Thread Started -<2022-06-07 15:46:17.962836> (info) - 101:Thread Started -<2022-06-07 15:46:17.962967> (info) - 102:Thread Started -<2022-06-07 15:46:17.963008> (info) - 103:Thread Started -<2022-06-07 15:46:20.573244> (info) - 103: Stats level [Block]: Record [ 100 of 100]: Index [( 12674, 0)]: Time(ms) [Total: 2230, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71746] -<2022-06-07 15:46:20.606427> (info) - 100: Stats level [Block]: Record [ 98 of 100]: Index [( 12674, 2)]: Time(ms) [Total: 2244, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71293] -<2022-06-07 15:46:20.642325> (info) - 102: Stats level [Block]: Record [ 99 of 100]: Index [( 12674, 1)]: Time(ms) [Total: 2299, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69594] -<2022-06-07 15:46:20.655591> (info) - 101: Stats level [Block]: Record [ 97 of 100]: Index [( 12674, 3)]: Time(ms) [Total: 2288, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69915] -<2022-06-07 15:46:22.775935> (info) - 102: Stats level [Block]: Record [ 94 of 100]: Index [( 12674, 6)]: Time(ms) [Total: 2133, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75006] -<2022-06-07 15:46:22.862101> (info) - 100: Stats level [Block]: Record [ 95 of 100]: Index [( 12674, 5)]: Time(ms) [Total: 2255, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70944] -<2022-06-07 15:46:22.941207> (info) - 101: Stats level [Block]: Record [ 93 of 100]: Index [( 12674, 7)]: Time(ms) [Total: 2285, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70015] -<2022-06-07 15:46:22.979674> (info) - 103: Stats level [Block]: Record [ 96 of 100]: Index [( 12674, 4)]: Time(ms) [Total: 2405, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66505] -<2022-06-07 15:46:24.910979> (info) - 102: Stats level [Block]: Record [ 92 of 100]: Index [( 12674, 8)]: Time(ms) [Total: 2134, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74954] -<2022-06-07 15:46:25.044153> (info) - 100: Stats level [Block]: Record [ 91 of 100]: Index [( 12674, 9)]: Time(ms) [Total: 2181, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73342] -<2022-06-07 15:46:25.241136> (info) - 103: Stats level [Block]: Record [ 89 of 100]: Index [( 12674, 11)]: Time(ms) [Total: 2261, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70761] -<2022-06-07 15:46:25.534531> (info) - 101: Stats level [Block]: Record [ 90 of 100]: Index [( 12674, 10)]: Time(ms) [Total: 2592, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61705] -<2022-06-07 15:46:27.106444> (info) - 100: Stats level [Block]: Record [ 87 of 100]: Index [( 12674, 13)]: Time(ms) [Total: 2061, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77598] -<2022-06-07 15:46:27.414036> (info) - 102: Stats level [Block]: Record [ 88 of 100]: Index [( 12674, 12)]: Time(ms) [Total: 2502, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63932] -<2022-06-07 15:46:27.800744> (info) - 103: Stats level [Block]: Record [ 86 of 100]: Index [( 12674, 14)]: Time(ms) [Total: 2559, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 62519] -<2022-06-07 15:46:27.878247> (info) - 101: Stats level [Block]: Record [ 85 of 100]: Index [( 12674, 15)]: Time(ms) [Total: 2343, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68281] -<2022-06-07 15:46:29.450820> (info) - 100: Stats level [Block]: Record [ 84 of 100]: Index [( 12674, 16)]: Time(ms) [Total: 2343, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68260] -<2022-06-07 15:46:29.858315> (info) - 102: Stats level [Block]: Record [ 83 of 100]: Index [( 12674, 17)]: Time(ms) [Total: 2443, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65469] -<2022-06-07 15:46:30.087907> (info) - 101: Stats level [Block]: Record [ 81 of 100]: Index [( 12674, 19)]: Time(ms) [Total: 2209, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72429] -<2022-06-07 15:46:30.129182> (info) - 103: Stats level [Block]: Record [ 82 of 100]: Index [( 12674, 18)]: Time(ms) [Total: 2327, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68732] -<2022-06-07 15:46:31.531188> (info) - 100: Stats level [Block]: Record [ 80 of 100]: Index [( 12674, 20)]: Time(ms) [Total: 2079, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76924] -<2022-06-07 15:46:31.879035> (info) - 102: Stats level [Block]: Record [ 79 of 100]: Index [( 12674, 21)]: Time(ms) [Total: 2020, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79194] -<2022-06-07 15:46:32.079628> (info) - 101: Stats level [Block]: Record [ 78 of 100]: Index [( 12674, 22)]: Time(ms) [Total: 1991, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80348] -<2022-06-07 15:46:32.094273> (info) - 103: Stats level [Block]: Record [ 77 of 100]: Index [( 12674, 23)]: Time(ms) [Total: 1964, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81434] -<2022-06-07 15:46:33.808071> (info) - 100: Stats level [Block]: Record [ 76 of 100]: Index [( 12674, 24)]: Time(ms) [Total: 2276, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70284] -<2022-06-07 15:46:33.862646> (info) - 102: Stats level [Block]: Record [ 75 of 100]: Index [( 12674, 25)]: Time(ms) [Total: 1983, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80676] -<2022-06-07 15:46:34.178220> (info) - 101: Stats level [Block]: Record [ 74 of 100]: Index [( 12674, 26)]: Time(ms) [Total: 2098, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76254] -<2022-06-07 15:46:34.528678> (info) - 103: Stats level [Block]: Record [ 73 of 100]: Index [( 12674, 27)]: Time(ms) [Total: 2434, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65733] -<2022-06-07 15:46:35.931882> (info) - 100: Stats level [Block]: Record [ 72 of 100]: Index [( 12674, 28)]: Time(ms) [Total: 2123, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75350] -<2022-06-07 15:46:36.020489> (info) - 102: Stats level [Block]: Record [ 71 of 100]: Index [( 12674, 29)]: Time(ms) [Total: 2157, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74159] -<2022-06-07 15:46:36.363144> (info) - 101: Stats level [Block]: Record [ 70 of 100]: Index [( 12674, 30)]: Time(ms) [Total: 2184, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73241] -<2022-06-07 15:46:36.699950> (info) - 103: Stats level [Block]: Record [ 69 of 100]: Index [( 12674, 31)]: Time(ms) [Total: 2170, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73702] -<2022-06-07 15:46:37.976141> (info) - 100: Stats level [Block]: Record [ 68 of 100]: Index [( 12674, 32)]: Time(ms) [Total: 2043, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78283] -<2022-06-07 15:46:38.483976> (info) - 101: Stats level [Block]: Record [ 66 of 100]: Index [( 12674, 34)]: Time(ms) [Total: 2120, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75458] -<2022-06-07 15:46:38.827394> (info) - 102: Stats level [Block]: Record [ 67 of 100]: Index [( 12674, 33)]: Time(ms) [Total: 2806, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 57011] -<2022-06-07 15:46:39.394974> (info) - 103: Stats level [Block]: Record [ 65 of 100]: Index [( 12674, 35)]: Time(ms) [Total: 2694, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59379] -<2022-06-07 15:46:40.605263> (info) - 100: Stats level [Block]: Record [ 64 of 100]: Index [( 12674, 36)]: Time(ms) [Total: 2628, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60866] -<2022-06-07 15:46:41.053897> (info) - 102: Stats level [Block]: Record [ 62 of 100]: Index [( 12674, 38)]: Time(ms) [Total: 2226, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71874] -<2022-06-07 15:46:41.152440> (info) - 101: Stats level [Block]: Record [ 63 of 100]: Index [( 12674, 37)]: Time(ms) [Total: 2668, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59968] -<2022-06-07 15:46:41.830788> (info) - 103: Stats level [Block]: Record [ 61 of 100]: Index [( 12674, 39)]: Time(ms) [Total: 2435, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65700] -<2022-06-07 15:46:42.785124> (info) - 100: Stats level [Block]: Record [ 60 of 100]: Index [( 12674, 40)]: Time(ms) [Total: 2179, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73412] -<2022-06-07 15:46:43.166636> (info) - 102: Stats level [Block]: Record [ 59 of 100]: Index [( 12674, 41)]: Time(ms) [Total: 2112, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75745] -<2022-06-07 15:46:43.334676> (info) - 101: Stats level [Block]: Record [ 58 of 100]: Index [( 12674, 42)]: Time(ms) [Total: 2181, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73330] -<2022-06-07 15:46:43.920518> (info) - 103: Stats level [Block]: Record [ 57 of 100]: Index [( 12674, 43)]: Time(ms) [Total: 2089, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76579] -<2022-06-07 15:46:44.785798> (info) - 100: Stats level [Block]: Record [ 56 of 100]: Index [( 12674, 44)]: Time(ms) [Total: 2000, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79989] -<2022-06-07 15:46:45.269679> (info) - 102: Stats level [Block]: Record [ 55 of 100]: Index [( 12674, 45)]: Time(ms) [Total: 2102, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76095] -<2022-06-07 15:46:45.587858> (info) - 101: Stats level [Block]: Record [ 54 of 100]: Index [( 12674, 46)]: Time(ms) [Total: 2252, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71021] -<2022-06-07 15:46:46.137128> (info) - 103: Stats level [Block]: Record [ 53 of 100]: Index [( 12674, 47)]: Time(ms) [Total: 2216, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72195] -<2022-06-07 15:46:46.982642> (info) - 100: Stats level [Block]: Record [ 52 of 100]: Index [( 12674, 48)]: Time(ms) [Total: 2196, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72844] -<2022-06-07 15:46:47.623350> (info) - 102: Stats level [Block]: Record [ 51 of 100]: Index [( 12674, 49)]: Time(ms) [Total: 2353, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 67989] -<2022-06-07 15:46:47.744606> (info) - 101: Stats level [Block]: Record [ 50 of 100]: Index [( 12674, 50)]: Time(ms) [Total: 2156, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74197] -<2022-06-07 15:46:48.990063> (info) - 100: Stats level [Block]: Record [ 48 of 100]: Index [( 12674, 52)]: Time(ms) [Total: 2006, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79722] -<2022-06-07 15:46:50.000754> (info) - 101: Stats level [Block]: Record [ 46 of 100]: Index [( 12674, 54)]: Time(ms) [Total: 2255, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70928] -<2022-06-07 15:46:50.515058> (info) - 102: Stats level [Block]: Record [ 47 of 100]: Index [( 12674, 53)]: Time(ms) [Total: 2891, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 55338] -<2022-06-07 15:46:51.204871> (info) - 100: Stats level [Block]: Record [ 45 of 100]: Index [( 12674, 55)]: Time(ms) [Total: 2214, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72255] -<2022-06-07 15:46:52.023380> (info) - 101: Stats level [Block]: Record [ 44 of 100]: Index [( 12674, 56)]: Time(ms) [Total: 2022, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79119] -<2022-06-07 15:46:53.455011> (info) - 102: Stats level [Block]: Record [ 43 of 100]: Index [( 12674, 57)]: Time(ms) [Total: 2939, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 54432] -<2022-06-07 15:46:53.627818> (info) - 100: Stats level [Block]: Record [ 42 of 100]: Index [( 12674, 58)]: Time(ms) [Total: 2422, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66045] -<2022-06-07 15:46:54.487695> (info) - 101: Stats level [Block]: Record [ 41 of 100]: Index [( 12674, 59)]: Time(ms) [Total: 2463, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64937] -<2022-06-07 15:46:55.522513> (info) - 102: Stats level [Block]: Record [ 40 of 100]: Index [( 12674, 60)]: Time(ms) [Total: 2067, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77403] -<2022-06-07 15:46:55.845862> (info) - 100: Stats level [Block]: Record [ 39 of 100]: Index [( 12674, 61)]: Time(ms) [Total: 2217, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72147] -<2022-06-07 15:46:56.444971> (info) - 101: Stats level [Block]: Record [ 38 of 100]: Index [( 12674, 62)]: Time(ms) [Total: 1956, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81761] -<2022-06-07 15:46:57.539287> (info) - 102: Stats level [Block]: Record [ 37 of 100]: Index [( 12674, 63)]: Time(ms) [Total: 2016, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79354] -<2022-06-07 15:46:58.011761> (info) - 100: Stats level [Block]: Record [ 36 of 100]: Index [( 12674, 64)]: Time(ms) [Total: 2165, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73886] -<2022-06-07 15:46:58.869365> (info) - 101: Stats level [Block]: Record [ 35 of 100]: Index [( 12674, 65)]: Time(ms) [Total: 2424, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66005] -<2022-06-07 15:46:59.969503> (info) - 100: Stats level [Block]: Record [ 33 of 100]: Index [( 12674, 67)]: Time(ms) [Total: 1957, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81742] -<2022-06-07 15:47:00.007090> (info) - 102: Stats level [Block]: Record [ 34 of 100]: Index [( 12674, 66)]: Time(ms) [Total: 2467, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64844] -<2022-06-07 15:47:01.101627> (info) - 101: Stats level [Block]: Record [ 32 of 100]: Index [( 12674, 68)]: Time(ms) [Total: 2231, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71687] -<2022-06-07 15:47:02.267593> (info) - 102: Stats level [Block]: Record [ 30 of 100]: Index [( 12674, 70)]: Time(ms) [Total: 2260, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70790] -<2022-06-07 15:47:02.432752> (info) - 100: Stats level [Block]: Record [ 31 of 100]: Index [( 12674, 69)]: Time(ms) [Total: 2462, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64964] -<2022-06-07 15:47:03.721274> (info) - 101: Stats level [Block]: Record [ 29 of 100]: Index [( 12674, 71)]: Time(ms) [Total: 2619, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61088] -<2022-06-07 15:47:04.274153> (info) - 102: Stats level [Block]: Record [ 28 of 100]: Index [( 12674, 72)]: Time(ms) [Total: 2006, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79754] -<2022-06-07 15:47:04.497280> (info) - 100: Stats level [Block]: Record [ 27 of 100]: Index [( 12674, 73)]: Time(ms) [Total: 2064, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77514] -<2022-06-07 15:47:05.895783> (info) - 101: Stats level [Block]: Record [ 26 of 100]: Index [( 12674, 74)]: Time(ms) [Total: 2174, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73592] -<2022-06-07 15:47:06.240673> (info) - 102: Stats level [Block]: Record [ 25 of 100]: Index [( 12674, 75)]: Time(ms) [Total: 1966, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81377] -<2022-06-07 15:47:06.493262> (info) - 100: Stats level [Block]: Record [ 24 of 100]: Index [( 12674, 76)]: Time(ms) [Total: 1995, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80174] -<2022-06-07 15:47:08.221330> (info) - 102: Stats level [Block]: Record [ 22 of 100]: Index [( 12674, 78)]: Time(ms) [Total: 1980, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80796] -<2022-06-07 15:47:08.287085> (info) - 101: Stats level [Block]: Record [ 23 of 100]: Index [( 12674, 77)]: Time(ms) [Total: 2390, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66921] -<2022-06-07 15:47:08.476018> (info) - 100: Stats level [Block]: Record [ 21 of 100]: Index [( 12674, 79)]: Time(ms) [Total: 1982, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80710] -<2022-06-07 15:47:10.276573> (info) - 101: Stats level [Block]: Record [ 19 of 100]: Index [( 12674, 81)]: Time(ms) [Total: 1989, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80437] -<2022-06-07 15:47:10.576332> (info) - 100: Stats level [Block]: Record [ 18 of 100]: Index [( 12674, 82)]: Time(ms) [Total: 2099, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76199] -<2022-06-07 15:47:10.945027> (info) - 102: Stats level [Block]: Record [ 20 of 100]: Index [( 12674, 80)]: Time(ms) [Total: 2723, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 58752] -<2022-06-07 15:47:12.342626> (info) - 101: Stats level [Block]: Record [ 17 of 100]: Index [( 12674, 83)]: Time(ms) [Total: 2065, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77457] -<2022-06-07 15:47:12.643550> (info) - 100: Stats level [Block]: Record [ 16 of 100]: Index [( 12674, 84)]: Time(ms) [Total: 2066, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77412] -<2022-06-07 15:47:12.996141> (info) - 102: Stats level [Block]: Record [ 15 of 100]: Index [( 12674, 85)]: Time(ms) [Total: 2050, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78028] -<2022-06-07 15:47:14.448038> (info) - 101: Stats level [Block]: Record [ 14 of 100]: Index [( 12674, 86)]: Time(ms) [Total: 2105, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76008] -<2022-06-07 15:47:14.659477> (info) - 100: Stats level [Block]: Record [ 13 of 100]: Index [( 12674, 87)]: Time(ms) [Total: 2015, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79381] -<2022-06-07 15:47:14.963544> (info) - 102: Stats level [Block]: Record [ 12 of 100]: Index [( 12674, 88)]: Time(ms) [Total: 1967, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81341] -<2022-06-07 15:47:16.469841> (info) - 101: Stats level [Block]: Record [ 11 of 100]: Index [( 12674, 89)]: Time(ms) [Total: 2021, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79151] -<2022-06-07 15:47:17.048810> (info) - 102: Stats level [Block]: Record [ 9 of 100]: Index [( 12674, 91)]: Time(ms) [Total: 2084, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76743] -<2022-06-07 15:47:17.258358> (info) - 100: Stats level [Block]: Record [ 10 of 100]: Index [( 12674, 90)]: Time(ms) [Total: 2598, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61575] -<2022-06-07 15:47:18.790985> (info) - 101: Stats level [Block]: Record [ 8 of 100]: Index [( 12674, 92)]: Time(ms) [Total: 2320, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68942] -<2022-06-07 15:47:19.458353> (info) - 102: Stats level [Block]: Record [ 7 of 100]: Index [( 12674, 93)]: Time(ms) [Total: 2409, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66412] -<2022-06-07 15:47:19.759307> (info) - 100: Stats level [Block]: Record [ 6 of 100]: Index [( 12674, 94)]: Time(ms) [Total: 2500, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63988] -<2022-06-07 15:47:21.010020> (info) - 101: Stats level [Block]: Record [ 5 of 100]: Index [( 12674, 95)]: Time(ms) [Total: 2218, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72118] -<2022-06-07 15:47:21.509144> (info) - 102: Stats level [Block]: Record [ 4 of 100]: Index [( 12674, 96)]: Time(ms) [Total: 2050, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78033] -<2022-06-07 15:47:22.248906> (info) - 100: Stats level [Block]: Record [ 3 of 100]: Index [( 12674, 97)]: Time(ms) [Total: 2489, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64276] -<2022-06-07 15:47:22.249276> (info) - 100:Thread Finished -<2022-06-07 15:47:23.313079> (info) - 101: Stats level [Block]: Record [ 2 of 100]: Index [( 12674, 98)]: Time(ms) [Total: 2302, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69489] -<2022-06-07 15:47:23.313468> (info) - 101:Thread Finished -<2022-06-07 15:47:23.973160> (info) - 102: Stats level [Block]: Record [ 1 of 100]: Index [( 12674, 99)]: Time(ms) [Total: 2463, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64944] -<2022-06-07 15:47:23.973502> (info) - 102:Thread Finished -<2022-06-07 15:51:25.513865> (info) - 103: Stats level [Block]: Record [ 49 of 100]: Index [( 12674, 51)]: Time(ms) [Total: 279376, Processed: 115253]: Units [Total: 160000, Processed: 11347, NotProcessed: 148653, Errors: 0, LU/second: 572] -<2022-06-07 15:51:27.168422> (info) - 103:Thread Finished -<2022-06-07 15:51:27.170829> (info) - 0:Summary of processing by Tile -<2022-06-07 15:51:27.170951> (info) - 0: Stats level [Tile]: Index [( 12674)]: Time(sec) [Total: 501000, Processed: 115000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 31898] -<2022-06-07 15:51:27.171001> (info) - 0:Summary of processing for full run -<2022-06-07 15:51:27.171049> (info) - 0: Stats level [Global]: Time(sec) [Total: 501000, Processed: 115000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 31898] -<2022-06-07 15:51:27.171066> (info) - 0:Start Time : Tue Jun 7 15:46:17 2022 UTC -<2022-06-07 15:51:27.171078> (info) - 0:Finish Time : Tue Jun 7 15:51:27 2022 UTC -<2022-06-07 15:51:27.171088> (info) - 0:Total Time (seconds) : 309 -<2022-06-07 15:51:27.171104> (info) - 0:Effective All LU/millisecond: 51 -<2022-06-07 15:51:27.171114> (info) - 0:Effective All LU/second: 51779 -<2022-06-07 15:51:27.171121> (info) - 0:Effective Processed LU/millisecond: 0 -<2022-06-07 15:51:27.171129> (info) - 0:Effective Processed LU/second: 36 -<2022-06-07 15:51:27.171175> (info) - Loading results into output/gcbm_output.db -<2022-06-07 15:51:27.404979> (info) - Loading DateDimension -<2022-06-07 15:51:27.421429> (info) - Loading PoolDimension -<2022-06-07 15:51:27.434155> (info) - Loading LandClassDimension -<2022-06-07 15:51:27.446762> (info) - Loading ModuleInfoDimension -<2022-06-07 15:51:27.459932> (info) - Loading AgeClassDimension -<2022-06-07 15:51:27.472400> (info) - Loading LocationDimension -<2022-06-07 15:51:27.485510> (info) - Loading DisturbanceTypeDimension -<2022-06-07 15:51:27.498183> (info) - Loading DisturbanceDimension -<2022-06-07 15:51:27.510905> (info) - Loading Pools -<2022-06-07 15:51:27.533899> (info) - Loading Fluxes -<2022-06-07 15:51:27.559850> (info) - Loading ErrorDimension -<2022-06-07 15:51:27.560122> (info) - Loading LocationErrorDimension -<2022-06-07 15:51:27.560255> (info) - Loading AgeArea -<2022-06-07 15:51:27.573013> (info) - SQLite insert complete. diff --git a/local/tests/9fced7a6d773.txt b/local/tests/9fced7a6d773.txt new file mode 100644 index 00000000..998cd772 --- /dev/null +++ b/local/tests/9fced7a6d773.txt @@ -0,0 +1,184 @@ +[2022-06-08 14:23:23 +0000] [1] [INFO] Starting gunicorn 20.1.0 +[2022-06-08 14:23:23 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1) +[2022-06-08 14:23:23 +0000] [1] [INFO] Using worker: gthread +[2022-06-08 14:23:23 +0000] [8] [INFO] Booting worker with pid: 8 +<2022-06-08 14:44:19.568263> (info) - Config has files: 7 +<2022-06-08 14:44:19.568534> (info) - Using Logging Configuration: /app/input/run4/logging.conf +<2022-06-08 14:44:19.568581> (info) - Using configurations: +<2022-06-08 14:44:19.568629> (info) - localdomain.json +<2022-06-08 14:44:19.568644> (info) - pools_cbm.json +<2022-06-08 14:44:19.568650> (info) - modules_cbm.json +<2022-06-08 14:44:19.568657> (info) - modules_output.json +<2022-06-08 14:44:19.568664> (info) - spinup.json +<2022-06-08 14:44:19.568670> (info) - variables.json +<2022-06-08 14:44:19.568676> (info) - internal_variables.json +<2022-06-08 14:44:19.568745> (info) - Using provider configurations: +<2022-06-08 14:44:19.568789> (info) - provider_config.json +<2022-06-08 14:44:19.598705> (info) - Using operation manager: +<2022-06-08 14:44:19.598789> (info) - spinup ON, sequencer - CBMSpinupSequencer +<2022-06-08 14:44:19.674860> (info) - GCBM version: 1.0.0 +<2022-06-08 14:44:19.763585> (info) - 0:Queuing tile: ( 12674) 1 of 1 +<2022-06-08 14:44:19.764238> (info) - 0:Total Blocks queued for simulation: 100 +<2022-06-08 14:44:19.764298> (info) - 0:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' +<2022-06-08 14:44:19.764334> (info) - 0:Threads created for processing: 4 +<2022-06-08 14:44:19.765733> (info) - GCBM version: 1.0.0 +<2022-06-08 14:44:19.770303> (info) - 100:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' +<2022-06-08 14:44:19.770367> (info) - 100:Thread Created +<2022-06-08 14:44:19.771411> (info) - GCBM version: 1.0.0 +<2022-06-08 14:44:19.775909> (info) - 101:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' +<2022-06-08 14:44:19.775984> (info) - 101:Thread Created +<2022-06-08 14:44:19.776967> (info) - GCBM version: 1.0.0 +<2022-06-08 14:44:19.781540> (info) - 102:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' +<2022-06-08 14:44:19.781598> (info) - 102:Thread Created +<2022-06-08 14:44:19.782603> (info) - GCBM version: 1.0.0 +<2022-06-08 14:44:19.787159> (info) - 103:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' +<2022-06-08 14:44:19.787218> (info) - 103:Thread Created +<2022-06-08 14:44:19.787236> (info) - modules loaded: +<2022-06-08 14:44:19.787348> (info) - library: internal.flint, module name: TransactionManagerAfterSubmitModule +<2022-06-08 14:44:19.787400> (info) - library: moja.modules.cbm, module name: CBMAgeIndicators +<2022-06-08 14:44:19.787412> (info) - library: moja.modules.cbm, module name: CBMAggregatorLandUnitData +<2022-06-08 14:44:19.787420> (info) - library: moja.modules.cbm, module name: CBMAggregatorSQLiteWriter +<2022-06-08 14:44:19.787427> (info) - library: moja.modules.cbm, module name: CBMBuildLandUnitModule +<2022-06-08 14:44:19.787434> (info) - library: moja.modules.cbm, module name: CBMDecayModule +<2022-06-08 14:44:19.787474> (info) - library: moja.modules.cbm, module name: CBMDisturbanceEventModule +<2022-06-08 14:44:19.787519> (info) - library: moja.modules.cbm, module name: CBMDisturbanceListener +<2022-06-08 14:44:19.787532> (info) - library: moja.modules.cbm, module name: CBMGrowthModule +<2022-06-08 14:44:19.787539> (info) - library: moja.modules.cbm, module name: CBMLandClassTransitionModule +<2022-06-08 14:44:19.787546> (info) - library: moja.modules.cbm, module name: CBMSequencer +<2022-06-08 14:44:19.787553> (info) - library: moja.modules.cbm, module name: CBMTransitionRulesModule +<2022-06-08 14:44:19.787560> (info) - library: moja.modules.gdal, module name: WriteVariableGeotiff +<2022-06-08 14:44:19.787573> (info) - Operation manager: Simple, Version: 1.0, Config: (Kahan[OFF], ZeroTransfers[OFF], AllowNegativeTransfers[ON], WarnNegativeTransfers[OFF]) +<2022-06-08 14:44:19.789440> (info) - 100:Thread Started +<2022-06-08 14:44:19.789660> (info) - 102:Thread Started +<2022-06-08 14:44:19.789642> (info) - 101:Thread Started +<2022-06-08 14:44:19.789754> (info) - 103:Thread Started +<2022-06-08 14:44:22.135006> (info) - 100: Stats level [Block]: Record [ 98 of 100]: Index [( 12674, 2)]: Time(ms) [Total: 1989, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80433] +<2022-06-08 14:44:22.545422> (info) - 103: Stats level [Block]: Record [ 99 of 100]: Index [( 12674, 1)]: Time(ms) [Total: 2401, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66620] +<2022-06-08 14:44:22.852594> (info) - 101: Stats level [Block]: Record [ 100 of 100]: Index [( 12674, 0)]: Time(ms) [Total: 2709, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59052] +<2022-06-08 14:44:23.274420> (info) - 102: Stats level [Block]: Record [ 97 of 100]: Index [( 12674, 3)]: Time(ms) [Total: 3128, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 51148] +<2022-06-08 14:44:24.122744> (info) - 100: Stats level [Block]: Record [ 96 of 100]: Index [( 12674, 4)]: Time(ms) [Total: 1987, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80512] +<2022-06-08 14:44:24.767113> (info) - 101: Stats level [Block]: Record [ 94 of 100]: Index [( 12674, 6)]: Time(ms) [Total: 1914, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83589] +<2022-06-08 14:44:24.896055> (info) - 103: Stats level [Block]: Record [ 95 of 100]: Index [( 12674, 5)]: Time(ms) [Total: 2350, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68083] +<2022-06-08 14:44:25.729612> (info) - 102: Stats level [Block]: Record [ 93 of 100]: Index [( 12674, 7)]: Time(ms) [Total: 2454, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65180] +<2022-06-08 14:44:26.310625> (info) - 100: Stats level [Block]: Record [ 92 of 100]: Index [( 12674, 8)]: Time(ms) [Total: 2187, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73143] +<2022-06-08 14:44:26.972637> (info) - 101: Stats level [Block]: Record [ 91 of 100]: Index [( 12674, 9)]: Time(ms) [Total: 2205, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72559] +<2022-06-08 14:44:27.179366> (info) - 103: Stats level [Block]: Record [ 90 of 100]: Index [( 12674, 10)]: Time(ms) [Total: 2282, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70083] +<2022-06-08 14:44:28.269339> (info) - 102: Stats level [Block]: Record [ 89 of 100]: Index [( 12674, 11)]: Time(ms) [Total: 2539, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63009] +<2022-06-08 14:44:28.546012> (info) - 100: Stats level [Block]: Record [ 88 of 100]: Index [( 12674, 12)]: Time(ms) [Total: 2234, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71594] +<2022-06-08 14:44:29.198935> (info) - 101: Stats level [Block]: Record [ 87 of 100]: Index [( 12674, 13)]: Time(ms) [Total: 2225, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71882] +<2022-06-08 14:44:29.213892> (info) - 103: Stats level [Block]: Record [ 86 of 100]: Index [( 12674, 14)]: Time(ms) [Total: 2034, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78656] +<2022-06-08 14:44:30.273870> (info) - 102: Stats level [Block]: Record [ 85 of 100]: Index [( 12674, 15)]: Time(ms) [Total: 2004, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79834] +<2022-06-08 14:44:30.629106> (info) - 100: Stats level [Block]: Record [ 84 of 100]: Index [( 12674, 16)]: Time(ms) [Total: 2082, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76823] +<2022-06-08 14:44:31.639737> (info) - 103: Stats level [Block]: Record [ 82 of 100]: Index [( 12674, 18)]: Time(ms) [Total: 2425, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65966] +<2022-06-08 14:44:31.836564> (info) - 101: Stats level [Block]: Record [ 83 of 100]: Index [( 12674, 17)]: Time(ms) [Total: 2637, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60671] +<2022-06-08 14:44:32.299625> (info) - 102: Stats level [Block]: Record [ 81 of 100]: Index [( 12674, 19)]: Time(ms) [Total: 2025, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79000] +<2022-06-08 14:44:33.024841> (info) - 100: Stats level [Block]: Record [ 80 of 100]: Index [( 12674, 20)]: Time(ms) [Total: 2395, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66797] +<2022-06-08 14:44:34.107767> (info) - 103: Stats level [Block]: Record [ 79 of 100]: Index [( 12674, 21)]: Time(ms) [Total: 2467, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64840] +<2022-06-08 14:44:34.174884> (info) - 101: Stats level [Block]: Record [ 78 of 100]: Index [( 12674, 22)]: Time(ms) [Total: 2337, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68437] +<2022-06-08 14:44:34.569791> (info) - 102: Stats level [Block]: Record [ 77 of 100]: Index [( 12674, 23)]: Time(ms) [Total: 2269, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70492] +<2022-06-08 14:44:35.173874> (info) - 100: Stats level [Block]: Record [ 76 of 100]: Index [( 12674, 24)]: Time(ms) [Total: 2148, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74472] +<2022-06-08 14:44:36.199401> (info) - 103: Stats level [Block]: Record [ 75 of 100]: Index [( 12674, 25)]: Time(ms) [Total: 2091, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76510] +<2022-06-08 14:44:36.259254> (info) - 101: Stats level [Block]: Record [ 74 of 100]: Index [( 12674, 26)]: Time(ms) [Total: 2083, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76783] +<2022-06-08 14:44:36.647514> (info) - 102: Stats level [Block]: Record [ 73 of 100]: Index [( 12674, 27)]: Time(ms) [Total: 2077, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77023] +<2022-06-08 14:44:37.317881> (info) - 100: Stats level [Block]: Record [ 72 of 100]: Index [( 12674, 28)]: Time(ms) [Total: 2143, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74646] +<2022-06-08 14:44:38.354734> (info) - 101: Stats level [Block]: Record [ 70 of 100]: Index [( 12674, 30)]: Time(ms) [Total: 2095, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76370] +<2022-06-08 14:44:38.371741> (info) - 103: Stats level [Block]: Record [ 71 of 100]: Index [( 12674, 29)]: Time(ms) [Total: 2171, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73666] +<2022-06-08 14:44:38.784855> (info) - 102: Stats level [Block]: Record [ 69 of 100]: Index [( 12674, 31)]: Time(ms) [Total: 2136, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74874] +<2022-06-08 14:44:39.319315> (info) - 100: Stats level [Block]: Record [ 68 of 100]: Index [( 12674, 32)]: Time(ms) [Total: 2001, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79958] +<2022-06-08 14:44:40.450608> (info) - 103: Stats level [Block]: Record [ 66 of 100]: Index [( 12674, 34)]: Time(ms) [Total: 2078, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76977] +<2022-06-08 14:44:40.457253> (info) - 101: Stats level [Block]: Record [ 67 of 100]: Index [( 12674, 33)]: Time(ms) [Total: 2102, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76113] +<2022-06-08 14:44:41.041367> (info) - 102: Stats level [Block]: Record [ 65 of 100]: Index [( 12674, 35)]: Time(ms) [Total: 2255, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70922] +<2022-06-08 14:44:41.389565> (info) - 100: Stats level [Block]: Record [ 64 of 100]: Index [( 12674, 36)]: Time(ms) [Total: 2069, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77299] +<2022-06-08 14:44:42.484601> (info) - 101: Stats level [Block]: Record [ 62 of 100]: Index [( 12674, 38)]: Time(ms) [Total: 2026, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78936] +<2022-06-08 14:44:42.971507> (info) - 103: Stats level [Block]: Record [ 63 of 100]: Index [( 12674, 37)]: Time(ms) [Total: 2520, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63481] +<2022-06-08 14:44:43.215242> (info) - 102: Stats level [Block]: Record [ 61 of 100]: Index [( 12674, 39)]: Time(ms) [Total: 2173, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73613] +<2022-06-08 14:44:43.988485> (info) - 100: Stats level [Block]: Record [ 60 of 100]: Index [( 12674, 40)]: Time(ms) [Total: 2598, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61573] +<2022-06-08 14:44:44.437550> (info) - 101: Stats level [Block]: Record [ 59 of 100]: Index [( 12674, 41)]: Time(ms) [Total: 1952, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81944] +<2022-06-08 14:44:45.040522> (info) - 103: Stats level [Block]: Record [ 58 of 100]: Index [( 12674, 42)]: Time(ms) [Total: 2068, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77345] +<2022-06-08 14:44:45.808614> (info) - 102: Stats level [Block]: Record [ 57 of 100]: Index [( 12674, 43)]: Time(ms) [Total: 2593, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61704] +<2022-06-08 14:44:46.288850> (info) - 100: Stats level [Block]: Record [ 56 of 100]: Index [( 12674, 44)]: Time(ms) [Total: 2299, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69570] +<2022-06-08 14:44:46.540136> (info) - 101: Stats level [Block]: Record [ 55 of 100]: Index [( 12674, 45)]: Time(ms) [Total: 2102, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76110] +<2022-06-08 14:44:47.012853> (info) - 103: Stats level [Block]: Record [ 54 of 100]: Index [( 12674, 46)]: Time(ms) [Total: 1971, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81140] +<2022-06-08 14:44:47.966940> (info) - 102: Stats level [Block]: Record [ 53 of 100]: Index [( 12674, 47)]: Time(ms) [Total: 2157, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74145] +<2022-06-08 14:44:48.497062> (info) - 101: Stats level [Block]: Record [ 51 of 100]: Index [( 12674, 49)]: Time(ms) [Total: 1956, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81774] +<2022-06-08 14:44:48.801030> (info) - 100: Stats level [Block]: Record [ 52 of 100]: Index [( 12674, 48)]: Time(ms) [Total: 2511, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63699] +<2022-06-08 14:44:49.261646> (info) - 103: Stats level [Block]: Record [ 50 of 100]: Index [( 12674, 50)]: Time(ms) [Total: 2248, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71160] +<2022-06-08 14:44:50.635845> (info) - 101: Stats level [Block]: Record [ 48 of 100]: Index [( 12674, 52)]: Time(ms) [Total: 2138, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74822] +<2022-06-08 14:44:51.080626> (info) - 100: Stats level [Block]: Record [ 47 of 100]: Index [( 12674, 53)]: Time(ms) [Total: 2279, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70201] +<2022-06-08 14:44:51.378529> (info) - 103: Stats level [Block]: Record [ 46 of 100]: Index [( 12674, 54)]: Time(ms) [Total: 2116, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75595] +<2022-06-08 14:44:52.918016> (info) - 101: Stats level [Block]: Record [ 45 of 100]: Index [( 12674, 55)]: Time(ms) [Total: 2281, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70125] +<2022-06-08 14:44:53.078435> (info) - 100: Stats level [Block]: Record [ 44 of 100]: Index [( 12674, 56)]: Time(ms) [Total: 1997, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80103] +<2022-06-08 14:44:53.361546> (info) - 103: Stats level [Block]: Record [ 43 of 100]: Index [( 12674, 57)]: Time(ms) [Total: 1982, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80700] +<2022-06-08 14:44:55.195447> (info) - 100: Stats level [Block]: Record [ 41 of 100]: Index [( 12674, 59)]: Time(ms) [Total: 2116, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75592] +<2022-06-08 14:44:55.254537> (info) - 101: Stats level [Block]: Record [ 42 of 100]: Index [( 12674, 58)]: Time(ms) [Total: 2336, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68488] +<2022-06-08 14:44:55.275682> (info) - 103: Stats level [Block]: Record [ 40 of 100]: Index [( 12674, 60)]: Time(ms) [Total: 1913, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83604] +<2022-06-08 14:44:57.346704> (info) - 103: Stats level [Block]: Record [ 37 of 100]: Index [( 12674, 63)]: Time(ms) [Total: 2070, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77270] +<2022-06-08 14:44:57.405394> (info) - 101: Stats level [Block]: Record [ 38 of 100]: Index [( 12674, 62)]: Time(ms) [Total: 2150, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74402] +<2022-06-08 14:44:57.811076> (info) - 100: Stats level [Block]: Record [ 39 of 100]: Index [( 12674, 61)]: Time(ms) [Total: 2615, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61183] +<2022-06-08 14:44:59.294345> (info) - 103: Stats level [Block]: Record [ 36 of 100]: Index [( 12674, 64)]: Time(ms) [Total: 1947, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 82167] +<2022-06-08 14:45:00.331148> (info) - 101: Stats level [Block]: Record [ 35 of 100]: Index [( 12674, 65)]: Time(ms) [Total: 2925, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 54693] +<2022-06-08 14:45:00.750797> (info) - 100: Stats level [Block]: Record [ 34 of 100]: Index [( 12674, 66)]: Time(ms) [Total: 2939, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 54433] +<2022-06-08 14:45:01.202980> (info) - 103: Stats level [Block]: Record [ 33 of 100]: Index [( 12674, 67)]: Time(ms) [Total: 1908, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83845] +<2022-06-08 14:45:02.657554> (info) - 101: Stats level [Block]: Record [ 32 of 100]: Index [( 12674, 68)]: Time(ms) [Total: 2326, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68787] +<2022-06-08 14:45:03.060340> (info) - 100: Stats level [Block]: Record [ 31 of 100]: Index [( 12674, 69)]: Time(ms) [Total: 2309, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69288] +<2022-06-08 14:45:03.441123> (info) - 103: Stats level [Block]: Record [ 30 of 100]: Index [( 12674, 70)]: Time(ms) [Total: 2237, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71501] +<2022-06-08 14:45:04.746330> (info) - 101: Stats level [Block]: Record [ 29 of 100]: Index [( 12674, 71)]: Time(ms) [Total: 2088, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76614] +<2022-06-08 14:45:05.730255> (info) - 103: Stats level [Block]: Record [ 27 of 100]: Index [( 12674, 73)]: Time(ms) [Total: 2288, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69906] +<2022-06-08 14:45:05.902639> (info) - 100: Stats level [Block]: Record [ 28 of 100]: Index [( 12674, 72)]: Time(ms) [Total: 2841, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 56299] +<2022-06-08 14:45:06.713909> (info) - 101: Stats level [Block]: Record [ 26 of 100]: Index [( 12674, 74)]: Time(ms) [Total: 1967, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81338] +<2022-06-08 14:45:07.827510> (info) - 100: Stats level [Block]: Record [ 24 of 100]: Index [( 12674, 76)]: Time(ms) [Total: 1924, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83139] +<2022-06-08 14:45:08.358385> (info) - 103: Stats level [Block]: Record [ 25 of 100]: Index [( 12674, 75)]: Time(ms) [Total: 2627, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60888] +<2022-06-08 14:45:08.753509> (info) - 101: Stats level [Block]: Record [ 23 of 100]: Index [( 12674, 77)]: Time(ms) [Total: 2039, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78461] +<2022-06-08 14:45:10.216847> (info) - 100: Stats level [Block]: Record [ 22 of 100]: Index [( 12674, 78)]: Time(ms) [Total: 2388, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66974] +<2022-06-08 14:45:10.626692> (info) - 103: Stats level [Block]: Record [ 21 of 100]: Index [( 12674, 79)]: Time(ms) [Total: 2267, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70553] +<2022-06-08 14:45:10.665304> (info) - 101: Stats level [Block]: Record [ 20 of 100]: Index [( 12674, 80)]: Time(ms) [Total: 1911, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83708] +<2022-06-08 14:45:12.294724> (info) - 100: Stats level [Block]: Record [ 19 of 100]: Index [( 12674, 81)]: Time(ms) [Total: 2077, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77015] +<2022-06-08 14:45:12.582084> (info) - 101: Stats level [Block]: Record [ 17 of 100]: Index [( 12674, 83)]: Time(ms) [Total: 1916, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83488] +<2022-06-08 14:45:13.340579> (info) - 103: Stats level [Block]: Record [ 18 of 100]: Index [( 12674, 82)]: Time(ms) [Total: 2713, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 58965] +<2022-06-08 14:45:14.253856> (info) - 100: Stats level [Block]: Record [ 16 of 100]: Index [( 12674, 84)]: Time(ms) [Total: 1958, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81685] +<2022-06-08 14:45:15.259308> (info) - 103: Stats level [Block]: Record [ 14 of 100]: Index [( 12674, 86)]: Time(ms) [Total: 1918, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83404] +<2022-06-08 14:45:15.269332> (info) - 101: Stats level [Block]: Record [ 15 of 100]: Index [( 12674, 85)]: Time(ms) [Total: 2686, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59548] +<2022-06-08 14:45:16.164710> (info) - 100: Stats level [Block]: Record [ 13 of 100]: Index [( 12674, 87)]: Time(ms) [Total: 1910, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83749] +<2022-06-08 14:45:17.561261> (info) - 103: Stats level [Block]: Record [ 12 of 100]: Index [( 12674, 88)]: Time(ms) [Total: 2301, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69517] +<2022-06-08 14:45:17.769894> (info) - 101: Stats level [Block]: Record [ 11 of 100]: Index [( 12674, 89)]: Time(ms) [Total: 2500, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63994] +<2022-06-08 14:45:18.422064> (info) - 100: Stats level [Block]: Record [ 10 of 100]: Index [( 12674, 90)]: Time(ms) [Total: 2256, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70891] +<2022-06-08 14:45:19.904884> (info) - 103: Stats level [Block]: Record [ 9 of 100]: Index [( 12674, 91)]: Time(ms) [Total: 2343, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68281] +<2022-06-08 14:45:20.333423> (info) - 101: Stats level [Block]: Record [ 8 of 100]: Index [( 12674, 92)]: Time(ms) [Total: 2563, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 62422] +<2022-06-08 14:45:20.333601> (info) - 100: Stats level [Block]: Record [ 7 of 100]: Index [( 12674, 93)]: Time(ms) [Total: 1911, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83718] +<2022-06-08 14:45:21.984112> (info) - 103: Stats level [Block]: Record [ 6 of 100]: Index [( 12674, 94)]: Time(ms) [Total: 2078, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76965] +<2022-06-08 14:45:22.284740> (info) - 100: Stats level [Block]: Record [ 4 of 100]: Index [( 12674, 96)]: Time(ms) [Total: 1949, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 82065] +<2022-06-08 14:45:22.981326> (info) - 101: Stats level [Block]: Record [ 5 of 100]: Index [( 12674, 95)]: Time(ms) [Total: 2647, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60435] +<2022-06-08 14:45:24.192321> (info) - 100: Stats level [Block]: Record [ 2 of 100]: Index [( 12674, 98)]: Time(ms) [Total: 1907, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83891] +<2022-06-08 14:45:24.192620> (info) - 100:Thread Finished +<2022-06-08 14:45:24.444463> (info) - 103: Stats level [Block]: Record [ 3 of 100]: Index [( 12674, 97)]: Time(ms) [Total: 2459, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65040] +<2022-06-08 14:45:24.444792> (info) - 103:Thread Finished +<2022-06-08 14:45:24.948797> (info) - 101: Stats level [Block]: Record [ 1 of 100]: Index [( 12674, 99)]: Time(ms) [Total: 1967, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81337] +<2022-06-08 14:45:24.949101> (info) - 101:Thread Finished +<2022-06-08 14:49:22.989861> (info) - 102: Stats level [Block]: Record [ 49 of 100]: Index [( 12674, 51)]: Time(ms) [Total: 275022, Processed: 114461]: Units [Total: 160000, Processed: 11347, NotProcessed: 148653, Errors: 0, LU/second: 581] +<2022-06-08 14:49:24.643884> (info) - 102:Thread Finished +<2022-06-08 14:49:24.646154> (info) - 0:Summary of processing by Tile +<2022-06-08 14:49:24.646311> (info) - 0: Stats level [Tile]: Index [( 12674)]: Time(sec) [Total: 495000, Processed: 114000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 32260] +<2022-06-08 14:49:24.646369> (info) - 0:Summary of processing for full run +<2022-06-08 14:49:24.646425> (info) - 0: Stats level [Global]: Time(sec) [Total: 495000, Processed: 114000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 32260] +<2022-06-08 14:49:24.646444> (info) - 0:Start Time : Wed Jun 8 14:44:19 2022 UTC +<2022-06-08 14:49:24.646505> (info) - 0:Finish Time : Wed Jun 8 14:49:24 2022 UTC +<2022-06-08 14:49:24.646521> (info) - 0:Total Time (seconds) : 304 +<2022-06-08 14:49:24.646538> (info) - 0:Effective All LU/millisecond: 52 +<2022-06-08 14:49:24.646549> (info) - 0:Effective All LU/second: 52631 +<2022-06-08 14:49:24.646556> (info) - 0:Effective Processed LU/millisecond: 0 +<2022-06-08 14:49:24.646564> (info) - 0:Effective Processed LU/second: 37 +<2022-06-08 14:49:24.646614> (info) - Loading results into output/gcbm_output.db +<2022-06-08 14:49:24.884877> (info) - Loading DateDimension +<2022-06-08 14:49:24.898438> (info) - Loading PoolDimension +<2022-06-08 14:49:24.911079> (info) - Loading LandClassDimension +<2022-06-08 14:49:24.923576> (info) - Loading ModuleInfoDimension +<2022-06-08 14:49:24.936061> (info) - Loading AgeClassDimension +<2022-06-08 14:49:24.948586> (info) - Loading LocationDimension +<2022-06-08 14:49:24.961662> (info) - Loading DisturbanceTypeDimension +<2022-06-08 14:49:24.974163> (info) - Loading DisturbanceDimension +<2022-06-08 14:49:24.987472> (info) - Loading Pools +<2022-06-08 14:49:25.012341> (info) - Loading Fluxes +<2022-06-08 14:49:25.038750> (info) - Loading ErrorDimension +<2022-06-08 14:49:25.038991> (info) - Loading LocationErrorDimension +<2022-06-08 14:49:25.039138> (info) - Loading AgeArea +<2022-06-08 14:49:25.051846> (info) - SQLite insert complete. diff --git a/local/tests/simulation.txt b/local/tests/simulation.txt index c87d9d5b..b9b6ec70 100644 --- a/local/tests/simulation.txt +++ b/local/tests/simulation.txt @@ -1,6 +1,2 @@ -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -77cce3e812e1 gcbm-api "gunicorn --bind :80…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp upbeat_aryabhata -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -77cce3e812e1 gcbm-api "gunicorn --bind :80…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp upbeat_aryabhata -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -77cce3e812e1 gcbm-api "gunicorn --bind :80…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp upbeat_aryabhata +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +9fced7a6d773 gcbm-api "gunicorn --bind :80…" 27 minutes ago Up 27 minutes 0.0.0.0:8080->8080/tcp cranky_moore From 62e6299400cbbe6d5021af6a8160a35c8599280a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 18:55:22 +0300 Subject: [PATCH 064/196] check if cURL works with api --- .github/workflows/cml-report.yml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4e5404ac..a1284ae5 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -7,6 +7,10 @@ jobs: - name: Checkout Repository uses: actions/checkout@v2 + - name: Setup cURL + uses: wei/curl@master + with: + args: https://reqbin.com/echo/get/json - name: Setup cml uses: iterative/setup-cml@v1 - name: Setup python @@ -19,12 +23,18 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | # python -m pip install --upgrade pip - cd local/rest_api_gcbm/cml_report - python create_cml_report.py - cd ../../tests - echo "## GCBM Model" > report.md - echo "### Log files" >> report.md - ls *.txt >> report.md - cml-send-comment report.md + # cd local/rest_api_gcbm/cml_report + # python create_cml_report.py + # cd ../../tests + # echo "## GCBM Model" > report.md + # echo "### Log files" >> report.md + # ls *.txt >> report.md + # cml-send-comment report.md + cd local/rest_api_gcbm + docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker run -d --rm -p 8080:8080 gcbm-api + cd ../.. + curl -d "title=run4" -X POST http://localhost:8080/gcbm/new + curl http://localhost:8080/gcbm/list \ No newline at end of file From 06238bfbf96ef06cef87fe007208cab8cad6ca52 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 19:14:34 +0300 Subject: [PATCH 065/196] check if cURL works with api in actions --- .github/workflows/cml-report.yml | 34 +++++++++++++------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index a1284ae5..ea9c75b3 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,11 +6,6 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - - name: Setup cURL - uses: wei/curl@master - with: - args: https://reqbin.com/echo/get/json - name: Setup cml uses: iterative/setup-cml@v1 - name: Setup python @@ -18,23 +13,22 @@ jobs: with: python-version: '3.x' - - name: Publish report + - name: Unzip Inputs and Build api env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - # python -m pip install --upgrade pip - # cd local/rest_api_gcbm/cml_report - # python create_cml_report.py - # cd ../../tests - # echo "## GCBM Model" > report.md - # echo "### Log files" >> report.md - # ls *.txt >> report.md - # cml-send-comment report.md - cd local/rest_api_gcbm + python -m pip install --upgrade pip + cd local/rest_api_gcbm/cml_report + python create_cml_report.py + cd .. docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --rm -p 8080:8080 gcbm-api - cd ../.. - curl -d "title=run4" -X POST http://localhost:8080/gcbm/new - curl http://localhost:8080/gcbm/list - - \ No newline at end of file + - name: Create New Simulation + uses: wei/curl@master + with: + args: -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + + - name: Get Simulation Status + uses: wei/curl@master + with: + args: -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status \ No newline at end of file From 97327b9c56018158abaaed50a7e9a48fe13be26d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 20:08:36 +0300 Subject: [PATCH 066/196] check if cURL works with public ip --- .github/workflows/cml-report.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ea9c75b3..34a98ecf 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -23,12 +23,20 @@ jobs: cd .. docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --rm -p 8080:8080 gcbm-api + - name: Get Public IP + id: ip + uses: haythem/public-ip@v1.2 + + - name: Print public IP + run: | + echo ${{ steps.ip.outputs.ipv4 }} + - name: Create New Simulation uses: wei/curl@master with: - args: -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + args: -d "title=run4" -X POST http://${{ steps.ip.outputs.ipv4 }}:8080/gcbm/new - - name: Get Simulation Status - uses: wei/curl@master - with: - args: -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status \ No newline at end of file + # - name: Get Simulation Status + # uses: wei/curl@master + # with: + # args: -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status \ No newline at end of file From ef13f95e6e797e7b7be96271dc342290b8dd4352 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 20:19:47 +0300 Subject: [PATCH 067/196] check if it works with webrequest --- .github/workflows/cml-report.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 34a98ecf..11fa0166 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -30,11 +30,13 @@ jobs: - name: Print public IP run: | echo ${{ steps.ip.outputs.ipv4 }} - - - name: Create New Simulation - uses: wei/curl@master - with: - args: -d "title=run4" -X POST http://${{ steps.ip.outputs.ipv4 }}:8080/gcbm/new + + - name: Create new Sim + uses: satak/webrequest-action@master + with: + url: http://${{ steps.ip.outputs.ipv4 }}/gcbm/new + method: POST + payload: '{ "name" : "run4" }' # - name: Get Simulation Status # uses: wei/curl@master From 7745d2c85d36c379abd3540524557a32c2479cf0 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 20:22:59 +0300 Subject: [PATCH 068/196] check if it works with webrequest --- .github/workflows/cml-report.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 11fa0166..2206a21d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -33,10 +33,10 @@ jobs: - name: Create new Sim uses: satak/webrequest-action@master - with: - url: http://${{ steps.ip.outputs.ipv4 }}/gcbm/new - method: POST - payload: '{ "name" : "run4" }' + with: + url: http://${{ steps.ip.outputs.ipv4 }}/gcbm/new + method: POST + payload: '{ "name" : "run4" }' # - name: Get Simulation Status # uses: wei/curl@master From 9a19e2fe81d8c89dd4ebf35a36ab46b7eabd7f01 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 20:29:20 +0300 Subject: [PATCH 069/196] check if it works with webrequest --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 2206a21d..3b36b7ad 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -36,7 +36,7 @@ jobs: with: url: http://${{ steps.ip.outputs.ipv4 }}/gcbm/new method: POST - payload: '{ "name" : "run4" }' + payload: '{ "title" : "run4" }' # - name: Get Simulation Status # uses: wei/curl@master From d128d5d474aa5b2d3a8b6dae0b9334c5bec2b1d2 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:03:42 +0300 Subject: [PATCH 070/196] check right ports --- .github/workflows/cml-report.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 3b36b7ad..8803bc78 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -13,16 +13,19 @@ jobs: with: python-version: '3.x' - - name: Unzip Inputs and Build api + - name: Unzip Inputs Build api env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | python -m pip install --upgrade pip cd local/rest_api_gcbm/cml_report python create_cml_report.py - cd .. + + - name: Build API + run: | docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --rm -p 8080:8080 gcbm-api + - name: Get Public IP id: ip uses: haythem/public-ip@v1.2 @@ -30,15 +33,10 @@ jobs: - name: Print public IP run: | echo ${{ steps.ip.outputs.ipv4 }} - - - name: Create new Sim - uses: satak/webrequest-action@master - with: - url: http://${{ steps.ip.outputs.ipv4 }}/gcbm/new - method: POST - payload: '{ "title" : "run4" }' - # - name: Get Simulation Status - # uses: wei/curl@master - # with: - # args: -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status \ No newline at end of file + - name: Check portd + run: | + sudo netstat -tunlp + # - name: Create New Sim + # run: | + # curl http://0.0.0.0: \ No newline at end of file From 811a293919be7788fce95ddaa422aa7d7186412f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:07:15 +0300 Subject: [PATCH 071/196] test in port 5000 --- .github/workflows/cml-report.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8803bc78..1c998742 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -24,7 +24,7 @@ jobs: - name: Build API run: | docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --rm -p 8080:8080 gcbm-api + docker run -d --rm -p 5000:5000 gcbm-api - name: Get Public IP id: ip @@ -37,6 +37,6 @@ jobs: - name: Check portd run: | sudo netstat -tunlp - # - name: Create New Sim - # run: | - # curl http://0.0.0.0: \ No newline at end of file + - name: Create New Sim + run: | + curl -d "title=run4" -X POST http://0.0.0.0:5000/gcbm/new \ No newline at end of file From 0313dab544620cd9330dbfa9ab363021fe1fcb33 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:10:32 +0300 Subject: [PATCH 072/196] test ports --- .github/workflows/cml-report.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1c998742..288ee4f8 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -23,8 +23,9 @@ jobs: - name: Build API run: | + cd local/rest_api_gcbm docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --rm -p 5000:5000 gcbm-api + docker run -d --rm -p 8080:8080 gcbm-api - name: Get Public IP id: ip @@ -34,9 +35,9 @@ jobs: run: | echo ${{ steps.ip.outputs.ipv4 }} - - name: Check portd + - name: Check ports run: | sudo netstat -tunlp - name: Create New Sim run: | - curl -d "title=run4" -X POST http://0.0.0.0:5000/gcbm/new \ No newline at end of file + curl -d "title=run4" -X http://0.0.0.0:8080/gcbm/new \ No newline at end of file From 7d3e5d75c055337a653653e392c6224b6c227d4e Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:11:56 +0300 Subject: [PATCH 073/196] test ports --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 288ee4f8..7c47fda0 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -40,4 +40,4 @@ jobs: sudo netstat -tunlp - name: Create New Sim run: | - curl -d "title=run4" -X http://0.0.0.0:8080/gcbm/new \ No newline at end of file + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new \ No newline at end of file From 167f6ce1938df6eb858d911e89ff9b01dccc13a7 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:36:03 +0300 Subject: [PATCH 074/196] check if simulation runs --- .github/workflows/cml-report.yml | 69 ++++++++++-- local/tests/9fced7a6d773.txt | 184 ------------------------------- local/tests/simulation.txt | 2 - 3 files changed, 61 insertions(+), 194 deletions(-) delete mode 100644 local/tests/9fced7a6d773.txt delete mode 100644 local/tests/simulation.txt diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 7c47fda0..8ec39f58 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -13,13 +13,13 @@ jobs: with: python-version: '3.x' - - name: Unzip Inputs Build api - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - python -m pip install --upgrade pip - cd local/rest_api_gcbm/cml_report - python create_cml_report.py + # - name: Unzip Inputs + # env: + # repo_token: ${{ secrets.GITHUB_TOKEN }} + # run: | + # python -m pip install --upgrade pip + # cd local/rest_api_gcbm/cml_report + # python create_cml_report.py - name: Build API run: | @@ -40,4 +40,57 @@ jobs: sudo netstat -tunlp - name: Create New Sim run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new \ No newline at end of file + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + - name: Unzip Files and Upload + run: | + cd local/rest_api_gcbm/cml_report + python create_cml_report.py + curl -F config_files='@config/variables.json' \ + -F config_files='@config/spinup.json' \ + -F config_files='@config/provider_config.json' \ + -F config_files='@config/pools_cbm.json' \ + -F config_files='@config/modules_output.json' \ + -F config_files='@config/modules_cbm.json' \ + -F config_files='@config/logging.conf' \ + -F config_files='@config/localdomain.json' \ + -F config_files='@config/internal_variables.json' \ + -F config_files='@config/gcbm_config.cfg' \ + -F input='@layers/tiled/bounding_box.tiff' \ + -F input='@layers/tiled/Classifier1_moja.json' \ + -F input='@layers/tiled/Classifier1_moja.tiff' \ + -F input='@layers/tiled/Classifier2_moja.json' \ + -F input='@layers/tiled/Classifier2_moja.tiff' \ + -F input='@layers/tiled/disturbances_2011_moja.json' \ + -F input='@layers/tiled/disturbances_2011_moja.tiff' \ + -F input='@layers/tiled/disturbances_2012_moja.json' \ + -F input='@layers/tiled/disturbances_2012_moja.tiff' \ + -F input='@layers/tiled/disturbances_2013_moja.json' \ + -F input='@layers/tiled/disturbances_2013_moja.tiff' \ + -F input='@layers/tiled/disturbances_2014_moja.json' \ + -F input='@layers/tiled/disturbances_2014_moja.tiff' \ + -F input='@layers/tiled/disturbances_2015_moja.json' \ + -F input='@layers/tiled/disturbances_2015_moja.tiff' \ + -F input='@layers/tiled/disturbances_2016_moja.json' \ + -F input='@layers/tiled/disturbances_2016_moja.tiff' \ + -F input='@layers/tiled/disturbances_2018_moja.json' \ + -F input='@layers/tiled/disturbances_2018_moja.tiff' \ + -F input='@layers/tiled/initial_age_moja.json' \ + -F input='@layers/tiled/initial_age_moja.tiff' \ + -F input='@layers/tiled/mean_annual_temperature_moja.json' \ + -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ + -F input='@layers/tiled/study_area.json' \ + -F input='@input_database/gcbm_input.db' \ + -F db='@input_database/gcbm_input.db' \ + -F title="run4" \ + http://0.0.0.0:8080/gcbm/upload + - name: Run Simulation + run: | + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic + cd local/tests + python simulation_status.py + echo "## GCBM Simulation Log" > report.md + cat *.txt >> report.md + cml-send-comment report.md + - name: Download Results + run: | + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip diff --git a/local/tests/9fced7a6d773.txt b/local/tests/9fced7a6d773.txt deleted file mode 100644 index 998cd772..00000000 --- a/local/tests/9fced7a6d773.txt +++ /dev/null @@ -1,184 +0,0 @@ -[2022-06-08 14:23:23 +0000] [1] [INFO] Starting gunicorn 20.1.0 -[2022-06-08 14:23:23 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1) -[2022-06-08 14:23:23 +0000] [1] [INFO] Using worker: gthread -[2022-06-08 14:23:23 +0000] [8] [INFO] Booting worker with pid: 8 -<2022-06-08 14:44:19.568263> (info) - Config has files: 7 -<2022-06-08 14:44:19.568534> (info) - Using Logging Configuration: /app/input/run4/logging.conf -<2022-06-08 14:44:19.568581> (info) - Using configurations: -<2022-06-08 14:44:19.568629> (info) - localdomain.json -<2022-06-08 14:44:19.568644> (info) - pools_cbm.json -<2022-06-08 14:44:19.568650> (info) - modules_cbm.json -<2022-06-08 14:44:19.568657> (info) - modules_output.json -<2022-06-08 14:44:19.568664> (info) - spinup.json -<2022-06-08 14:44:19.568670> (info) - variables.json -<2022-06-08 14:44:19.568676> (info) - internal_variables.json -<2022-06-08 14:44:19.568745> (info) - Using provider configurations: -<2022-06-08 14:44:19.568789> (info) - provider_config.json -<2022-06-08 14:44:19.598705> (info) - Using operation manager: -<2022-06-08 14:44:19.598789> (info) - spinup ON, sequencer - CBMSpinupSequencer -<2022-06-08 14:44:19.674860> (info) - GCBM version: 1.0.0 -<2022-06-08 14:44:19.763585> (info) - 0:Queuing tile: ( 12674) 1 of 1 -<2022-06-08 14:44:19.764238> (info) - 0:Total Blocks queued for simulation: 100 -<2022-06-08 14:44:19.764298> (info) - 0:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' -<2022-06-08 14:44:19.764334> (info) - 0:Threads created for processing: 4 -<2022-06-08 14:44:19.765733> (info) - GCBM version: 1.0.0 -<2022-06-08 14:44:19.770303> (info) - 100:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' -<2022-06-08 14:44:19.770367> (info) - 100:Thread Created -<2022-06-08 14:44:19.771411> (info) - GCBM version: 1.0.0 -<2022-06-08 14:44:19.775909> (info) - 101:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' -<2022-06-08 14:44:19.775984> (info) - 101:Thread Created -<2022-06-08 14:44:19.776967> (info) - GCBM version: 1.0.0 -<2022-06-08 14:44:19.781540> (info) - 102:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' -<2022-06-08 14:44:19.781598> (info) - 102:Thread Created -<2022-06-08 14:44:19.782603> (info) - GCBM version: 1.0.0 -<2022-06-08 14:44:19.787159> (info) - 103:Run ID = '7a98e53e-e739-11ec-9b00-0242ac110002' -<2022-06-08 14:44:19.787218> (info) - 103:Thread Created -<2022-06-08 14:44:19.787236> (info) - modules loaded: -<2022-06-08 14:44:19.787348> (info) - library: internal.flint, module name: TransactionManagerAfterSubmitModule -<2022-06-08 14:44:19.787400> (info) - library: moja.modules.cbm, module name: CBMAgeIndicators -<2022-06-08 14:44:19.787412> (info) - library: moja.modules.cbm, module name: CBMAggregatorLandUnitData -<2022-06-08 14:44:19.787420> (info) - library: moja.modules.cbm, module name: CBMAggregatorSQLiteWriter -<2022-06-08 14:44:19.787427> (info) - library: moja.modules.cbm, module name: CBMBuildLandUnitModule -<2022-06-08 14:44:19.787434> (info) - library: moja.modules.cbm, module name: CBMDecayModule -<2022-06-08 14:44:19.787474> (info) - library: moja.modules.cbm, module name: CBMDisturbanceEventModule -<2022-06-08 14:44:19.787519> (info) - library: moja.modules.cbm, module name: CBMDisturbanceListener -<2022-06-08 14:44:19.787532> (info) - library: moja.modules.cbm, module name: CBMGrowthModule -<2022-06-08 14:44:19.787539> (info) - library: moja.modules.cbm, module name: CBMLandClassTransitionModule -<2022-06-08 14:44:19.787546> (info) - library: moja.modules.cbm, module name: CBMSequencer -<2022-06-08 14:44:19.787553> (info) - library: moja.modules.cbm, module name: CBMTransitionRulesModule -<2022-06-08 14:44:19.787560> (info) - library: moja.modules.gdal, module name: WriteVariableGeotiff -<2022-06-08 14:44:19.787573> (info) - Operation manager: Simple, Version: 1.0, Config: (Kahan[OFF], ZeroTransfers[OFF], AllowNegativeTransfers[ON], WarnNegativeTransfers[OFF]) -<2022-06-08 14:44:19.789440> (info) - 100:Thread Started -<2022-06-08 14:44:19.789660> (info) - 102:Thread Started -<2022-06-08 14:44:19.789642> (info) - 101:Thread Started -<2022-06-08 14:44:19.789754> (info) - 103:Thread Started -<2022-06-08 14:44:22.135006> (info) - 100: Stats level [Block]: Record [ 98 of 100]: Index [( 12674, 2)]: Time(ms) [Total: 1989, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80433] -<2022-06-08 14:44:22.545422> (info) - 103: Stats level [Block]: Record [ 99 of 100]: Index [( 12674, 1)]: Time(ms) [Total: 2401, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66620] -<2022-06-08 14:44:22.852594> (info) - 101: Stats level [Block]: Record [ 100 of 100]: Index [( 12674, 0)]: Time(ms) [Total: 2709, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59052] -<2022-06-08 14:44:23.274420> (info) - 102: Stats level [Block]: Record [ 97 of 100]: Index [( 12674, 3)]: Time(ms) [Total: 3128, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 51148] -<2022-06-08 14:44:24.122744> (info) - 100: Stats level [Block]: Record [ 96 of 100]: Index [( 12674, 4)]: Time(ms) [Total: 1987, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80512] -<2022-06-08 14:44:24.767113> (info) - 101: Stats level [Block]: Record [ 94 of 100]: Index [( 12674, 6)]: Time(ms) [Total: 1914, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83589] -<2022-06-08 14:44:24.896055> (info) - 103: Stats level [Block]: Record [ 95 of 100]: Index [( 12674, 5)]: Time(ms) [Total: 2350, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68083] -<2022-06-08 14:44:25.729612> (info) - 102: Stats level [Block]: Record [ 93 of 100]: Index [( 12674, 7)]: Time(ms) [Total: 2454, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65180] -<2022-06-08 14:44:26.310625> (info) - 100: Stats level [Block]: Record [ 92 of 100]: Index [( 12674, 8)]: Time(ms) [Total: 2187, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73143] -<2022-06-08 14:44:26.972637> (info) - 101: Stats level [Block]: Record [ 91 of 100]: Index [( 12674, 9)]: Time(ms) [Total: 2205, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 72559] -<2022-06-08 14:44:27.179366> (info) - 103: Stats level [Block]: Record [ 90 of 100]: Index [( 12674, 10)]: Time(ms) [Total: 2282, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70083] -<2022-06-08 14:44:28.269339> (info) - 102: Stats level [Block]: Record [ 89 of 100]: Index [( 12674, 11)]: Time(ms) [Total: 2539, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63009] -<2022-06-08 14:44:28.546012> (info) - 100: Stats level [Block]: Record [ 88 of 100]: Index [( 12674, 12)]: Time(ms) [Total: 2234, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71594] -<2022-06-08 14:44:29.198935> (info) - 101: Stats level [Block]: Record [ 87 of 100]: Index [( 12674, 13)]: Time(ms) [Total: 2225, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71882] -<2022-06-08 14:44:29.213892> (info) - 103: Stats level [Block]: Record [ 86 of 100]: Index [( 12674, 14)]: Time(ms) [Total: 2034, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78656] -<2022-06-08 14:44:30.273870> (info) - 102: Stats level [Block]: Record [ 85 of 100]: Index [( 12674, 15)]: Time(ms) [Total: 2004, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79834] -<2022-06-08 14:44:30.629106> (info) - 100: Stats level [Block]: Record [ 84 of 100]: Index [( 12674, 16)]: Time(ms) [Total: 2082, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76823] -<2022-06-08 14:44:31.639737> (info) - 103: Stats level [Block]: Record [ 82 of 100]: Index [( 12674, 18)]: Time(ms) [Total: 2425, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65966] -<2022-06-08 14:44:31.836564> (info) - 101: Stats level [Block]: Record [ 83 of 100]: Index [( 12674, 17)]: Time(ms) [Total: 2637, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60671] -<2022-06-08 14:44:32.299625> (info) - 102: Stats level [Block]: Record [ 81 of 100]: Index [( 12674, 19)]: Time(ms) [Total: 2025, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79000] -<2022-06-08 14:44:33.024841> (info) - 100: Stats level [Block]: Record [ 80 of 100]: Index [( 12674, 20)]: Time(ms) [Total: 2395, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66797] -<2022-06-08 14:44:34.107767> (info) - 103: Stats level [Block]: Record [ 79 of 100]: Index [( 12674, 21)]: Time(ms) [Total: 2467, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 64840] -<2022-06-08 14:44:34.174884> (info) - 101: Stats level [Block]: Record [ 78 of 100]: Index [( 12674, 22)]: Time(ms) [Total: 2337, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68437] -<2022-06-08 14:44:34.569791> (info) - 102: Stats level [Block]: Record [ 77 of 100]: Index [( 12674, 23)]: Time(ms) [Total: 2269, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70492] -<2022-06-08 14:44:35.173874> (info) - 100: Stats level [Block]: Record [ 76 of 100]: Index [( 12674, 24)]: Time(ms) [Total: 2148, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74472] -<2022-06-08 14:44:36.199401> (info) - 103: Stats level [Block]: Record [ 75 of 100]: Index [( 12674, 25)]: Time(ms) [Total: 2091, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76510] -<2022-06-08 14:44:36.259254> (info) - 101: Stats level [Block]: Record [ 74 of 100]: Index [( 12674, 26)]: Time(ms) [Total: 2083, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76783] -<2022-06-08 14:44:36.647514> (info) - 102: Stats level [Block]: Record [ 73 of 100]: Index [( 12674, 27)]: Time(ms) [Total: 2077, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77023] -<2022-06-08 14:44:37.317881> (info) - 100: Stats level [Block]: Record [ 72 of 100]: Index [( 12674, 28)]: Time(ms) [Total: 2143, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74646] -<2022-06-08 14:44:38.354734> (info) - 101: Stats level [Block]: Record [ 70 of 100]: Index [( 12674, 30)]: Time(ms) [Total: 2095, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76370] -<2022-06-08 14:44:38.371741> (info) - 103: Stats level [Block]: Record [ 71 of 100]: Index [( 12674, 29)]: Time(ms) [Total: 2171, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73666] -<2022-06-08 14:44:38.784855> (info) - 102: Stats level [Block]: Record [ 69 of 100]: Index [( 12674, 31)]: Time(ms) [Total: 2136, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74874] -<2022-06-08 14:44:39.319315> (info) - 100: Stats level [Block]: Record [ 68 of 100]: Index [( 12674, 32)]: Time(ms) [Total: 2001, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 79958] -<2022-06-08 14:44:40.450608> (info) - 103: Stats level [Block]: Record [ 66 of 100]: Index [( 12674, 34)]: Time(ms) [Total: 2078, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76977] -<2022-06-08 14:44:40.457253> (info) - 101: Stats level [Block]: Record [ 67 of 100]: Index [( 12674, 33)]: Time(ms) [Total: 2102, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76113] -<2022-06-08 14:44:41.041367> (info) - 102: Stats level [Block]: Record [ 65 of 100]: Index [( 12674, 35)]: Time(ms) [Total: 2255, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70922] -<2022-06-08 14:44:41.389565> (info) - 100: Stats level [Block]: Record [ 64 of 100]: Index [( 12674, 36)]: Time(ms) [Total: 2069, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77299] -<2022-06-08 14:44:42.484601> (info) - 101: Stats level [Block]: Record [ 62 of 100]: Index [( 12674, 38)]: Time(ms) [Total: 2026, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78936] -<2022-06-08 14:44:42.971507> (info) - 103: Stats level [Block]: Record [ 63 of 100]: Index [( 12674, 37)]: Time(ms) [Total: 2520, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63481] -<2022-06-08 14:44:43.215242> (info) - 102: Stats level [Block]: Record [ 61 of 100]: Index [( 12674, 39)]: Time(ms) [Total: 2173, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 73613] -<2022-06-08 14:44:43.988485> (info) - 100: Stats level [Block]: Record [ 60 of 100]: Index [( 12674, 40)]: Time(ms) [Total: 2598, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61573] -<2022-06-08 14:44:44.437550> (info) - 101: Stats level [Block]: Record [ 59 of 100]: Index [( 12674, 41)]: Time(ms) [Total: 1952, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81944] -<2022-06-08 14:44:45.040522> (info) - 103: Stats level [Block]: Record [ 58 of 100]: Index [( 12674, 42)]: Time(ms) [Total: 2068, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77345] -<2022-06-08 14:44:45.808614> (info) - 102: Stats level [Block]: Record [ 57 of 100]: Index [( 12674, 43)]: Time(ms) [Total: 2593, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61704] -<2022-06-08 14:44:46.288850> (info) - 100: Stats level [Block]: Record [ 56 of 100]: Index [( 12674, 44)]: Time(ms) [Total: 2299, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69570] -<2022-06-08 14:44:46.540136> (info) - 101: Stats level [Block]: Record [ 55 of 100]: Index [( 12674, 45)]: Time(ms) [Total: 2102, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76110] -<2022-06-08 14:44:47.012853> (info) - 103: Stats level [Block]: Record [ 54 of 100]: Index [( 12674, 46)]: Time(ms) [Total: 1971, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81140] -<2022-06-08 14:44:47.966940> (info) - 102: Stats level [Block]: Record [ 53 of 100]: Index [( 12674, 47)]: Time(ms) [Total: 2157, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74145] -<2022-06-08 14:44:48.497062> (info) - 101: Stats level [Block]: Record [ 51 of 100]: Index [( 12674, 49)]: Time(ms) [Total: 1956, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81774] -<2022-06-08 14:44:48.801030> (info) - 100: Stats level [Block]: Record [ 52 of 100]: Index [( 12674, 48)]: Time(ms) [Total: 2511, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63699] -<2022-06-08 14:44:49.261646> (info) - 103: Stats level [Block]: Record [ 50 of 100]: Index [( 12674, 50)]: Time(ms) [Total: 2248, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71160] -<2022-06-08 14:44:50.635845> (info) - 101: Stats level [Block]: Record [ 48 of 100]: Index [( 12674, 52)]: Time(ms) [Total: 2138, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74822] -<2022-06-08 14:44:51.080626> (info) - 100: Stats level [Block]: Record [ 47 of 100]: Index [( 12674, 53)]: Time(ms) [Total: 2279, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70201] -<2022-06-08 14:44:51.378529> (info) - 103: Stats level [Block]: Record [ 46 of 100]: Index [( 12674, 54)]: Time(ms) [Total: 2116, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75595] -<2022-06-08 14:44:52.918016> (info) - 101: Stats level [Block]: Record [ 45 of 100]: Index [( 12674, 55)]: Time(ms) [Total: 2281, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70125] -<2022-06-08 14:44:53.078435> (info) - 100: Stats level [Block]: Record [ 44 of 100]: Index [( 12674, 56)]: Time(ms) [Total: 1997, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80103] -<2022-06-08 14:44:53.361546> (info) - 103: Stats level [Block]: Record [ 43 of 100]: Index [( 12674, 57)]: Time(ms) [Total: 1982, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 80700] -<2022-06-08 14:44:55.195447> (info) - 100: Stats level [Block]: Record [ 41 of 100]: Index [( 12674, 59)]: Time(ms) [Total: 2116, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 75592] -<2022-06-08 14:44:55.254537> (info) - 101: Stats level [Block]: Record [ 42 of 100]: Index [( 12674, 58)]: Time(ms) [Total: 2336, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68488] -<2022-06-08 14:44:55.275682> (info) - 103: Stats level [Block]: Record [ 40 of 100]: Index [( 12674, 60)]: Time(ms) [Total: 1913, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83604] -<2022-06-08 14:44:57.346704> (info) - 103: Stats level [Block]: Record [ 37 of 100]: Index [( 12674, 63)]: Time(ms) [Total: 2070, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77270] -<2022-06-08 14:44:57.405394> (info) - 101: Stats level [Block]: Record [ 38 of 100]: Index [( 12674, 62)]: Time(ms) [Total: 2150, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 74402] -<2022-06-08 14:44:57.811076> (info) - 100: Stats level [Block]: Record [ 39 of 100]: Index [( 12674, 61)]: Time(ms) [Total: 2615, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 61183] -<2022-06-08 14:44:59.294345> (info) - 103: Stats level [Block]: Record [ 36 of 100]: Index [( 12674, 64)]: Time(ms) [Total: 1947, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 82167] -<2022-06-08 14:45:00.331148> (info) - 101: Stats level [Block]: Record [ 35 of 100]: Index [( 12674, 65)]: Time(ms) [Total: 2925, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 54693] -<2022-06-08 14:45:00.750797> (info) - 100: Stats level [Block]: Record [ 34 of 100]: Index [( 12674, 66)]: Time(ms) [Total: 2939, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 54433] -<2022-06-08 14:45:01.202980> (info) - 103: Stats level [Block]: Record [ 33 of 100]: Index [( 12674, 67)]: Time(ms) [Total: 1908, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83845] -<2022-06-08 14:45:02.657554> (info) - 101: Stats level [Block]: Record [ 32 of 100]: Index [( 12674, 68)]: Time(ms) [Total: 2326, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68787] -<2022-06-08 14:45:03.060340> (info) - 100: Stats level [Block]: Record [ 31 of 100]: Index [( 12674, 69)]: Time(ms) [Total: 2309, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69288] -<2022-06-08 14:45:03.441123> (info) - 103: Stats level [Block]: Record [ 30 of 100]: Index [( 12674, 70)]: Time(ms) [Total: 2237, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 71501] -<2022-06-08 14:45:04.746330> (info) - 101: Stats level [Block]: Record [ 29 of 100]: Index [( 12674, 71)]: Time(ms) [Total: 2088, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76614] -<2022-06-08 14:45:05.730255> (info) - 103: Stats level [Block]: Record [ 27 of 100]: Index [( 12674, 73)]: Time(ms) [Total: 2288, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69906] -<2022-06-08 14:45:05.902639> (info) - 100: Stats level [Block]: Record [ 28 of 100]: Index [( 12674, 72)]: Time(ms) [Total: 2841, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 56299] -<2022-06-08 14:45:06.713909> (info) - 101: Stats level [Block]: Record [ 26 of 100]: Index [( 12674, 74)]: Time(ms) [Total: 1967, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81338] -<2022-06-08 14:45:07.827510> (info) - 100: Stats level [Block]: Record [ 24 of 100]: Index [( 12674, 76)]: Time(ms) [Total: 1924, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83139] -<2022-06-08 14:45:08.358385> (info) - 103: Stats level [Block]: Record [ 25 of 100]: Index [( 12674, 75)]: Time(ms) [Total: 2627, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60888] -<2022-06-08 14:45:08.753509> (info) - 101: Stats level [Block]: Record [ 23 of 100]: Index [( 12674, 77)]: Time(ms) [Total: 2039, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 78461] -<2022-06-08 14:45:10.216847> (info) - 100: Stats level [Block]: Record [ 22 of 100]: Index [( 12674, 78)]: Time(ms) [Total: 2388, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 66974] -<2022-06-08 14:45:10.626692> (info) - 103: Stats level [Block]: Record [ 21 of 100]: Index [( 12674, 79)]: Time(ms) [Total: 2267, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70553] -<2022-06-08 14:45:10.665304> (info) - 101: Stats level [Block]: Record [ 20 of 100]: Index [( 12674, 80)]: Time(ms) [Total: 1911, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83708] -<2022-06-08 14:45:12.294724> (info) - 100: Stats level [Block]: Record [ 19 of 100]: Index [( 12674, 81)]: Time(ms) [Total: 2077, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 77015] -<2022-06-08 14:45:12.582084> (info) - 101: Stats level [Block]: Record [ 17 of 100]: Index [( 12674, 83)]: Time(ms) [Total: 1916, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83488] -<2022-06-08 14:45:13.340579> (info) - 103: Stats level [Block]: Record [ 18 of 100]: Index [( 12674, 82)]: Time(ms) [Total: 2713, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 58965] -<2022-06-08 14:45:14.253856> (info) - 100: Stats level [Block]: Record [ 16 of 100]: Index [( 12674, 84)]: Time(ms) [Total: 1958, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81685] -<2022-06-08 14:45:15.259308> (info) - 103: Stats level [Block]: Record [ 14 of 100]: Index [( 12674, 86)]: Time(ms) [Total: 1918, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83404] -<2022-06-08 14:45:15.269332> (info) - 101: Stats level [Block]: Record [ 15 of 100]: Index [( 12674, 85)]: Time(ms) [Total: 2686, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 59548] -<2022-06-08 14:45:16.164710> (info) - 100: Stats level [Block]: Record [ 13 of 100]: Index [( 12674, 87)]: Time(ms) [Total: 1910, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83749] -<2022-06-08 14:45:17.561261> (info) - 103: Stats level [Block]: Record [ 12 of 100]: Index [( 12674, 88)]: Time(ms) [Total: 2301, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 69517] -<2022-06-08 14:45:17.769894> (info) - 101: Stats level [Block]: Record [ 11 of 100]: Index [( 12674, 89)]: Time(ms) [Total: 2500, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 63994] -<2022-06-08 14:45:18.422064> (info) - 100: Stats level [Block]: Record [ 10 of 100]: Index [( 12674, 90)]: Time(ms) [Total: 2256, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 70891] -<2022-06-08 14:45:19.904884> (info) - 103: Stats level [Block]: Record [ 9 of 100]: Index [( 12674, 91)]: Time(ms) [Total: 2343, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 68281] -<2022-06-08 14:45:20.333423> (info) - 101: Stats level [Block]: Record [ 8 of 100]: Index [( 12674, 92)]: Time(ms) [Total: 2563, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 62422] -<2022-06-08 14:45:20.333601> (info) - 100: Stats level [Block]: Record [ 7 of 100]: Index [( 12674, 93)]: Time(ms) [Total: 1911, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83718] -<2022-06-08 14:45:21.984112> (info) - 103: Stats level [Block]: Record [ 6 of 100]: Index [( 12674, 94)]: Time(ms) [Total: 2078, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 76965] -<2022-06-08 14:45:22.284740> (info) - 100: Stats level [Block]: Record [ 4 of 100]: Index [( 12674, 96)]: Time(ms) [Total: 1949, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 82065] -<2022-06-08 14:45:22.981326> (info) - 101: Stats level [Block]: Record [ 5 of 100]: Index [( 12674, 95)]: Time(ms) [Total: 2647, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 60435] -<2022-06-08 14:45:24.192321> (info) - 100: Stats level [Block]: Record [ 2 of 100]: Index [( 12674, 98)]: Time(ms) [Total: 1907, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 83891] -<2022-06-08 14:45:24.192620> (info) - 100:Thread Finished -<2022-06-08 14:45:24.444463> (info) - 103: Stats level [Block]: Record [ 3 of 100]: Index [( 12674, 97)]: Time(ms) [Total: 2459, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 65040] -<2022-06-08 14:45:24.444792> (info) - 103:Thread Finished -<2022-06-08 14:45:24.948797> (info) - 101: Stats level [Block]: Record [ 1 of 100]: Index [( 12674, 99)]: Time(ms) [Total: 1967, Processed: 0]: Units [Total: 160000, Processed: 0, NotProcessed: 160000, Errors: 0, LU/second: 81337] -<2022-06-08 14:45:24.949101> (info) - 101:Thread Finished -<2022-06-08 14:49:22.989861> (info) - 102: Stats level [Block]: Record [ 49 of 100]: Index [( 12674, 51)]: Time(ms) [Total: 275022, Processed: 114461]: Units [Total: 160000, Processed: 11347, NotProcessed: 148653, Errors: 0, LU/second: 581] -<2022-06-08 14:49:24.643884> (info) - 102:Thread Finished -<2022-06-08 14:49:24.646154> (info) - 0:Summary of processing by Tile -<2022-06-08 14:49:24.646311> (info) - 0: Stats level [Tile]: Index [( 12674)]: Time(sec) [Total: 495000, Processed: 114000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 32260] -<2022-06-08 14:49:24.646369> (info) - 0:Summary of processing for full run -<2022-06-08 14:49:24.646425> (info) - 0: Stats level [Global]: Time(sec) [Total: 495000, Processed: 114000]: Units [Total: 16000000, Processed: 11347, NotProcessed: 15988653, Errors: 0, LU/second: 32260] -<2022-06-08 14:49:24.646444> (info) - 0:Start Time : Wed Jun 8 14:44:19 2022 UTC -<2022-06-08 14:49:24.646505> (info) - 0:Finish Time : Wed Jun 8 14:49:24 2022 UTC -<2022-06-08 14:49:24.646521> (info) - 0:Total Time (seconds) : 304 -<2022-06-08 14:49:24.646538> (info) - 0:Effective All LU/millisecond: 52 -<2022-06-08 14:49:24.646549> (info) - 0:Effective All LU/second: 52631 -<2022-06-08 14:49:24.646556> (info) - 0:Effective Processed LU/millisecond: 0 -<2022-06-08 14:49:24.646564> (info) - 0:Effective Processed LU/second: 37 -<2022-06-08 14:49:24.646614> (info) - Loading results into output/gcbm_output.db -<2022-06-08 14:49:24.884877> (info) - Loading DateDimension -<2022-06-08 14:49:24.898438> (info) - Loading PoolDimension -<2022-06-08 14:49:24.911079> (info) - Loading LandClassDimension -<2022-06-08 14:49:24.923576> (info) - Loading ModuleInfoDimension -<2022-06-08 14:49:24.936061> (info) - Loading AgeClassDimension -<2022-06-08 14:49:24.948586> (info) - Loading LocationDimension -<2022-06-08 14:49:24.961662> (info) - Loading DisturbanceTypeDimension -<2022-06-08 14:49:24.974163> (info) - Loading DisturbanceDimension -<2022-06-08 14:49:24.987472> (info) - Loading Pools -<2022-06-08 14:49:25.012341> (info) - Loading Fluxes -<2022-06-08 14:49:25.038750> (info) - Loading ErrorDimension -<2022-06-08 14:49:25.038991> (info) - Loading LocationErrorDimension -<2022-06-08 14:49:25.039138> (info) - Loading AgeArea -<2022-06-08 14:49:25.051846> (info) - SQLite insert complete. diff --git a/local/tests/simulation.txt b/local/tests/simulation.txt deleted file mode 100644 index b9b6ec70..00000000 --- a/local/tests/simulation.txt +++ /dev/null @@ -1,2 +0,0 @@ -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -9fced7a6d773 gcbm-api "gunicorn --bind :80…" 27 minutes ago Up 27 minutes 0.0.0.0:8080->8080/tcp cranky_moore From 5277444ef94b51185015a3673e78f44fbfa5e67d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:42:32 +0300 Subject: [PATCH 075/196] check if simulation runs --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8ec39f58..1fde8318 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -45,6 +45,7 @@ jobs: run: | cd local/rest_api_gcbm/cml_report python create_cml_report.py + cd ../../../GCBM curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ -F config_files='@config/provider_config.json' \ From 042ab8e200e1ce25abd2a26f03f3b485aecd7109 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:49:09 +0300 Subject: [PATCH 076/196] check if simulation runs --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1fde8318..f681cada 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -87,6 +87,8 @@ jobs: - name: Run Simulation run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic + + - name: Get logs cd local/tests python simulation_status.py echo "## GCBM Simulation Log" > report.md From f3c7ec5bbd0b1f98714edcf95eab781c6ddf650c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 8 Jun 2022 21:51:21 +0300 Subject: [PATCH 077/196] check if simulation runs --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index f681cada..f63327f4 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -89,6 +89,7 @@ jobs: curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic - name: Get logs + run: | cd local/tests python simulation_status.py echo "## GCBM Simulation Log" > report.md From 585fb59fc102e7b5bf426c2563e38a790e723122 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 11:19:58 +0300 Subject: [PATCH 078/196] check if sim runs --- .github/workflows/cml-report.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index f63327f4..613d0b14 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -13,14 +13,6 @@ jobs: with: python-version: '3.x' - # - name: Unzip Inputs - # env: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # run: | - # python -m pip install --upgrade pip - # cd local/rest_api_gcbm/cml_report - # python create_cml_report.py - - name: Build API run: | cd local/rest_api_gcbm @@ -43,6 +35,7 @@ jobs: curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - name: Unzip Files and Upload run: | + python -m pip install --upgrade pip cd local/rest_api_gcbm/cml_report python create_cml_report.py cd ../../../GCBM From 60ae2229bee539799b142ff68edb5c93a0837840 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 11:27:13 +0300 Subject: [PATCH 079/196] check if sim runs --- .github/workflows/cml-report.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 613d0b14..d7c7d33b 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -85,9 +85,7 @@ jobs: run: | cd local/tests python simulation_status.py - echo "## GCBM Simulation Log" > report.md - cat *.txt >> report.md - cml-send-comment report.md + # cml-send-comment report.md - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip From e60ad22f1a40478f88fd87abb2e07b10dce13645 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 11:47:56 +0300 Subject: [PATCH 080/196] check if sim run right --- .github/workflows/cml-report.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index d7c7d33b..5ef42d8e 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -17,7 +17,11 @@ jobs: run: | cd local/rest_api_gcbm docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --rm -p 8080:8080 gcbm-api + docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api + + - name: Get Docker Logs + run: | + docker logs gcbm-api - name: Get Public IP id: ip @@ -83,6 +87,7 @@ jobs: - name: Get logs run: | + docker logs gcbm-api cd local/tests python simulation_status.py # cml-send-comment report.md From 822e202e388fae017471da8b2799ce068ea22b78 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 12:10:29 +0300 Subject: [PATCH 081/196] check if sim run right --- .github/workflows/cml-report.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 5ef42d8e..1b419e5f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -19,10 +19,6 @@ jobs: docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - - name: Get Docker Logs - run: | - docker logs gcbm-api - - name: Get Public IP id: ip uses: haythem/public-ip@v1.2 @@ -34,9 +30,11 @@ jobs: - name: Check ports run: | sudo netstat -tunlp + - name: Create New Sim run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + - name: Unzip Files and Upload run: | python -m pip install --upgrade pip @@ -81,9 +79,14 @@ jobs: -F db='@input_database/gcbm_input.db' \ -F title="run4" \ http://0.0.0.0:8080/gcbm/upload + - name: Run Simulation run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic + + - name: Check Sim Status + run: | + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status - name: Get logs run: | @@ -91,6 +94,6 @@ jobs: cd local/tests python simulation_status.py # cml-send-comment report.md - - name: Download Results - run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + # - name: Download Results + # run: | + # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip From bf01d74ba3af2f5f7c94d736251c4b6a2f6b9f5b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 12:31:44 +0300 Subject: [PATCH 082/196] check if sim run right --- .github/workflows/cml-report.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1b419e5f..c501791d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -35,7 +35,7 @@ jobs: run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - - name: Unzip Files and Upload + - name: Unzip Files ,Upload and Run Simulation run: | python -m pip install --upgrade pip cd local/rest_api_gcbm/cml_report @@ -79,17 +79,12 @@ jobs: -F db='@input_database/gcbm_input.db' \ -F title="run4" \ http://0.0.0.0:8080/gcbm/upload - - - name: Run Simulation - run: | + echo "Simulation Status" + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic - - - name: Check Sim Status - run: | + echo "Simulation Status" curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status - - - name: Get logs - run: | + echo "Sim logs" docker logs gcbm-api cd local/tests python simulation_status.py From 4e06e56daa86509e5331285cbb20e7473239815f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 12:38:38 +0300 Subject: [PATCH 083/196] check if sim run right --- .github/workflows/cml-report.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c501791d..37a89d6a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,8 +6,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup cml - uses: iterative/setup-cml@v1 + # - name: Setup cml + # uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -86,9 +86,8 @@ jobs: curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status echo "Sim logs" docker logs gcbm-api - cd local/tests - python simulation_status.py - # cml-send-comment report.md + # cd local/tests + # python simulation_status.py # - name: Download Results # run: | # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip From a6c3727ef7e6e6c5087882985a832f1954b5ff6e Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:08:20 +0300 Subject: [PATCH 084/196] check if sim run right --- .github/workflows/cml-report.yml | 26 ++++++++++++------- .../cml_report/process_output.py | 11 ++++++++ 2 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 local/rest_api_gcbm/cml_report/process_output.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 37a89d6a..704440b8 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -35,7 +35,7 @@ jobs: run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - - name: Unzip Files ,Upload and Run Simulation + - name: Unzip Files run: | python -m pip install --upgrade pip cd local/rest_api_gcbm/cml_report @@ -81,13 +81,19 @@ jobs: http://0.0.0.0:8080/gcbm/upload echo "Simulation Status" curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status + - name: Run Simulation + run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic - echo "Simulation Status" - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status - echo "Sim logs" - docker logs gcbm-api - # cd local/tests - # python simulation_status.py - # - name: Download Results - # run: | - # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + cd local/tests + python simulation_status.py + ls -l + + - name: Download Results + run: | + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + cd local/rest_api_gcbm/cml_report + python process_output.py + + - name: See if results are empty + run: | + ls -l output diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py new file mode 100644 index 00000000..7c083af4 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -0,0 +1,11 @@ +import os +import zipfile + +output_zip = os.path.join('..','..','..','output.zip') +with zipfile.ZipFile(output_zip,'r') as zip_ref: + zip_ref.extractall(os.path.join('..','..','..','output')) + +output = os.path.join('..','..','..','output') +print("Output Measurements are:") +measurements = os.listdir(output) +print(measurements) From e89dbe2efae6b620480d252836247b6472b8b0fe Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:13:18 +0300 Subject: [PATCH 085/196] check if sim run right --- .github/workflows/cml-report.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 704440b8..d9c67dc0 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -91,9 +91,5 @@ jobs: - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - cd local/rest_api_gcbm/cml_report - python process_output.py - - - name: See if results are empty - run: | - ls -l output + ls -l + \ No newline at end of file From d322de4b14fb052d51f170b2e543dddaeae4866c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:19:13 +0300 Subject: [PATCH 086/196] check if sim run right --- .github/workflows/cml-report.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index d9c67dc0..62be9707 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -91,5 +91,8 @@ jobs: - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - ls -l + cd local/rest_api_gcbm/cml_report + python process_output.py + cd ../../.. + ls -l output \ No newline at end of file From 0f613c3a30a51e61760cf20483beaff9ae4d8b43 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:27:00 +0300 Subject: [PATCH 087/196] check if sim run right --- .github/workflows/cml-report.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 62be9707..bcbcd93c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -90,9 +90,8 @@ jobs: - name: Download Results run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip cd local/rest_api_gcbm/cml_report + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip python process_output.py - cd ../../.. ls -l output \ No newline at end of file From 587b93810bb3aa8487a0426d98dcd537c7eb33fa Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:32:26 +0300 Subject: [PATCH 088/196] check if sim run right --- .github/workflows/cml-report.yml | 3 +-- local/rest_api_gcbm/cml_report/process_output.py | 9 ++------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index bcbcd93c..b89b40a3 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -90,8 +90,7 @@ jobs: - name: Download Results run: | - cd local/rest_api_gcbm/cml_report curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - python process_output.py + python local/rest_api_gcbm/cml_report/process_output.py ls -l output \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index 7c083af4..16535d47 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -1,11 +1,6 @@ import os import zipfile -output_zip = os.path.join('..','..','..','output.zip') +output_zip = os.path.join('output.zip') with zipfile.ZipFile(output_zip,'r') as zip_ref: - zip_ref.extractall(os.path.join('..','..','..','output')) - -output = os.path.join('..','..','..','output') -print("Output Measurements are:") -measurements = os.listdir(output) -print(measurements) + zip_ref.extractall('output') From ba58093d961514c636ee87ab885068a2899be2e7 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:36:53 +0300 Subject: [PATCH 089/196] check if sim run right --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b89b40a3..358a0418 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -91,6 +91,6 @@ jobs: - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - python local/rest_api_gcbm/cml_report/process_output.py - ls -l output + # python local/rest_api_gcbm/cml_report/process_output.py + ls -l \ No newline at end of file From 0f2576d91b9348ebcd1ea7228376f404e3d09b4d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:45:47 +0300 Subject: [PATCH 090/196] check if sim run right --- .github/workflows/cml-report.yml | 4 ++-- local/rest_api_gcbm/cml_report/create_cml_report.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 358a0418..b89b40a3 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -91,6 +91,6 @@ jobs: - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - # python local/rest_api_gcbm/cml_report/process_output.py - ls -l + python local/rest_api_gcbm/cml_report/process_output.py + ls -l output \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index eee6724f..106ce56c 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -28,4 +28,4 @@ # outfile.write(api_inputs.to_markdown(index=False)+'\n\n') # outfile.write(api_configs.to_markdown(index=False)+'\n\n') # outfile.write(output_config+'\n\n') -# outfile.write(info) \ No newline at end of file +# outfile.write(info) From ea0ee09c62f143c59cf78ae637b0a27674a617e7 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:51:02 +0300 Subject: [PATCH 091/196] check if sim run right --- .github/workflows/cml-report.yml | 8 +++----- local/rest_api_gcbm/cml_report/create_cml_report.py | 4 ++-- local/rest_api_gcbm/cml_report/process_output.py | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b89b40a3..6e5c2989 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -38,9 +38,8 @@ jobs: - name: Unzip Files run: | python -m pip install --upgrade pip - cd local/rest_api_gcbm/cml_report - python create_cml_report.py - cd ../../../GCBM + python local/rest_api_gcbm/cml_reportcreate_cml_report.py + cd GCBM curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ -F config_files='@config/provider_config.json' \ @@ -79,8 +78,7 @@ jobs: -F db='@input_database/gcbm_input.db' \ -F title="run4" \ http://0.0.0.0:8080/gcbm/upload - echo "Simulation Status" - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/status + - name: Run Simulation run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index 106ce56c..c537b5c9 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -7,9 +7,9 @@ # import json # Unzip file -zip = os.path.join('..','..','..','GCBM_Demo_Run.zip') +zip = 'GCBM_Demo_Run.zip' with zipfile.ZipFile(zip,'r') as zip_ref: - zip_ref.extractall(os.path.join('..','..','..','GCBM')) + zip_ref.extractall('GCBM') # # Define input template as dataframes # GCBM_template_path = os.path.join('..','..','..','GCBM') diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index 16535d47..f8b8001b 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -1,6 +1,6 @@ import os import zipfile -output_zip = os.path.join('output.zip') +output_zip = 'output.zip' with zipfile.ZipFile(output_zip,'r') as zip_ref: zip_ref.extractall('output') From 5da627ebd6069e5770555940bed3684f9fbba1dd Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 13:55:22 +0300 Subject: [PATCH 092/196] check if sim run right --- .github/workflows/cml-report.yml | 2 +- local/rest_api_gcbm/cml_report/create_cml_report.py | 2 +- local/rest_api_gcbm/cml_report/process_output.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6e5c2989..c9be55f9 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -38,7 +38,7 @@ jobs: - name: Unzip Files run: | python -m pip install --upgrade pip - python local/rest_api_gcbm/cml_reportcreate_cml_report.py + python local/rest_api_gcbm/cml_report/create_cml_report.py cd GCBM curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/create_cml_report.py index c537b5c9..dcc415a5 100644 --- a/local/rest_api_gcbm/cml_report/create_cml_report.py +++ b/local/rest_api_gcbm/cml_report/create_cml_report.py @@ -8,7 +8,7 @@ # Unzip file zip = 'GCBM_Demo_Run.zip' -with zipfile.ZipFile(zip,'r') as zip_ref: +with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') # # Define input template as dataframes diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index f8b8001b..177cd1c2 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -2,5 +2,5 @@ import zipfile output_zip = 'output.zip' -with zipfile.ZipFile(output_zip,'r') as zip_ref: +with zipfile.ZipFile(output_zip, 'r') as zip_ref: zip_ref.extractall('output') From 33586e12ce6c025fe1460660520b7dd6a136638d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 14:07:33 +0300 Subject: [PATCH 093/196] check if sim run right --- local/rest_api_gcbm/cml_report/process_output.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index 177cd1c2..c2a4cbcb 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -2,5 +2,6 @@ import zipfile output_zip = 'output.zip' -with zipfile.ZipFile(output_zip, 'r') as zip_ref: - zip_ref.extractall('output') +if zipfile.is_zipfile(output_zip): + with zipfile.ZipFile(output_zip, 'r') as zip_ref: + zip_ref.extractall('output') From 5b65a90c6f2dbf9db3e7b0ce145bb781140c0189 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 14:13:06 +0300 Subject: [PATCH 094/196] check if sim run right --- .github/workflows/cml-report.yml | 4 ++-- local/tests/simulation_status.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c9be55f9..3ff3d13c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -89,6 +89,6 @@ jobs: - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - python local/rest_api_gcbm/cml_report/process_output.py - ls -l output + # python local/rest_api_gcbm/cml_report/process_output.py + ls -l \ No newline at end of file diff --git a/local/tests/simulation_status.py b/local/tests/simulation_status.py index ff23a459..72493ed8 100644 --- a/local/tests/simulation_status.py +++ b/local/tests/simulation_status.py @@ -33,4 +33,4 @@ def get_simulation_status(): return {'container_running': True, 'logs': logs} return {'container_running': False} -print(get_simulation_status()) \ No newline at end of file +print(get_simulation_status()) From ce105e1a02b87461e33c09aef50770267ffdc16f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 18:34:31 +0300 Subject: [PATCH 095/196] check if sim runs using python script --- .github/workflows/cml-report.yml | 31 ++++++++++--------- .../cml_report/process_output.py | 7 ----- local/rest_api_gcbm/cml_report/run_gcbm.py | 29 +++++++++++++++++ 3 files changed, 46 insertions(+), 21 deletions(-) delete mode 100644 local/rest_api_gcbm/cml_report/process_output.py create mode 100644 local/rest_api_gcbm/cml_report/run_gcbm.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 3ff3d13c..17d38690 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -19,13 +19,13 @@ jobs: docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - - name: Get Public IP - id: ip - uses: haythem/public-ip@v1.2 + # - name: Get Public IP + # id: ip + # uses: haythem/public-ip@v1.2 - - name: Print public IP - run: | - echo ${{ steps.ip.outputs.ipv4 }} + # - name: Print public IP + # run: | + # echo ${{ steps.ip.outputs.ipv4 }} - name: Check ports run: | @@ -81,14 +81,17 @@ jobs: - name: Run Simulation run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/dynamic + python local/rest_api_gcbm/cml_report/run_gcbm.py + + - name: Retrive Logs + run: | cd local/tests - python simulation_status.py - ls -l + python simulation_status + cat *.txt - - name: Download Results - run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - # python local/rest_api_gcbm/cml_report/process_output.py - ls -l + # - name: Download Results + # run: | + # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + # # python local/rest_api_gcbm/cml_report/process_output.py + # ls -l \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py deleted file mode 100644 index c2a4cbcb..00000000 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ /dev/null @@ -1,7 +0,0 @@ -import os -import zipfile - -output_zip = 'output.zip' -if zipfile.is_zipfile(output_zip): - with zipfile.ZipFile(output_zip, 'r') as zip_ref: - zip_ref.extractall('output') diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py new file mode 100644 index 00000000..590fd928 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -0,0 +1,29 @@ +""" +Run the whole simulation +""" + +import os +from urllib.request import Request +import requests +import json + +HOME = "http://0.0.0.0:8080/gcbm" +RESPONSES = [] + +def run_simulation(): + url = f"{HOME}/dynamic" + req_data = {"title":"run4"} + res = requests.post(url,data=req_data) + return res + +def get_status(): + url = f"{HOME}/status" + req_data = {"title":"run4"} + res = requests.post(url,data=req_data) + return res.text + +if __name__ == "__main__": + run_sim = run_simulation() + status = {run_sim.text} + while(status == {'finished':'In Progress'}): + status = get_status() From 4e01057345a4ff92fbcf22ad5ea5611853db605a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 18:39:03 +0300 Subject: [PATCH 096/196] check if sim runs using python script --- .github/workflows/cml-report.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 17d38690..9c43dc8c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -19,13 +19,13 @@ jobs: docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - # - name: Get Public IP - # id: ip - # uses: haythem/public-ip@v1.2 + - name: Get Public IP + id: ip + uses: haythem/public-ip@v1.2 - # - name: Print public IP - # run: | - # echo ${{ steps.ip.outputs.ipv4 }} + - name: Print public IP + run: | + echo ${{ steps.ip.outputs.ipv4 }} - name: Check ports run: | From c10921da55bfb3930a0c0021533d3e4fa32036b3 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 18:43:52 +0300 Subject: [PATCH 097/196] check if sim runs using python script --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9c43dc8c..e41a7190 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -38,6 +38,7 @@ jobs: - name: Unzip Files run: | python -m pip install --upgrade pip + pip install requests python local/rest_api_gcbm/cml_report/create_cml_report.py cd GCBM curl -F config_files='@config/variables.json' \ From 11a2ba4a392961e80d9de56f69c284227f70458b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 18:48:27 +0300 Subject: [PATCH 098/196] check if sim runs using python script --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index e41a7190..6d246c24 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -87,7 +87,7 @@ jobs: - name: Retrive Logs run: | cd local/tests - python simulation_status + python simulation_status.py cat *.txt # - name: Download Results From a2220d1a3d004b4498a8467d7bf04ba7dcaeeaee Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 18:56:58 +0300 Subject: [PATCH 099/196] check if sim run smoothly --- .github/workflows/cml-report.yml | 10 +++++----- local/rest_api_gcbm/cml_report/process_output.py | 6 ++++++ 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 local/rest_api_gcbm/cml_report/process_output.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6d246c24..482f260f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -90,9 +90,9 @@ jobs: python simulation_status.py cat *.txt - # - name: Download Results - # run: | - # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - # # python local/rest_api_gcbm/cml_report/process_output.py - # ls -l + - name: Download Results + run: | + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + # python local/rest_api_gcbm/cml_report/process_output.py + ls -l output \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py new file mode 100644 index 00000000..8ecfa360 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -0,0 +1,6 @@ +import zipfile + + +zip = 'output.zip' +with zipfile.ZipFile(zip, 'r') as zip_ref: + zip_ref.extractall('output') \ No newline at end of file From 27019a513f0d597fdeee308e7321c38e0aa55e84 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 19:02:06 +0300 Subject: [PATCH 100/196] check if sim runs smoothly --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 482f260f..6fef4f9d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -93,6 +93,6 @@ jobs: - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - # python local/rest_api_gcbm/cml_report/process_output.py + python local/rest_api_gcbm/cml_report/process_output.py ls -l output \ No newline at end of file From ed2d3d11ab81889566347c1c645b362291d43e86 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 9 Jun 2022 19:12:30 +0300 Subject: [PATCH 101/196] check if sim runs smoothly --- local/rest_api_gcbm/cml_report/run_gcbm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py index 590fd928..847452e1 100644 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -24,6 +24,6 @@ def get_status(): if __name__ == "__main__": run_sim = run_simulation() - status = {run_sim.text} + status = get_status() while(status == {'finished':'In Progress'}): status = get_status() From b5ebb7c61edc2099791121ee3454893bf2dbd51f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 10 Jun 2022 14:39:41 +0300 Subject: [PATCH 102/196] check if sim runs using a python script --- .github/workflows/cml-report.yml | 6 ++-- local/rest_api_gcbm/cml_report/run_gcbm.py | 33 ++++++++++++++-------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6fef4f9d..6a35adbf 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,8 +6,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - # - name: Setup cml - # uses: iterative/setup-cml@v1 + - name: Setup cml + uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -38,7 +38,6 @@ jobs: - name: Unzip Files run: | python -m pip install --upgrade pip - pip install requests python local/rest_api_gcbm/cml_report/create_cml_report.py cd GCBM curl -F config_files='@config/variables.json' \ @@ -82,6 +81,7 @@ jobs: - name: Run Simulation run: | + pip install requests python local/rest_api_gcbm/cml_report/run_gcbm.py - name: Retrive Logs diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py index 847452e1..cc7e9621 100644 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -3,27 +3,38 @@ """ import os -from urllib.request import Request import requests import json +import threading +import logging -HOME = "http://0.0.0.0:8080/gcbm" -RESPONSES = [] +HOME = "http://localhost:8080/gcbm" def run_simulation(): url = f"{HOME}/dynamic" req_data = {"title":"run4"} - res = requests.post(url,data=req_data) - return res + start_req = requests.post(url,data=req_data) + return start_req def get_status(): url = f"{HOME}/status" req_data = {"title":"run4"} - res = requests.post(url,data=req_data) - return res.text + res = requests.post(url,req_data) + return json.loads(res.text) -if __name__ == "__main__": - run_sim = run_simulation() +def check_if_finished(): status = get_status() - while(status == {'finished':'In Progress'}): - status = get_status() + t = threading.Timer(10.0,check_if_finished) + if status['finished'] == 'In Progress': + t.start() + print(status['finished']) + else: + t.cancel() + + +if __name__ == "__main__": + run_process = run_simulation() + check_if_finished() + + + From 2073f59848cd36b7adc5e68e4d138a38262b36de Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 13:40:34 +0300 Subject: [PATCH 103/196] check if sim runs using moja.cli --- .github/workflows/cml-report.yml | 10 +++--- local/rest_api_gcbm/cml_report/run_gcbm.py | 40 ---------------------- 2 files changed, 6 insertions(+), 44 deletions(-) delete mode 100644 local/rest_api_gcbm/cml_report/run_gcbm.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6a35adbf..4fbf7722 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,8 +6,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup cml - uses: iterative/setup-cml@v1 + # - name: Setup cml + # uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -81,8 +81,10 @@ jobs: - name: Run Simulation run: | - pip install requests - python local/rest_api_gcbm/cml_report/run_gcbm.py + # pip install requests + # python local/rest_api_gcbm/cml_report/run_gcbm.py + docker exec -it -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + - name: Retrive Logs run: | diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py deleted file mode 100644 index cc7e9621..00000000 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ /dev/null @@ -1,40 +0,0 @@ -""" -Run the whole simulation -""" - -import os -import requests -import json -import threading -import logging - -HOME = "http://localhost:8080/gcbm" - -def run_simulation(): - url = f"{HOME}/dynamic" - req_data = {"title":"run4"} - start_req = requests.post(url,data=req_data) - return start_req - -def get_status(): - url = f"{HOME}/status" - req_data = {"title":"run4"} - res = requests.post(url,req_data) - return json.loads(res.text) - -def check_if_finished(): - status = get_status() - t = threading.Timer(10.0,check_if_finished) - if status['finished'] == 'In Progress': - t.start() - print(status['finished']) - else: - t.cancel() - - -if __name__ == "__main__": - run_process = run_simulation() - check_if_finished() - - - From 3b05b57e48601eaad26e324bc3b658c7495dff43 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 13:44:18 +0300 Subject: [PATCH 104/196] check if sim runs using moja.cli --- .github/workflows/cml-report.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4fbf7722..f19e6f8f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -81,8 +81,6 @@ jobs: - name: Run Simulation run: | - # pip install requests - # python local/rest_api_gcbm/cml_report/run_gcbm.py docker exec -it -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json From ccb5c65ff63a0b87422e34a1eb05977e23c38da6 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 13:48:16 +0300 Subject: [PATCH 105/196] check if sim runs using moja.cli no tty --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index f19e6f8f..6f1ffe22 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -81,7 +81,7 @@ jobs: - name: Run Simulation run: | - docker exec -it -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + docker exec -i -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json - name: Retrive Logs From 4069f92c74879a1a2b4ffeebc150fceec0eea479 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 13:59:32 +0300 Subject: [PATCH 106/196] sim runs but zip file not found --- .github/workflows/cml-report.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6f1ffe22..d36035c2 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -88,11 +88,10 @@ jobs: run: | cd local/tests python simulation_status.py - cat *.txt - name: Download Results run: | curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - python local/rest_api_gcbm/cml_report/process_output.py - ls -l output + # python local/rest_api_gcbm/cml_report/process_output.py + ls -l \ No newline at end of file From 6cd4b751f49c5805732d86c459cc16a9ec272692 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 14:30:58 +0300 Subject: [PATCH 107/196] copy output instead using docker cp instead of /download --- .github/workflows/cml-report.yml | 5 ++--- local/rest_api_gcbm/cml_report/process_output.py | 6 ------ 2 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 local/rest_api_gcbm/cml_report/process_output.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index d36035c2..c7f4593a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -91,7 +91,6 @@ jobs: - name: Download Results run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - # python local/rest_api_gcbm/cml_report/process_output.py - ls -l + docker cp gcbm-api:/app/input/run4/output . + ls -l output \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py deleted file mode 100644 index 8ecfa360..00000000 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ /dev/null @@ -1,6 +0,0 @@ -import zipfile - - -zip = 'output.zip' -with zipfile.ZipFile(zip, 'r') as zip_ref: - zip_ref.extractall('output') \ No newline at end of file From 0254859f79ad5e3f5acec63957c0e2aa14a2cf8d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 16:54:58 +0300 Subject: [PATCH 108/196] sim runs smoothly using partially gcbm-api and moja.cli and using cml to send a verification comment --- .github/workflows/cml-report.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c7f4593a..49819b1a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,8 +6,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - # - name: Setup cml - # uses: iterative/setup-cml@v1 + - name: Setup cml + uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -92,5 +92,8 @@ jobs: - name: Download Results run: | docker cp gcbm-api:/app/input/run4/output . - ls -l output + echo "# GCBM Model Simulation Complete!" > report.md + echo "## Uncompiled Outputs" >> report.md + ls -l output >> report.md + cml-send-comment report.md \ No newline at end of file From 0418309df7b28a4fc2345886b57cf3d0b5365a27 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 13 Jun 2022 17:13:48 +0300 Subject: [PATCH 109/196] sim runs smoothly using partially gcbm-api and moja.cli and using cml to send a verification comment --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 49819b1a..0b76a321 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -90,6 +90,8 @@ jobs: python simulation_status.py - name: Download Results + env: + repot_token: ${{ secrets.GITHUB_TOKEN }} run: | docker cp gcbm-api:/app/input/run4/output . echo "# GCBM Model Simulation Complete!" > report.md From d0279752eff4333421f91a6142b0885f69d4455b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 14 Jun 2022 17:32:23 +0300 Subject: [PATCH 110/196] check if sim runs with threading --- .github/workflows/cml-report.yml | 33 +++++++------ ...{create_cml_report.py => process_input.py} | 0 .../cml_report/process_output.py | 6 +++ local/rest_api_gcbm/cml_report/run_gcbm.py | 47 +++++++++++++++++++ 4 files changed, 72 insertions(+), 14 deletions(-) rename local/rest_api_gcbm/cml_report/{create_cml_report.py => process_input.py} (100%) create mode 100644 local/rest_api_gcbm/cml_report/process_output.py create mode 100644 local/rest_api_gcbm/cml_report/run_gcbm.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 0b76a321..c4f23be1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,8 +6,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup cml - uses: iterative/setup-cml@v1 + # - name: Setup cml + # uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -38,7 +38,7 @@ jobs: - name: Unzip Files run: | python -m pip install --upgrade pip - python local/rest_api_gcbm/cml_report/create_cml_report.py + python local/rest_api_gcbm/cml_report/process_input.py cd GCBM curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ @@ -81,21 +81,26 @@ jobs: - name: Run Simulation run: | - docker exec -i -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + # docker exec -i -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + python local/rest_api_gcbm/cml_report/run_gcbm.py - - name: Retrive Logs + - name: Retrive Logs and Download Results run: | cd local/tests python simulation_status.py + cd ../.. + curl -d "title=run4" -X POST http://localhost:8080/gcbm/download -L -o output.zip + python local/rest_api_gcbm/cml_report/process_output.py + ls -l output - - name: Download Results - env: - repot_token: ${{ secrets.GITHUB_TOKEN }} - run: | - docker cp gcbm-api:/app/input/run4/output . - echo "# GCBM Model Simulation Complete!" > report.md - echo "## Uncompiled Outputs" >> report.md - ls -l output >> report.md - cml-send-comment report.md + # - name: CML + # env: + # repo_token: ${{ secrets.GITHUB_TOKEN }} + # run: | + # docker cp gcbm-api:/app/input/run4/output . + # echo "# GCBM Model Simulation Complete!" > report.md + # echo "## Uncompiled Outputs" >> report.md + # ls -l output >> report.md + # cml-send-comment report.md \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/create_cml_report.py b/local/rest_api_gcbm/cml_report/process_input.py similarity index 100% rename from local/rest_api_gcbm/cml_report/create_cml_report.py rename to local/rest_api_gcbm/cml_report/process_input.py diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py new file mode 100644 index 00000000..77ed65a7 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -0,0 +1,6 @@ +import os +import zipfile + +zip = 'output.zip' +with zipfile.ZipFile(zip, 'r') as zip_ref: + zip_ref.extractall('output') \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py new file mode 100644 index 00000000..7178cc79 --- /dev/null +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -0,0 +1,47 @@ +import os +import requests +from threading import Timer +import time +import json + +HOME = "http://localhost:8080/gcbm" +DONE = False + +def run_gcbm(): + url = f"{HOME}/dynamic" + req_data = {"title":"run4"} + res = requests.post(url,data=req_data) + return res.text + +def status(): + url = f"{HOME}/status" + req_data = {"title":"run4"} + res = requests.post(url,data=req_data) + return json.loads(res.text) + + + +def display(): + global DONE + sim_status = status() + if sim_status['finished'] == 'In Progress': + print(os.system("docker logs gcbm-api --until=30s")) + else: + DONE = True + +class CheckSimulation(Timer): + def run(self): + while not self.finished.wait(self.interval): + self.function(*self.args,**self.kwargs) + print('Threading Done') + +run_sim = run_gcbm() +print(run_sim) + +timer = CheckSimulation(30,display) +timer.start() +print("Starting simulation") +time.sleep(300) +if not DONE: + time.sleep(300) +timer.cancel() From 5a977879b583fdc522159341f6dd08c7b51c0e43 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 14 Jun 2022 17:36:56 +0300 Subject: [PATCH 111/196] check if sim runs with threading --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c4f23be1..7b7579b3 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -82,6 +82,7 @@ jobs: - name: Run Simulation run: | # docker exec -i -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + pip install requests python local/rest_api_gcbm/cml_report/run_gcbm.py From f03b5ce79deed216d8385a28b110d744bb25432b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Tue, 14 Jun 2022 18:21:40 +0300 Subject: [PATCH 112/196] added CompileResults repo to rest_api_gcbm --- .github/workflows/cml-report.yml | 5 ++++- local/rest_api_gcbm/Dockerfile | 3 +++ local/rest_api_gcbm/cml_report/run_gcbm.py | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 7b7579b3..0acb0fd4 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -93,7 +93,10 @@ jobs: cd ../.. curl -d "title=run4" -X POST http://localhost:8080/gcbm/download -L -o output.zip python local/rest_api_gcbm/cml_report/process_output.py - ls -l output + + - name: Compile Results + run: | + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/gcbm_output.db --output_db sqlite:///output/compiled_gcbm_output.db # - name: CML # env: diff --git a/local/rest_api_gcbm/Dockerfile b/local/rest_api_gcbm/Dockerfile index 3d531fba..fd4fbd32 100644 --- a/local/rest_api_gcbm/Dockerfile +++ b/local/rest_api_gcbm/Dockerfile @@ -10,9 +10,12 @@ RUN pip install --no-cache-dir -r requirements.txt # Adding npm for CML Actions RUN apt-get update RUN apt-get install nodejs npm -y +RUN apt-get install python RUN node --version RUN npm --version +RUN git clone https://github.com/moja-global/GCBM.CompileResults.git + COPY . . CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py index 7178cc79..90764c94 100644 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -39,9 +39,11 @@ def run(self): print(run_sim) timer = CheckSimulation(30,display) +print("Starting simulation.") timer.start() -print("Starting simulation") time.sleep(300) if not DONE: time.sleep(300) + +print("Simulation Ending.") timer.cancel() From e9864f56bcfe087f0bfb6000364e04d025c9f080 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 15 Jun 2022 17:44:01 +0300 Subject: [PATCH 113/196] check sim with GCBM.CompileResults repo --- .github/workflows/cml-report.yml | 27 +++++++++---------- local/rest_api_gcbm/Dockerfile | 5 +++- .../cml_report/annual_summaries.py | 19 +++++++++++++ 3 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 local/rest_api_gcbm/cml_report/annual_summaries.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 0acb0fd4..4cad79ac 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,8 +6,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - # - name: Setup cml - # uses: iterative/setup-cml@v1 + - name: Setup cml + uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -81,7 +81,6 @@ jobs: - name: Run Simulation run: | - # docker exec -i -w /app/input/run4 gcbm-api /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json pip install requests python local/rest_api_gcbm/cml_report/run_gcbm.py @@ -96,15 +95,15 @@ jobs: - name: Compile Results run: | - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/gcbm_output.db --output_db sqlite:///output/compiled_gcbm_output.db - - # - name: CML - # env: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # run: | - # docker cp gcbm-api:/app/input/run4/output . - # echo "# GCBM Model Simulation Complete!" > report.md - # echo "## Uncompiled Outputs" >> report.md - # ls -l output >> report.md - # cml-send-comment report.md + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db + docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output + - name: CML + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + python local\rest_api_gcbm\cml_report\annual_summaries.py + echo "# GCBM Model" >> report.md + echo "" >> report.md + cml-send-comment report.md + \ No newline at end of file diff --git a/local/rest_api_gcbm/Dockerfile b/local/rest_api_gcbm/Dockerfile index fd4fbd32..7ac2e701 100644 --- a/local/rest_api_gcbm/Dockerfile +++ b/local/rest_api_gcbm/Dockerfile @@ -10,7 +10,10 @@ RUN pip install --no-cache-dir -r requirements.txt # Adding npm for CML Actions RUN apt-get update RUN apt-get install nodejs npm -y -RUN apt-get install python +RUN apt-get install -y python3-dev \ + && cd /usr/local/bin \ + && ln -s /usr/bin/python3 python +RUN python --version RUN node --version RUN npm --version diff --git a/local/rest_api_gcbm/cml_report/annual_summaries.py b/local/rest_api_gcbm/cml_report/annual_summaries.py new file mode 100644 index 00000000..cbacceba --- /dev/null +++ b/local/rest_api_gcbm/cml_report/annual_summaries.py @@ -0,0 +1,19 @@ +import sqlite3 +import pandas as pd + +conn = sqlite3.connect("output/compiled_gcbm_output.db") + +query = f""" + SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt + FROM (SELECT DISTINCT year FROM v_age_indicators ORDER BY year) AS years + LEFT JOIN v_pool_indicators i + ON years.year = i.year + WHERE i.indicator = 'Total Biomass' + AND (years.year BETWEEN 1920 AND 2020) + GROUP BY years.year + ORDER BY years.year + """ + +df = pd.read_sql_query(query, conn) +ax = df.plot.line("year") # x-axis +ax.figure.savefig('output/total_biomass_mt.png', dpi=300) \ No newline at end of file From b178907385037103f40a3747b2b927e2926349ec Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 15 Jun 2022 17:59:28 +0300 Subject: [PATCH 114/196] fix typo in cml_report.yml line 104 --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4cad79ac..5e2f785a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -101,7 +101,7 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | - python local\rest_api_gcbm\cml_report\annual_summaries.py + python local/rest_api_gcbm/cml_report/annual_summaries.py echo "# GCBM Model" >> report.md echo "" >> report.md cml-send-comment report.md From 8fb961e668255f632eacdbe7d6629ce9e111c1ab Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 15 Jun 2022 18:14:14 +0300 Subject: [PATCH 115/196] add cml comment --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 5e2f785a..f4e40ca2 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -101,6 +101,7 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | + pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py echo "# GCBM Model" >> report.md echo "" >> report.md From de59f161a190a0bc90e15111851de52c1708962e Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 15 Jun 2022 18:53:31 +0300 Subject: [PATCH 116/196] check if annual_summaries.py runs properly --- .github/workflows/cml-report.yml | 2 -- .../cml_report/annual_summaries.py | 4 ++-- .../rest_api_gcbm/cml_report/process_input.py | 24 ------------------- 3 files changed, 2 insertions(+), 28 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index f4e40ca2..ca82555a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -106,5 +106,3 @@ jobs: echo "# GCBM Model" >> report.md echo "" >> report.md cml-send-comment report.md - - \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/annual_summaries.py b/local/rest_api_gcbm/cml_report/annual_summaries.py index cbacceba..b14445ae 100644 --- a/local/rest_api_gcbm/cml_report/annual_summaries.py +++ b/local/rest_api_gcbm/cml_report/annual_summaries.py @@ -9,11 +9,11 @@ LEFT JOIN v_pool_indicators i ON years.year = i.year WHERE i.indicator = 'Total Biomass' - AND (years.year BETWEEN 1920 AND 2020) + AND (years.year BETWEEN 2010 AND 2020) GROUP BY years.year ORDER BY years.year """ df = pd.read_sql_query(query, conn) ax = df.plot.line("year") # x-axis -ax.figure.savefig('output/total_biomass_mt.png', dpi=300) \ No newline at end of file +ax.figure.savefig('output/total_biomass_mt.png', dpi=300) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index dcc415a5..899ca743 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -1,31 +1,7 @@ -# from genericpath import isdir -# from operator import index import os -# import pandas as pd -# import tabulate import zipfile -# import json # Unzip file zip = 'GCBM_Demo_Run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') - -# # Define input template as dataframes -# GCBM_template_path = os.path.join('..','..','..','GCBM') -# inputs = os.listdir(os.path.join(GCBM_template_path,'layers','tiled')) -# api_inputs = pd.DataFrame({"Data Files":inputs}) -# configs = os.listdir(os.path.join(GCBM_template_path,'config')) -# api_configs = pd.DataFrame({"Config files":configs}) -# output_config = f"Your output configuration will be in ```output.zip``` file which consists of the ```gcbm_output.db``` database and a directory for each metric calculated during the simulation." - -# # Simulation Information -# with open(os.path.join(GCBM_template_path,'config','localdomain.json')) as ld: -# localdomain = json.load(ld) -# info = f" - Simulation Start Date : {localdomain['LocalDomain']['start_date']}\n - Simulation End Date : {localdomain['LocalDomain']['end_date']}" - -# with open('GCBM_summary.txt','w') as outfile: -# outfile.write(api_inputs.to_markdown(index=False)+'\n\n') -# outfile.write(api_configs.to_markdown(index=False)+'\n\n') -# outfile.write(output_config+'\n\n') -# outfile.write(info) From 0fd84c84fcf4ffa9e4bfdd2872486d110c271ce9 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 15 Jun 2022 19:09:02 +0300 Subject: [PATCH 117/196] check if annual_summaries.py runs properly --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ca82555a..d68fdb76 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -101,6 +101,7 @@ jobs: env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | + pip install matplotlib pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py echo "# GCBM Model" >> report.md From 00572acae90804f3c434d008c08089b9345425e9 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Wed, 15 Jun 2022 19:36:55 +0300 Subject: [PATCH 118/196] compile results runs but cml comment cant display plot --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index d68fdb76..cca2c0c1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -105,5 +105,5 @@ jobs: pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py echo "# GCBM Model" >> report.md - echo "" >> report.md + echo "" >> report.md cml-send-comment report.md From f05d05b00622ee08d9a79466a9c69f3701e1c8e5 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 16 Jun 2022 13:09:40 +0300 Subject: [PATCH 119/196] check if total biomass plot is displayed --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index cca2c0c1..cad6a1de 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -105,5 +105,5 @@ jobs: pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py echo "# GCBM Model" >> report.md - echo "" >> report.md + cml-publish output/total_biomass_mt.png --md >> report.md cml-send-comment report.md From 245a5fcd7f075b5645466051bce52b7db3e71718 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 17 Jun 2022 13:11:40 +0300 Subject: [PATCH 120/196] display sim log --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index cad6a1de..2992165d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -106,4 +106,6 @@ jobs: python local/rest_api_gcbm/cml_report/annual_summaries.py echo "# GCBM Model" >> report.md cml-publish output/total_biomass_mt.png --md >> report.md + echo "## Simulation Logs" >> report.md + cat local/tests/*.txt >> report.md cml-send-comment report.md From a6140f8e1d45c7d0ae50e62ad1f21bf2c937963a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 17 Jun 2022 13:31:31 +0300 Subject: [PATCH 121/196] display sim log --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 2992165d..b5057b10 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -107,5 +107,7 @@ jobs: echo "# GCBM Model" >> report.md cml-publish output/total_biomass_mt.png --md >> report.md echo "## Simulation Logs" >> report.md + echo "`" >> report.md cat local/tests/*.txt >> report.md + echo "`" >> report.md cml-send-comment report.md From 9a779a8903314a2f268dff2b45f19bc13a62ab1b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 11:59:06 +0300 Subject: [PATCH 122/196] change cml-report to run on push/master and pr/master --- .github/workflows/cml-report.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b5057b10..6f6c8e86 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,5 +1,11 @@ name: simulation-report -on: [push] +on: + push: + branches: + - master + pull_request: + branches: + - master jobs: sim-summary: runs-on: [ubuntu-latest] From 88794519726a3d136c3539b7f6a16722361d074c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 12:15:59 +0300 Subject: [PATCH 123/196] update cml comment --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6f6c8e86..78ebb07c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -113,7 +113,7 @@ jobs: echo "# GCBM Model" >> report.md cml-publish output/total_biomass_mt.png --md >> report.md echo "## Simulation Logs" >> report.md - echo "`" >> report.md + echo "```" >> report.md cat local/tests/*.txt >> report.md - echo "`" >> report.md + echo "```" >> report.md cml-send-comment report.md From 956c6b94de83efeb526104f1567004fcfb71c351 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 13:22:27 +0300 Subject: [PATCH 124/196] update cml comment Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 78ebb07c..3e2c3110 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -113,7 +113,5 @@ jobs: echo "# GCBM Model" >> report.md cml-publish output/total_biomass_mt.png --md >> report.md echo "## Simulation Logs" >> report.md - echo "```" >> report.md cat local/tests/*.txt >> report.md - echo "```" >> report.md cml-send-comment report.md From 903d49c2dbf3905ee04177b6da963508837fe40b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 13:40:54 +0300 Subject: [PATCH 125/196] update cml comment Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 3e2c3110..e3c6219c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -110,7 +110,7 @@ jobs: pip install matplotlib pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py - echo "# GCBM Model" >> report.md + echo "# GCBM Model" > report.md cml-publish output/total_biomass_mt.png --md >> report.md echo "## Simulation Logs" >> report.md cat local/tests/*.txt >> report.md From 42fa9ab07efde7cc0dfb9b3a8c7d71dc93ad1bee Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 13:56:17 +0300 Subject: [PATCH 126/196] update cml comment Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index e3c6219c..0b6030c1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,8 +12,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup cml - uses: iterative/setup-cml@v1 + # - name: Setup cml + # uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -104,6 +104,7 @@ jobs: docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output - name: CML + uses: iterative/setup-cml@v1 env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | From f70185e8c2dacdf57a560643071588fd75a1f046 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 14:01:29 +0300 Subject: [PATCH 127/196] update cml comment Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 0b6030c1..e3c6219c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,8 +12,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - # - name: Setup cml - # uses: iterative/setup-cml@v1 + - name: Setup cml + uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -104,7 +104,6 @@ jobs: docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output - name: CML - uses: iterative/setup-cml@v1 env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | From 4bfc63daa6725fab12a2cab7cba1b70aa51a58c0 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 20 Jun 2022 17:37:55 +0300 Subject: [PATCH 128/196] update comment Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index e3c6219c..6dab196d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,8 +12,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup cml - uses: iterative/setup-cml@v1 + # - name: Setup cml + # uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -104,14 +104,9 @@ jobs: docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output - name: CML - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} + # env: + # repo_token: ${{ secrets.GITHUB_TOKEN }} run: | pip install matplotlib pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py - echo "# GCBM Model" > report.md - cml-publish output/total_biomass_mt.png --md >> report.md - echo "## Simulation Logs" >> report.md - cat local/tests/*.txt >> report.md - cml-send-comment report.md From cb2a776b8f633a9733a4021d39020388c1a7760a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 18:15:24 +0300 Subject: [PATCH 129/196] added job to upload logs as artifact Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6dab196d..9a88f246 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,8 +12,8 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - # - name: Setup cml - # uses: iterative/setup-cml@v1 + - name: Setup cml + uses: iterative/setup-cml@v1 - name: Setup python uses: actions/setup-python@v2 with: @@ -98,15 +98,25 @@ jobs: cd ../.. curl -d "title=run4" -X POST http://localhost:8080/gcbm/download -L -o output.zip python local/rest_api_gcbm/cml_report/process_output.py - + + - name: Upload Logs as artifact + - uses: actions/upload-artifact@v3 + with: + name: simulation-logs + path: local/tests/*.txt + - name: Compile Results run: | docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output - name: CML - # env: - # repo_token: ${{ secrets.GITHUB_TOKEN }} + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} run: | pip install matplotlib pip install pandas python local/rest_api_gcbm/cml_report/annual_summaries.py + echo "# GCBM Model" > report.md + echo "## Total Biomass Curve" >> report.md + cml-publish output/total_biomass_mt.png --md >> report.md + cml-send-comment report.md From 7a71b7326144edccf7c2e25fb09eb82ab749460c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 18:26:16 +0300 Subject: [PATCH 130/196] fix typo in line 103 cml-report.yml Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9a88f246..9fdf7c8d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -100,7 +100,7 @@ jobs: python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact - - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v3 with: name: simulation-logs path: local/tests/*.txt From c9a635d7b1d733e982779ca47bac772e21310b61 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 18:36:09 +0300 Subject: [PATCH 131/196] check if download works Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9fdf7c8d..7829494c 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -96,7 +96,7 @@ jobs: cd local/tests python simulation_status.py cd ../.. - curl -d "title=run4" -X POST http://localhost:8080/gcbm/download -L -o output.zip + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact From 40febe5a096c26a0e7177f17625a5ad93fdf42df Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 18:48:23 +0300 Subject: [PATCH 132/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 7829494c..0e4b80d9 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -43,9 +43,9 @@ jobs: - name: Unzip Files run: | - python -m pip install --upgrade pip python local/rest_api_gcbm/cml_report/process_input.py cd GCBM + ls curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ -F config_files='@config/provider_config.json' \ From c2bbf0ce9e3c2b863c6bd7c3419f59e13a5acd21 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 18:55:20 +0300 Subject: [PATCH 133/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 0e4b80d9..8752dd5b 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -44,8 +44,8 @@ jobs: - name: Unzip Files run: | python local/rest_api_gcbm/cml_report/process_input.py + ls -l GCBM cd GCBM - ls curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ -F config_files='@config/provider_config.json' \ From 07cea98c5680307707db3ec3396d721329fb5295 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 18:59:56 +0300 Subject: [PATCH 134/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8752dd5b..c6200687 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -44,7 +44,7 @@ jobs: - name: Unzip Files run: | python local/rest_api_gcbm/cml_report/process_input.py - ls -l GCBM + ls -l GCBM/GCBM_Demo_Run cd GCBM curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ From 6abfab5bebd3cbb02d873d17ae2b3684a424c288 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 19:07:00 +0300 Subject: [PATCH 135/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- local/rest_api_gcbm/cml_report/process_input.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c6200687..73f4ab27 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -45,7 +45,7 @@ jobs: run: | python local/rest_api_gcbm/cml_report/process_input.py ls -l GCBM/GCBM_Demo_Run - cd GCBM + cd GCBM/GCBM_Demo_Run curl -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ -F config_files='@config/provider_config.json' \ diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 899ca743..6cd815fa 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -2,6 +2,6 @@ import zipfile # Unzip file -zip = 'GCBM_Demo_Run.zip' +zip = os.path('GCBM_Demo_Run.zip') with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') From 688c2d79f277f22a864a7d0f8ffcea93f3cf06e9 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 19:11:52 +0300 Subject: [PATCH 136/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/process_input.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 6cd815fa..899ca743 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -2,6 +2,6 @@ import zipfile # Unzip file -zip = os.path('GCBM_Demo_Run.zip') +zip = 'GCBM_Demo_Run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') From e605a50063130a500e06f05f9556f127285706a9 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 19:21:18 +0300 Subject: [PATCH 137/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 73f4ab27..cde0d40d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -83,7 +83,7 @@ jobs: -F input='@input_database/gcbm_input.db' \ -F db='@input_database/gcbm_input.db' \ -F title="run4" \ - http://0.0.0.0:8080/gcbm/upload + -X POST http://0.0.0.0:8080/gcbm/upload - name: Run Simulation run: | From 39c21d9b02d401d0bc22bb83e51bf6b01168c246 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 19:31:05 +0300 Subject: [PATCH 138/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index cde0d40d..37a8c1a7 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -39,7 +39,7 @@ jobs: - name: Create New Sim run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + curl -d "title=run4" -X POST http://localhost:8080/gcbm/new - name: Unzip Files run: | @@ -83,7 +83,7 @@ jobs: -F input='@input_database/gcbm_input.db' \ -F db='@input_database/gcbm_input.db' \ -F title="run4" \ - -X POST http://0.0.0.0:8080/gcbm/upload + -X POST http://localhost:8080/gcbm/upload - name: Run Simulation run: | @@ -96,7 +96,7 @@ jobs: cd local/tests python simulation_status.py cd ../.. - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + curl -d "title=run4" -X POST http://localhost:8080/gcbm/download -L -o output.zip python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact From 743916e6cfc9d745638b6a450627382adf94dcd5 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 19:31:43 +0300 Subject: [PATCH 139/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 37a8c1a7..53e780a3 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -12,8 +12,7 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v2 - - name: Setup cml - uses: iterative/setup-cml@v1 + - name: Setup python uses: actions/setup-python@v2 with: @@ -109,6 +108,10 @@ jobs: run: | docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output + + - name: Setup cml + uses: iterative/setup-cml@v1 + - name: CML env: repo_token: ${{ secrets.GITHUB_TOKEN }} From b71347e89e1e7129548adcd1645e4cec32532b4f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 19:58:06 +0300 Subject: [PATCH 140/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 53e780a3..83892977 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -38,7 +38,7 @@ jobs: - name: Create New Sim run: | - curl -d "title=run4" -X POST http://localhost:8080/gcbm/new + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - name: Unzip Files run: | @@ -81,8 +81,8 @@ jobs: -F input='@layers/tiled/study_area.json' \ -F input='@input_database/gcbm_input.db' \ -F db='@input_database/gcbm_input.db' \ - -F title="run4" \ - -X POST http://localhost:8080/gcbm/upload + -F title='run4' \ + http://0.0.0.0:8080/gcbm/upload - name: Run Simulation run: | @@ -95,7 +95,7 @@ jobs: cd local/tests python simulation_status.py cd ../.. - curl -d "title=run4" -X POST http://localhost:8080/gcbm/download -L -o output.zip + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact @@ -111,7 +111,7 @@ jobs: - name: Setup cml uses: iterative/setup-cml@v1 - + - name: CML env: repo_token: ${{ secrets.GITHUB_TOKEN }} From 74499a208113f77c027e23f1a6a4cd928c69a4a7 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 20:12:34 +0300 Subject: [PATCH 141/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 74 ++++++++++++++++---------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 83892977..500f8caa 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -45,43 +45,43 @@ jobs: python local/rest_api_gcbm/cml_report/process_input.py ls -l GCBM/GCBM_Demo_Run cd GCBM/GCBM_Demo_Run - curl -F config_files='@config/variables.json' \ - -F config_files='@config/spinup.json' \ - -F config_files='@config/provider_config.json' \ - -F config_files='@config/pools_cbm.json' \ - -F config_files='@config/modules_output.json' \ - -F config_files='@config/modules_cbm.json' \ - -F config_files='@config/logging.conf' \ - -F config_files='@config/localdomain.json' \ - -F config_files='@config/internal_variables.json' \ - -F config_files='@config/gcbm_config.cfg' \ - -F input='@layers/tiled/bounding_box.tiff' \ - -F input='@layers/tiled/Classifier1_moja.json' \ - -F input='@layers/tiled/Classifier1_moja.tiff' \ - -F input='@layers/tiled/Classifier2_moja.json' \ - -F input='@layers/tiled/Classifier2_moja.tiff' \ - -F input='@layers/tiled/disturbances_2011_moja.json' \ - -F input='@layers/tiled/disturbances_2011_moja.tiff' \ - -F input='@layers/tiled/disturbances_2012_moja.json' \ - -F input='@layers/tiled/disturbances_2012_moja.tiff' \ - -F input='@layers/tiled/disturbances_2013_moja.json' \ - -F input='@layers/tiled/disturbances_2013_moja.tiff' \ - -F input='@layers/tiled/disturbances_2014_moja.json' \ - -F input='@layers/tiled/disturbances_2014_moja.tiff' \ - -F input='@layers/tiled/disturbances_2015_moja.json' \ - -F input='@layers/tiled/disturbances_2015_moja.tiff' \ - -F input='@layers/tiled/disturbances_2016_moja.json' \ - -F input='@layers/tiled/disturbances_2016_moja.tiff' \ - -F input='@layers/tiled/disturbances_2018_moja.json' \ - -F input='@layers/tiled/disturbances_2018_moja.tiff' \ - -F input='@layers/tiled/initial_age_moja.json' \ - -F input='@layers/tiled/initial_age_moja.tiff' \ - -F input='@layers/tiled/mean_annual_temperature_moja.json' \ - -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ - -F input='@layers/tiled/study_area.json' \ - -F input='@input_database/gcbm_input.db' \ - -F db='@input_database/gcbm_input.db' \ - -F title='run4' \ + curl -F config_files=@config/variables.json \ + -F config_files=@config/spinup.json \ + -F config_files=@config/provider_config.json \ + -F config_files=@config/pools_cbm.json \ + -F config_files=@config/modules_output.json \ + -F config_files=@config/modules_cbm.json \ + -F config_files=@config/logging.conf \ + -F config_files=@config/localdomain.json \ + -F config_files=@config/internal_variables.json \ + -F config_files=@config/gcbm_config.cfg \ + -F input=@layers/tiled/bounding_box.tiff \ + -F input=@layers/tiled/Classifier1_moja.json \ + -F input=@layers/tiled/Classifier1_moja.tiff \ + -F input=@layers/tiled/Classifier2_moja.json \ + -F input=@layers/tiled/Classifier2_moja.tiff \ + -F input=@layers/tiled/disturbances_2011_moja.json \ + -F input=@layers/tiled/disturbances_2011_moja.tiff \ + -F input=@layers/tiled/disturbances_2012_moja.json \ + -F input=@layers/tiled/disturbances_2012_moja.tiff \ + -F input=@layers/tiled/disturbances_2013_moja.json \ + -F input=@layers/tiled/disturbances_2013_moja.tiff \ + -F input=@layers/tiled/disturbances_2014_moja.json \ + -F input=@layers/tiled/disturbances_2014_moja.tiff \ + -F input=@layers/tiled/disturbances_2015_moja.json \ + -F input=@layers/tiled/disturbances_2015_moja.tiff \ + -F input=@layers/tiled/disturbances_2016_moja.json \ + -F input=@layers/tiled/disturbances_2016_moja.tiff \ + -F input=@layers/tiled/disturbances_2018_moja.json \ + -F input=@layers/tiled/disturbances_2018_moja.tiff \ + -F input=@layers/tiled/initial_age_moja.json \ + -F input=@layers/tiled/initial_age_moja.tiff \ + -F input=@layers/tiled/mean_annual_temperature_moja.json \ + -F input=@layers/tiled/mean_annual_temperature_moja.tiff \ + -F input=@layers/tiled/study_area.json \ + -F input=@input_database/gcbm_input.db \ + -F db=@input_database/gcbm_input.db \ + -F title=run4 \ http://0.0.0.0:8080/gcbm/upload - name: Run Simulation From 1d28e27020869697eff0ccfe857a327fa831b131 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 20:21:28 +0300 Subject: [PATCH 142/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 72 ++++++++++++++++---------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 500f8caa..9e134834 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -45,42 +45,42 @@ jobs: python local/rest_api_gcbm/cml_report/process_input.py ls -l GCBM/GCBM_Demo_Run cd GCBM/GCBM_Demo_Run - curl -F config_files=@config/variables.json \ - -F config_files=@config/spinup.json \ - -F config_files=@config/provider_config.json \ - -F config_files=@config/pools_cbm.json \ - -F config_files=@config/modules_output.json \ - -F config_files=@config/modules_cbm.json \ - -F config_files=@config/logging.conf \ - -F config_files=@config/localdomain.json \ - -F config_files=@config/internal_variables.json \ - -F config_files=@config/gcbm_config.cfg \ - -F input=@layers/tiled/bounding_box.tiff \ - -F input=@layers/tiled/Classifier1_moja.json \ - -F input=@layers/tiled/Classifier1_moja.tiff \ - -F input=@layers/tiled/Classifier2_moja.json \ - -F input=@layers/tiled/Classifier2_moja.tiff \ - -F input=@layers/tiled/disturbances_2011_moja.json \ - -F input=@layers/tiled/disturbances_2011_moja.tiff \ - -F input=@layers/tiled/disturbances_2012_moja.json \ - -F input=@layers/tiled/disturbances_2012_moja.tiff \ - -F input=@layers/tiled/disturbances_2013_moja.json \ - -F input=@layers/tiled/disturbances_2013_moja.tiff \ - -F input=@layers/tiled/disturbances_2014_moja.json \ - -F input=@layers/tiled/disturbances_2014_moja.tiff \ - -F input=@layers/tiled/disturbances_2015_moja.json \ - -F input=@layers/tiled/disturbances_2015_moja.tiff \ - -F input=@layers/tiled/disturbances_2016_moja.json \ - -F input=@layers/tiled/disturbances_2016_moja.tiff \ - -F input=@layers/tiled/disturbances_2018_moja.json \ - -F input=@layers/tiled/disturbances_2018_moja.tiff \ - -F input=@layers/tiled/initial_age_moja.json \ - -F input=@layers/tiled/initial_age_moja.tiff \ - -F input=@layers/tiled/mean_annual_temperature_moja.json \ - -F input=@layers/tiled/mean_annual_temperature_moja.tiff \ - -F input=@layers/tiled/study_area.json \ - -F input=@input_database/gcbm_input.db \ - -F db=@input_database/gcbm_input.db \ + curl -F config_files=config/variables.json \ + -F config_files=config/spinup.json \ + -F config_files=config/provider_config.json \ + -F config_files=config/pools_cbm.json \ + -F config_files=config/modules_output.json \ + -F config_files=config/modules_cbm.json \ + -F config_files=config/logging.conf \ + -F config_files=config/localdomain.json \ + -F config_files=config/internal_variables.json \ + -F config_files=config/gcbm_config.cfg \ + -F input=layers/tiled/bounding_box.tiff \ + -F input=layers/tiled/Classifier1_moja.json \ + -F input=layers/tiled/Classifier1_moja.tiff \ + -F input=layers/tiled/Classifier2_moja.json \ + -F input=layers/tiled/Classifier2_moja.tiff \ + -F input=layers/tiled/disturbances_2011_moja.json \ + -F input=layers/tiled/disturbances_2011_moja.tiff \ + -F input=layers/tiled/disturbances_2012_moja.json \ + -F input=layers/tiled/disturbances_2012_moja.tiff \ + -F input=layers/tiled/disturbances_2013_moja.json \ + -F input=layers/tiled/disturbances_2013_moja.tiff \ + -F input=layers/tiled/disturbances_2014_moja.json \ + -F input=layers/tiled/disturbances_2014_moja.tiff \ + -F input=layers/tiled/disturbances_2015_moja.json \ + -F input=layers/tiled/disturbances_2015_moja.tiff \ + -F input=layers/tiled/disturbances_2016_moja.json \ + -F input=layers/tiled/disturbances_2016_moja.tiff \ + -F input=layers/tiled/disturbances_2018_moja.json \ + -F input=layers/tiled/disturbances_2018_moja.tiff \ + -F input=layers/tiled/initial_age_moja.json \ + -F input=layers/tiled/initial_age_moja.tiff \ + -F input=layers/tiled/mean_annual_temperature_moja.json \ + -F input=layers/tiled/mean_annual_temperature_moja.tiff \ + -F input=layers/tiled/study_area.json \ + -F input=input_database/gcbm_input.db \ + -F db=input_database/gcbm_input.db \ -F title=run4 \ http://0.0.0.0:8080/gcbm/upload From 9ab7d318af6616dea8efbba508bd3c556eeb4afd Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 20:46:52 +0300 Subject: [PATCH 143/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 74 ++++++++++++++++---------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9e134834..831f2742 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -45,43 +45,43 @@ jobs: python local/rest_api_gcbm/cml_report/process_input.py ls -l GCBM/GCBM_Demo_Run cd GCBM/GCBM_Demo_Run - curl -F config_files=config/variables.json \ - -F config_files=config/spinup.json \ - -F config_files=config/provider_config.json \ - -F config_files=config/pools_cbm.json \ - -F config_files=config/modules_output.json \ - -F config_files=config/modules_cbm.json \ - -F config_files=config/logging.conf \ - -F config_files=config/localdomain.json \ - -F config_files=config/internal_variables.json \ - -F config_files=config/gcbm_config.cfg \ - -F input=layers/tiled/bounding_box.tiff \ - -F input=layers/tiled/Classifier1_moja.json \ - -F input=layers/tiled/Classifier1_moja.tiff \ - -F input=layers/tiled/Classifier2_moja.json \ - -F input=layers/tiled/Classifier2_moja.tiff \ - -F input=layers/tiled/disturbances_2011_moja.json \ - -F input=layers/tiled/disturbances_2011_moja.tiff \ - -F input=layers/tiled/disturbances_2012_moja.json \ - -F input=layers/tiled/disturbances_2012_moja.tiff \ - -F input=layers/tiled/disturbances_2013_moja.json \ - -F input=layers/tiled/disturbances_2013_moja.tiff \ - -F input=layers/tiled/disturbances_2014_moja.json \ - -F input=layers/tiled/disturbances_2014_moja.tiff \ - -F input=layers/tiled/disturbances_2015_moja.json \ - -F input=layers/tiled/disturbances_2015_moja.tiff \ - -F input=layers/tiled/disturbances_2016_moja.json \ - -F input=layers/tiled/disturbances_2016_moja.tiff \ - -F input=layers/tiled/disturbances_2018_moja.json \ - -F input=layers/tiled/disturbances_2018_moja.tiff \ - -F input=layers/tiled/initial_age_moja.json \ - -F input=layers/tiled/initial_age_moja.tiff \ - -F input=layers/tiled/mean_annual_temperature_moja.json \ - -F input=layers/tiled/mean_annual_temperature_moja.tiff \ - -F input=layers/tiled/study_area.json \ - -F input=input_database/gcbm_input.db \ - -F db=input_database/gcbm_input.db \ - -F title=run4 \ + curl -F config_files='config/variables.json' \ + -F config_files='@config/spinup.json' \ + -F config_files='@config/provider_config.json' \ + -F config_files='@config/pools_cbm.json' \ + -F config_files='@config/modules_output.json' \ + -F config_files='@config/modules_cbm.json' \ + -F config_files='@config/logging.conf' \ + -F config_files='@config/localdomain.json' \ + -F config_files='@config/internal_variables.json' \ + -F config_files='@config/gcbm_config.cfg' \ + -F input='@layers/tiled/bounding_box.tiff' \ + -F input='@layers/tiled/Classifier1_moja.json' \ + -F input='@layers/tiled/Classifier1_moja.tiff' \ + -F input='@layers/tiled/Classifier2_moja.json' \ + -F input='@layers/tiled/Classifier2_moja.tiff' \ + -F input='@layers/tiled/disturbances_2011_moja.json' \ + -F input='@layers/tiled/disturbances_2011_moja.tiff' \ + -F input='@layers/tiled/disturbances_2012_moja.json' \ + -F input='@layers/tiled/disturbances_2012_moja.tiff' \ + -F input='@layers/tiled/disturbances_2013_moja.json' \ + -F input='@layers/tiled/disturbances_2013_moja.tiff' \ + -F input='@layers/tiled/disturbances_2014_moja.json' \ + -F input='@layers/tiled/disturbances_2014_moja.tiff' \ + -F input='@layers/tiled/disturbances_2015_moja.json' \ + -F input='@layers/tiled/disturbances_2015_moja.tiff' \ + -F input='@layers/tiled/disturbances_2016_moja.json' \ + -F input='@layers/tiled/disturbances_2016_moja.tiff' \ + -F input='@layers/tiled/disturbances_2018_moja.json' \ + -F input='@layers/tiled/disturbances_2018_moja.tiff' \ + -F input='@layers/tiled/initial_age_moja.json' \ + -F input='@layers/tiled/initial_age_moja.tiff' \ + -F input='@layers/tiled/mean_annual_temperature_moja.json' \ + -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ + -F input='@layers/tiled/study_area.json' \ + -F input='@input_database/gcbm_input.db' \ + -F db='@input_database/gcbm_input.db' \ + -F title="run4" \ http://0.0.0.0:8080/gcbm/upload - name: Run Simulation From d644c3d780caf745ee4bda24fd062a137f9a1fc3 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 20:52:18 +0300 Subject: [PATCH 144/196] check correct paths Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 79 +++++++++++++++++--------------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 831f2742..b63590fa 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -45,44 +45,47 @@ jobs: python local/rest_api_gcbm/cml_report/process_input.py ls -l GCBM/GCBM_Demo_Run cd GCBM/GCBM_Demo_Run - curl -F config_files='config/variables.json' \ - -F config_files='@config/spinup.json' \ - -F config_files='@config/provider_config.json' \ - -F config_files='@config/pools_cbm.json' \ - -F config_files='@config/modules_output.json' \ - -F config_files='@config/modules_cbm.json' \ - -F config_files='@config/logging.conf' \ - -F config_files='@config/localdomain.json' \ - -F config_files='@config/internal_variables.json' \ - -F config_files='@config/gcbm_config.cfg' \ - -F input='@layers/tiled/bounding_box.tiff' \ - -F input='@layers/tiled/Classifier1_moja.json' \ - -F input='@layers/tiled/Classifier1_moja.tiff' \ - -F input='@layers/tiled/Classifier2_moja.json' \ - -F input='@layers/tiled/Classifier2_moja.tiff' \ - -F input='@layers/tiled/disturbances_2011_moja.json' \ - -F input='@layers/tiled/disturbances_2011_moja.tiff' \ - -F input='@layers/tiled/disturbances_2012_moja.json' \ - -F input='@layers/tiled/disturbances_2012_moja.tiff' \ - -F input='@layers/tiled/disturbances_2013_moja.json' \ - -F input='@layers/tiled/disturbances_2013_moja.tiff' \ - -F input='@layers/tiled/disturbances_2014_moja.json' \ - -F input='@layers/tiled/disturbances_2014_moja.tiff' \ - -F input='@layers/tiled/disturbances_2015_moja.json' \ - -F input='@layers/tiled/disturbances_2015_moja.tiff' \ - -F input='@layers/tiled/disturbances_2016_moja.json' \ - -F input='@layers/tiled/disturbances_2016_moja.tiff' \ - -F input='@layers/tiled/disturbances_2018_moja.json' \ - -F input='@layers/tiled/disturbances_2018_moja.tiff' \ - -F input='@layers/tiled/initial_age_moja.json' \ - -F input='@layers/tiled/initial_age_moja.tiff' \ - -F input='@layers/tiled/mean_annual_temperature_moja.json' \ - -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ - -F input='@layers/tiled/study_area.json' \ - -F input='@input_database/gcbm_input.db' \ - -F db='@input_database/gcbm_input.db' \ - -F title="run4" \ - http://0.0.0.0:8080/gcbm/upload + ls -l config + ls -l layers/tiled + ls -l input_database + # curl -F config_files='config/variables.json' \ + # -F config_files='@config/spinup.json' \ + # -F config_files='@config/provider_config.json' \ + # -F config_files='@config/pools_cbm.json' \ + # -F config_files='@config/modules_output.json' \ + # -F config_files='@config/modules_cbm.json' \ + # -F config_files='@config/logging.conf' \ + # -F config_files='@config/localdomain.json' \ + # -F config_files='@config/internal_variables.json' \ + # -F config_files='@config/gcbm_config.cfg' \ + # -F input='@layers/tiled/bounding_box.tiff' \ + # -F input='@layers/tiled/Classifier1_moja.json' \ + # -F input='@layers/tiled/Classifier1_moja.tiff' \ + # -F input='@layers/tiled/Classifier2_moja.json' \ + # -F input='@layers/tiled/Classifier2_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2011_moja.json' \ + # -F input='@layers/tiled/disturbances_2011_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2012_moja.json' \ + # -F input='@layers/tiled/disturbances_2012_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2013_moja.json' \ + # -F input='@layers/tiled/disturbances_2013_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2014_moja.json' \ + # -F input='@layers/tiled/disturbances_2014_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2015_moja.json' \ + # -F input='@layers/tiled/disturbances_2015_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2016_moja.json' \ + # -F input='@layers/tiled/disturbances_2016_moja.tiff' \ + # -F input='@layers/tiled/disturbances_2018_moja.json' \ + # -F input='@layers/tiled/disturbances_2018_moja.tiff' \ + # -F input='@layers/tiled/initial_age_moja.json' \ + # -F input='@layers/tiled/initial_age_moja.tiff' \ + # -F input='@layers/tiled/mean_annual_temperature_moja.json' \ + # -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ + # -F input='@layers/tiled/study_area.json' \ + # -F input='@input_database/gcbm_input.db' \ + # -F db='@input_database/gcbm_input.db' \ + # -F title="run4" \ + # http://0.0.0.0:8080/gcbm/upload - name: Run Simulation run: | From 2dc0e2d205f9b060d26e0f39c824b42257ae2c1c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 23 Jun 2022 20:57:57 +0300 Subject: [PATCH 145/196] check why curl 26 in upload Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b63590fa..b542bb34 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -48,44 +48,44 @@ jobs: ls -l config ls -l layers/tiled ls -l input_database - # curl -F config_files='config/variables.json' \ - # -F config_files='@config/spinup.json' \ - # -F config_files='@config/provider_config.json' \ - # -F config_files='@config/pools_cbm.json' \ - # -F config_files='@config/modules_output.json' \ - # -F config_files='@config/modules_cbm.json' \ - # -F config_files='@config/logging.conf' \ - # -F config_files='@config/localdomain.json' \ - # -F config_files='@config/internal_variables.json' \ - # -F config_files='@config/gcbm_config.cfg' \ - # -F input='@layers/tiled/bounding_box.tiff' \ - # -F input='@layers/tiled/Classifier1_moja.json' \ - # -F input='@layers/tiled/Classifier1_moja.tiff' \ - # -F input='@layers/tiled/Classifier2_moja.json' \ - # -F input='@layers/tiled/Classifier2_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2011_moja.json' \ - # -F input='@layers/tiled/disturbances_2011_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2012_moja.json' \ - # -F input='@layers/tiled/disturbances_2012_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2013_moja.json' \ - # -F input='@layers/tiled/disturbances_2013_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2014_moja.json' \ - # -F input='@layers/tiled/disturbances_2014_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2015_moja.json' \ - # -F input='@layers/tiled/disturbances_2015_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2016_moja.json' \ - # -F input='@layers/tiled/disturbances_2016_moja.tiff' \ - # -F input='@layers/tiled/disturbances_2018_moja.json' \ - # -F input='@layers/tiled/disturbances_2018_moja.tiff' \ - # -F input='@layers/tiled/initial_age_moja.json' \ - # -F input='@layers/tiled/initial_age_moja.tiff' \ - # -F input='@layers/tiled/mean_annual_temperature_moja.json' \ - # -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ - # -F input='@layers/tiled/study_area.json' \ - # -F input='@input_database/gcbm_input.db' \ - # -F db='@input_database/gcbm_input.db' \ - # -F title="run4" \ - # http://0.0.0.0:8080/gcbm/upload + curl -F config_files='@config/variables.json' \ + -F config_files='@config/spinup.json' \ + -F config_files='@config/provider_config.json' \ + -F config_files='@config/pools_cbm.json' \ + -F config_files='@config/modules_output.json' \ + -F config_files='@config/modules_cbm.json' \ + -F config_files='@config/logging.conf' \ + -F config_files='@config/localdomain.json' \ + -F config_files='@config/internal_variables.json' \ + -F config_files='@config/gcbm_config.cfg' \ + -F input='@layers/tiled/bounding_box.tiff' \ + -F input='@layers/tiled/Classifier1_moja.json' \ + -F input='@layers/tiled/Classifier1_moja.tiff' \ + -F input='@layers/tiled/Classifier2_moja.json' \ + -F input='@layers/tiled/Classifier2_moja.tiff' \ + -F input='@layers/tiled/disturbances_2011_moja.json' \ + -F input='@layers/tiled/disturbances_2011_moja.tiff' \ + -F input='@layers/tiled/disturbances_2012_moja.json' \ + -F input='@layers/tiled/disturbances_2012_moja.tiff' \ + -F input='@layers/tiled/disturbances_2013_moja.json' \ + -F input='@layers/tiled/disturbances_2013_moja.tiff' \ + -F input='@layers/tiled/disturbances_2014_moja.json' \ + -F input='@layers/tiled/disturbances_2014_moja.tiff' \ + -F input='@layers/tiled/disturbances_2015_moja.json' \ + -F input='@layers/tiled/disturbances_2015_moja.tiff' \ + -F input='@layers/tiled/disturbances_2016_moja.json' \ + -F input='@layers/tiled/disturbances_2016_moja.tiff' \ + -F input='@layers/tiled/disturbances_2018_moja.json' \ + -F input='@layers/tiled/disturbances_2018_moja.tiff' \ + -F input='@layers/tiled/initial_age_moja.json' \ + -F input='@layers/tiled/initial_age_moja.tiff' \ + -F input='@layers/tiled/mean_annual_temperature_moja.json' \ + -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ + -F input='@layers/tiled/study_area.json' \ + -F input='@input_database/gcbm_input.db' \ + -F db='@input_database/gcbm_input.db' \ + -F title="run4" \ + http://0.0.0.0:8080/gcbm/upload - name: Run Simulation run: | From 2a3865e975d7961430d6d0f773b3995f834f09c0 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 09:57:26 +0300 Subject: [PATCH 146/196] chech verbose cURL Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b542bb34..473b7021 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -48,7 +48,7 @@ jobs: ls -l config ls -l layers/tiled ls -l input_database - curl -F config_files='@config/variables.json' \ + curl -v -F config_files='@config/variables.json' \ -F config_files='@config/spinup.json' \ -F config_files='@config/provider_config.json' \ -F config_files='@config/pools_cbm.json' \ From 4a85d37bf8290f3da8ffe9d810b4c71c9a648867 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 10:44:49 +0300 Subject: [PATCH 147/196] upload via python Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 43 ---------------- .../rest_api_gcbm/cml_report/process_input.py | 49 +++++++++++++++++++ 2 files changed, 49 insertions(+), 43 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 473b7021..93225956 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -43,49 +43,6 @@ jobs: - name: Unzip Files run: | python local/rest_api_gcbm/cml_report/process_input.py - ls -l GCBM/GCBM_Demo_Run - cd GCBM/GCBM_Demo_Run - ls -l config - ls -l layers/tiled - ls -l input_database - curl -v -F config_files='@config/variables.json' \ - -F config_files='@config/spinup.json' \ - -F config_files='@config/provider_config.json' \ - -F config_files='@config/pools_cbm.json' \ - -F config_files='@config/modules_output.json' \ - -F config_files='@config/modules_cbm.json' \ - -F config_files='@config/logging.conf' \ - -F config_files='@config/localdomain.json' \ - -F config_files='@config/internal_variables.json' \ - -F config_files='@config/gcbm_config.cfg' \ - -F input='@layers/tiled/bounding_box.tiff' \ - -F input='@layers/tiled/Classifier1_moja.json' \ - -F input='@layers/tiled/Classifier1_moja.tiff' \ - -F input='@layers/tiled/Classifier2_moja.json' \ - -F input='@layers/tiled/Classifier2_moja.tiff' \ - -F input='@layers/tiled/disturbances_2011_moja.json' \ - -F input='@layers/tiled/disturbances_2011_moja.tiff' \ - -F input='@layers/tiled/disturbances_2012_moja.json' \ - -F input='@layers/tiled/disturbances_2012_moja.tiff' \ - -F input='@layers/tiled/disturbances_2013_moja.json' \ - -F input='@layers/tiled/disturbances_2013_moja.tiff' \ - -F input='@layers/tiled/disturbances_2014_moja.json' \ - -F input='@layers/tiled/disturbances_2014_moja.tiff' \ - -F input='@layers/tiled/disturbances_2015_moja.json' \ - -F input='@layers/tiled/disturbances_2015_moja.tiff' \ - -F input='@layers/tiled/disturbances_2016_moja.json' \ - -F input='@layers/tiled/disturbances_2016_moja.tiff' \ - -F input='@layers/tiled/disturbances_2018_moja.json' \ - -F input='@layers/tiled/disturbances_2018_moja.tiff' \ - -F input='@layers/tiled/initial_age_moja.json' \ - -F input='@layers/tiled/initial_age_moja.tiff' \ - -F input='@layers/tiled/mean_annual_temperature_moja.json' \ - -F input='@layers/tiled/mean_annual_temperature_moja.tiff' \ - -F input='@layers/tiled/study_area.json' \ - -F input='@input_database/gcbm_input.db' \ - -F db='@input_database/gcbm_input.db' \ - -F title="run4" \ - http://0.0.0.0:8080/gcbm/upload - name: Run Simulation run: | diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 899ca743..b1734ab7 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -1,7 +1,56 @@ import os import zipfile +import requests +import json # Unzip file zip = 'GCBM_Demo_Run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') + +os.chdir('GCBM') + +url = "http://localhost:8080/gcbm/upload" + +files = { + 'config_files': open(os.path.join('config','variables.json'),'rb'), + 'config_files': open(os.path.join('config','spinup.json'),'rb'), + 'config_files': open(os.path.join('config','provider_config.json'),'rb'), + 'config_files': open(os.path.join('config','pools_cbm.json'),'rb'), + 'config_files': open(os.path.join('config','modules_output.json'),'rb'), + 'config_files': open(os.path.join('config','modules_cbm.json'),'rb'), + 'config_files': open(os.path.join('config','logging.conf'),'rb'), + 'config_files': open(os.path.join('config','localdomain.json'),'rb'), + 'config_files': open(os.path.join('config','internal_variables.json'),'rb'), + 'config_files': open(os.path.join('config','gcbm_config.cfg'),'rb'), + 'input': open(os.path.join('layers','tiled','bounding_box.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','Classifier1_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','Classifier1_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','Classifier2_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','Classifier2_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2011_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2011_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2012_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2012_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2013_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2013_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2014_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2014_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2015_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2015_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2016_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2016_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2018_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','disturbances_2018_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','initial_age_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','initial_age_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja.json'),'rb'), + 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','study_area.json'),'rb'), + 'input': open(os.path.join('input_database','gcbm_input.db'),'rb'), + 'db': open(os.path.join('input_database','gcbm_input.db'),'rb'), + 'title':'run4' +} + +res = requests.post(url,files=files) +print(json.loads(res.text)) From 6fe45e15dc2abdc00782960eed1f523a16a221d2 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 10:52:46 +0300 Subject: [PATCH 148/196] upload via python Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 93225956..ec1f9839 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -42,11 +42,12 @@ jobs: - name: Unzip Files run: | + pip install requests python local/rest_api_gcbm/cml_report/process_input.py - name: Run Simulation run: | - pip install requests + python local/rest_api_gcbm/cml_report/run_gcbm.py From 907ddfd03dce9428d2f5725d0932f4319813794d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 11:04:35 +0300 Subject: [PATCH 149/196] upload via python Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/process_input.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index b1734ab7..e82b68fc 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -8,7 +8,7 @@ with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') -os.chdir('GCBM') +os.chdir(os.path.join('GCBM','GCBM_Demo_Run')) url = "http://localhost:8080/gcbm/upload" From 7bbb83085a417c90ae47aabe0ebbdecc0d2ab031 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 11:11:36 +0300 Subject: [PATCH 150/196] upload via python Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/process_input.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index e82b68fc..72586cad 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -12,6 +12,8 @@ url = "http://localhost:8080/gcbm/upload" +print(os.listdir(os.path.join(os.path.join('GCBM','GCBM_Demo_Run','layers','tiled')))) + files = { 'config_files': open(os.path.join('config','variables.json'),'rb'), 'config_files': open(os.path.join('config','spinup.json'),'rb'), From 2053d17a974a2f139e39fc95b2341fc73e77323a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 11:17:30 +0300 Subject: [PATCH 151/196] upload via python Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/process_input.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 72586cad..c9120041 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -8,12 +8,12 @@ with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') +print(os.listdir(os.path.join(os.path.join('GCBM','GCBM_Demo_Run','layers','tiled')))) + os.chdir(os.path.join('GCBM','GCBM_Demo_Run')) url = "http://localhost:8080/gcbm/upload" -print(os.listdir(os.path.join(os.path.join('GCBM','GCBM_Demo_Run','layers','tiled')))) - files = { 'config_files': open(os.path.join('config','variables.json'),'rb'), 'config_files': open(os.path.join('config','spinup.json'),'rb'), From f91654846c368944f44b738558638fd4f3ee1ecf Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 11:24:26 +0300 Subject: [PATCH 152/196] upload via python Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/process_input.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index c9120041..b9cd8ffd 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -12,6 +12,7 @@ os.chdir(os.path.join('GCBM','GCBM_Demo_Run')) + url = "http://localhost:8080/gcbm/upload" files = { @@ -47,7 +48,7 @@ 'input': open(os.path.join('layers','tiled','initial_age_moja.json'),'rb'), 'input': open(os.path.join('layers','tiled','initial_age_moja.tiff'),'rb'), 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja.tiff'),'rb'), + 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja_masked.tiff'),'rb'), 'input': open(os.path.join('layers','tiled','study_area.json'),'rb'), 'input': open(os.path.join('input_database','gcbm_input.db'),'rb'), 'db': open(os.path.join('input_database','gcbm_input.db'),'rb'), From 878a67683a4eb72eb8520b1aab60b315866b4a0a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 11:32:45 +0300 Subject: [PATCH 153/196] update cml-report Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 43 +++++++++++++-- .../rest_api_gcbm/cml_report/process_input.py | 53 ------------------- 2 files changed, 40 insertions(+), 56 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ec1f9839..548a4d5e 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -42,14 +42,51 @@ jobs: - name: Unzip Files run: | - pip install requests python local/rest_api_gcbm/cml_report/process_input.py + cd GCBM/GCBM_Demo_Run + ls -l layers/tiled + curl -F config_files='@config/variables.json' \ + -F config_files='@config/spinup.json' \ + -F config_files='@config/provider_config.json' \ + -F config_files='@config/pools_cbm.json' \ + -F config_files='@config/modules_output.json' \ + -F config_files='@config/modules_cbm.json' \ + -F config_files='@config/logging.conf' \ + -F config_files='@config/localdomain.json' \ + -F config_files='@config/internal_variables.json' \ + -F config_files='@config/gcbm_config.cfg' \ + -F input='@layers/tiled/bounding_box.tiff' \ + -F input='@layers/tiled/Classifier1_moja.json' \ + -F input='@layers/tiled/Classifier1_moja.tiff' \ + -F input='@layers/tiled/Classifier2_moja.json' \ + -F input='@layers/tiled/Classifier2_moja.tiff' \ + -F input='@layers/tiled/disturbances_2011_moja.json' \ + -F input='@layers/tiled/disturbances_2011_moja.tiff' \ + -F input='@layers/tiled/disturbances_2012_moja.json' \ + -F input='@layers/tiled/disturbances_2012_moja.tiff' \ + -F input='@layers/tiled/disturbances_2013_moja.json' \ + -F input='@layers/tiled/disturbances_2013_moja.tiff' \ + -F input='@layers/tiled/disturbances_2014_moja.json' \ + -F input='@layers/tiled/disturbances_2014_moja.tiff' \ + -F input='@layers/tiled/disturbances_2015_moja.json' \ + -F input='@layers/tiled/disturbances_2015_moja.tiff' \ + -F input='@layers/tiled/disturbances_2016_moja.json' \ + -F input='@layers/tiled/disturbances_2016_moja.tiff' \ + -F input='@layers/tiled/disturbances_2018_moja.json' \ + -F input='@layers/tiled/disturbances_2018_moja.tiff' \ + -F input='@layers/tiled/initial_age_moja.json' \ + -F input='@layers/tiled/initial_age_moja.tiff' \ + -F input='@layers/tiled/mean_annual_temperature_moja.json' \ + -F input='@layers/tiled/mean_annual_temperature_moja_masked.tiff' \ + -F input='@layers/tiled/study_area.json' \ + -F input='@input_database/gcbm_input.db' \ + -F db='@input_database/gcbm_input.db' \ + -F title="run4" \ + http://localhost:8080/gcbm/upload - name: Run Simulation run: | - python local/rest_api_gcbm/cml_report/run_gcbm.py - - name: Retrive Logs and Download Results run: | diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index b9cd8ffd..9f12ba37 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -1,59 +1,6 @@ -import os import zipfile -import requests -import json # Unzip file zip = 'GCBM_Demo_Run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') - -print(os.listdir(os.path.join(os.path.join('GCBM','GCBM_Demo_Run','layers','tiled')))) - -os.chdir(os.path.join('GCBM','GCBM_Demo_Run')) - - -url = "http://localhost:8080/gcbm/upload" - -files = { - 'config_files': open(os.path.join('config','variables.json'),'rb'), - 'config_files': open(os.path.join('config','spinup.json'),'rb'), - 'config_files': open(os.path.join('config','provider_config.json'),'rb'), - 'config_files': open(os.path.join('config','pools_cbm.json'),'rb'), - 'config_files': open(os.path.join('config','modules_output.json'),'rb'), - 'config_files': open(os.path.join('config','modules_cbm.json'),'rb'), - 'config_files': open(os.path.join('config','logging.conf'),'rb'), - 'config_files': open(os.path.join('config','localdomain.json'),'rb'), - 'config_files': open(os.path.join('config','internal_variables.json'),'rb'), - 'config_files': open(os.path.join('config','gcbm_config.cfg'),'rb'), - 'input': open(os.path.join('layers','tiled','bounding_box.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','Classifier1_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','Classifier1_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','Classifier2_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','Classifier2_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2011_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2011_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2012_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2012_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2013_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2013_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2014_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2014_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2015_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2015_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2016_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2016_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2018_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','disturbances_2018_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','initial_age_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','initial_age_moja.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja.json'),'rb'), - 'input': open(os.path.join('layers','tiled','mean_annual_temperature_moja_masked.tiff'),'rb'), - 'input': open(os.path.join('layers','tiled','study_area.json'),'rb'), - 'input': open(os.path.join('input_database','gcbm_input.db'),'rb'), - 'db': open(os.path.join('input_database','gcbm_input.db'),'rb'), - 'title':'run4' -} - -res = requests.post(url,files=files) -print(json.loads(res.text)) From cd2822888e3df2660851961e35a48474d8a19008 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 11:37:03 +0300 Subject: [PATCH 154/196] add requests module Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 548a4d5e..9f7448ea 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -86,6 +86,7 @@ jobs: - name: Run Simulation run: | + pip install requests python local/rest_api_gcbm/cml_report/run_gcbm.py - name: Retrive Logs and Download Results From e313bf58b8bd78202922cc9d37e19be7a006b806 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 12:11:17 +0300 Subject: [PATCH 155/196] new upload params check if it runs Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 50 +- .../rest_api_gcbm/cml_report/process_input.py | 2 +- local/rest_api_gcbm/templates/gcbm_config.cfg | 7 - .../templates/internal_variables.json | 34 - .../rest_api_gcbm/templates/localdomain.json | 31 - local/rest_api_gcbm/templates/logging.conf | 17 - .../rest_api_gcbm/templates/modules_cbm.json | 59 -- .../templates/modules_output.json | 816 ------------------ local/rest_api_gcbm/templates/pools_cbm.json | 34 - .../templates/provider_config.json | 21 - local/rest_api_gcbm/templates/spinup.json | 56 -- local/rest_api_gcbm/templates/variables.json | 257 ------ 12 files changed, 14 insertions(+), 1370 deletions(-) delete mode 100644 local/rest_api_gcbm/templates/gcbm_config.cfg delete mode 100644 local/rest_api_gcbm/templates/internal_variables.json delete mode 100644 local/rest_api_gcbm/templates/localdomain.json delete mode 100644 local/rest_api_gcbm/templates/logging.conf delete mode 100644 local/rest_api_gcbm/templates/modules_cbm.json delete mode 100644 local/rest_api_gcbm/templates/modules_output.json delete mode 100644 local/rest_api_gcbm/templates/pools_cbm.json delete mode 100644 local/rest_api_gcbm/templates/provider_config.json delete mode 100644 local/rest_api_gcbm/templates/spinup.json delete mode 100644 local/rest_api_gcbm/templates/variables.json diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 9f7448ea..80be1a1a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -43,44 +43,20 @@ jobs: - name: Unzip Files run: | python local/rest_api_gcbm/cml_report/process_input.py - cd GCBM/GCBM_Demo_Run + cd GCBM/GCBM_New_Demo_Run ls -l layers/tiled - curl -F config_files='@config/variables.json' \ - -F config_files='@config/spinup.json' \ - -F config_files='@config/provider_config.json' \ - -F config_files='@config/pools_cbm.json' \ - -F config_files='@config/modules_output.json' \ - -F config_files='@config/modules_cbm.json' \ - -F config_files='@config/logging.conf' \ - -F config_files='@config/localdomain.json' \ - -F config_files='@config/internal_variables.json' \ - -F config_files='@config/gcbm_config.cfg' \ - -F input='@layers/tiled/bounding_box.tiff' \ - -F input='@layers/tiled/Classifier1_moja.json' \ - -F input='@layers/tiled/Classifier1_moja.tiff' \ - -F input='@layers/tiled/Classifier2_moja.json' \ - -F input='@layers/tiled/Classifier2_moja.tiff' \ - -F input='@layers/tiled/disturbances_2011_moja.json' \ - -F input='@layers/tiled/disturbances_2011_moja.tiff' \ - -F input='@layers/tiled/disturbances_2012_moja.json' \ - -F input='@layers/tiled/disturbances_2012_moja.tiff' \ - -F input='@layers/tiled/disturbances_2013_moja.json' \ - -F input='@layers/tiled/disturbances_2013_moja.tiff' \ - -F input='@layers/tiled/disturbances_2014_moja.json' \ - -F input='@layers/tiled/disturbances_2014_moja.tiff' \ - -F input='@layers/tiled/disturbances_2015_moja.json' \ - -F input='@layers/tiled/disturbances_2015_moja.tiff' \ - -F input='@layers/tiled/disturbances_2016_moja.json' \ - -F input='@layers/tiled/disturbances_2016_moja.tiff' \ - -F input='@layers/tiled/disturbances_2018_moja.json' \ - -F input='@layers/tiled/disturbances_2018_moja.tiff' \ - -F input='@layers/tiled/initial_age_moja.json' \ - -F input='@layers/tiled/initial_age_moja.tiff' \ - -F input='@layers/tiled/mean_annual_temperature_moja.json' \ - -F input='@layers/tiled/mean_annual_temperature_moja_masked.tiff' \ - -F input='@layers/tiled/study_area.json' \ - -F input='@input_database/gcbm_input.db' \ - -F db='@input_database/gcbm_input.db' \ + curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2014_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2015_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2016_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2018_moja.tiff' \ + -F classifiers='@classifiers/Classifier1_moja.tiff' \ + -F classifiers='@classifiers/Classifier2_moja.tiff' \ + -F db='@db/gcbm_input.db' \ + -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ + -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ -F title="run4" \ http://localhost:8080/gcbm/upload diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 9f12ba37..66ed298c 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -1,6 +1,6 @@ import zipfile # Unzip file -zip = 'GCBM_Demo_Run.zip' +zip = 'GCBM_New_Demo_Run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') diff --git a/local/rest_api_gcbm/templates/gcbm_config.cfg b/local/rest_api_gcbm/templates/gcbm_config.cfg deleted file mode 100644 index e6640ac9..00000000 --- a/local/rest_api_gcbm/templates/gcbm_config.cfg +++ /dev/null @@ -1,7 +0,0 @@ -config=localdomain.json -config=pools_cbm.json -config=modules_cbm.json -config=modules_output.json -config=spinup.json -config=variables.json -config=internal_variables.json diff --git a/local/rest_api_gcbm/templates/internal_variables.json b/local/rest_api_gcbm/templates/internal_variables.json deleted file mode 100644 index d9f71537..00000000 --- a/local/rest_api_gcbm/templates/internal_variables.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Variables": { - "spatialLocationInfo": { - "flintdata": { - "type": "SpatialLocationInfo", - "library": "internal.flint", - "settings": {} - } - }, - "simulateLandUnit": true, - "is_decaying": true, - "spinup_moss_only": false, - "run_peatland": false, - "peatlandId": -1, - "is_forest": true, - "run_moss": false, - "run_delay": false, - "landUnitBuildSuccess": true, - "regen_delay": 0, - "age": 0, - "tileIndex": 0, - "blockIndex": 0, - "cellIndex": 0, - "LandUnitId": -1, - "landUnitArea": 0, - "classifier_set": {}, - "localDomainId": 0, - "LocalDomainId": 1, - "age_class": 0, - "historic_land_class": "FL", - "current_land_class": "FL", - "unfccc_land_class": "UNFCCC_FL_R_FL" - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/localdomain.json b/local/rest_api_gcbm/templates/localdomain.json deleted file mode 100644 index 5bb04f33..00000000 --- a/local/rest_api_gcbm/templates/localdomain.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Libraries": { - "moja.modules.cbm": "external", - "moja.modules.gdal": "external" - }, - "LocalDomain": { - "start_date": "2010/01/01", - "end_date": "2021/01/01", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "simulateLandUnit": "simulateLandUnit", - "sequencer_library": "moja.modules.cbm", - "sequencer": "CBMSequencer", - "timing": "annual", - "type": "spatial_tiled", - "landscape": { - "provider": "RasterTiled", - "num_threads": 4, - "tiles": [ - { - "x": -106, - "y": 55, - "index": 12674 - } - ], - "x_pixels": 4000, - "y_pixels": 4000, - "tile_size_x": 1.0, - "tile_size_y": 1.0 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/logging.conf b/local/rest_api_gcbm/templates/logging.conf deleted file mode 100644 index 2da5fec5..00000000 --- a/local/rest_api_gcbm/templates/logging.conf +++ /dev/null @@ -1,17 +0,0 @@ -[Core] -DisableLogging=false - -[Sinks.console] -Destination=Console -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= info" - -[Sinks.file] -Destination=TextFile -FileName="output/simulation.log" -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/templates/modules_cbm.json b/local/rest_api_gcbm/templates/modules_cbm.json deleted file mode 100644 index 0b237195..00000000 --- a/local/rest_api_gcbm/templates/modules_cbm.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "Modules": { - "CBMBuildLandUnitModule": { - "order": 1, - "library": "moja.modules.cbm" - }, - "CBMSequencer": { - "order": 2, - "library": "moja.modules.cbm" - }, - "CBMDisturbanceListener": { - "enabled": true, - "order": 3, - "library": "moja.modules.cbm", - "settings": { - "vars": [ - - ] - } - }, - "CBMDisturbanceEventModule": { - "enabled": true, - "order": 4, - "library": "moja.modules.cbm" - }, - "CBMTransitionRulesModule": { - "enabled": true, - "order": 5, - "library": "moja.modules.cbm" - }, - "CBMLandClassTransitionModule": { - "enabled": true, - "order": 6, - "library": "moja.modules.cbm" - }, - "CBMGrowthModule": { - "enabled": true, - "order": 7, - "library": "moja.modules.cbm" - }, - "CBMDecayModule": { - "enabled": true, - "order": 8, - "library": "moja.modules.cbm", - "settings": { - "extra_decay_removals": false - } - }, - "CBMAgeIndicators": { - "enabled": true, - "order": 9, - "library": "moja.modules.cbm" - }, - "TransactionManagerAfterSubmitModule": { - "order": 10, - "library": "internal.flint" - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/modules_output.json b/local/rest_api_gcbm/templates/modules_output.json deleted file mode 100644 index cad01b28..00000000 --- a/local/rest_api_gcbm/templates/modules_output.json +++ /dev/null @@ -1,816 +0,0 @@ -{ - "Modules": { - "WriteVariableGeotiff": { - "enabled": true, - "order": 11, - "library": "moja.modules.gdal", - "settings": { - "items": [ - { - "data_name": "Age", - "enabled": true, - "variable_data_type": "Int16", - "on_notification": "OutputStep", - "variable_name": "age" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther" - ], - "data_name": "AG_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Total_Ecosystem_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "data_name": "Total_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Dead_Organic_Matter_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "BelowGroundVeryFastSoil", - "BelowGroundSlowSoil" - ], - "data_name": "Soil_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - "data_name": "NPP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ], - "flux_source": "annual_process" - } - ], - "data_name": "NEP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "flux_source": "annual_process", - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "Decomp_Releases", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "NBP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - } - ], - "data_name": "Delta_Total_Ecosystem", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - } - ], - "data_name": "Delta_Total_Biomass", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO", - "Products" - ] - } - ], - "data_name": "Delta_Total_DOM", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ] - }, - "data_name": "Total_Biomass_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_DOM_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO2_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CH4" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CH4_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ] - } - ], - "data_name": "Ecosystem_Removals", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Bio_To_DOM_From_Disturbances", - "enabled": true, - "on_notification": "OutputStep" - } - ], - "output_path": "output" - } - }, - "CBMAggregatorLandUnitData": { - "enabled": true, - "order": 12, - "library": "moja.modules.cbm", - "settings": { - "reporting_classifier_set": "reporting_classifiers" - } - }, - "CBMAggregatorSQLiteWriter": { - "enabled": true, - "order": 13, - "library": "moja.modules.cbm", - "settings": { - "databasename": "output/simulation_output.db" - } - } - } -} diff --git a/local/rest_api_gcbm/templates/pools_cbm.json b/local/rest_api_gcbm/templates/pools_cbm.json deleted file mode 100644 index 35979d38..00000000 --- a/local/rest_api_gcbm/templates/pools_cbm.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Pools": { - "AboveGroundFastSoil": 0.0, - "AboveGroundSlowSoil": 0.0, - "AboveGroundVeryFastSoil": 0.0, - "Atmosphere": 0.0, - "BelowGroundFastSoil": 0.0, - "BelowGroundSlowSoil": 0.0, - "BelowGroundVeryFastSoil": 0.0, - "BlackCarbon": 0.0, - "CH4": 0.0, - "CO": 0.0, - "CO2": 0.0, - "DissolvedOrganicCarbon": 0.0, - "HardwoodBranchSnag": 0.0, - "HardwoodCoarseRoots": 0.0, - "HardwoodFineRoots": 0.0, - "HardwoodFoliage": 0.0, - "HardwoodMerch": 0.0, - "HardwoodOther": 0.0, - "HardwoodStemSnag": 0.0, - "MediumSoil": 0.0, - "NO2": 0.0, - "Peat": 0.0, - "Products": 0.0, - "SoftwoodBranchSnag": 0.0, - "SoftwoodCoarseRoots": 0.0, - "SoftwoodFineRoots": 0.0, - "SoftwoodFoliage": 0.0, - "SoftwoodMerch": 0.0, - "SoftwoodOther": 0.0, - "SoftwoodStemSnag": 0.0 - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/provider_config.json b/local/rest_api_gcbm/templates/provider_config.json deleted file mode 100644 index 43343960..00000000 --- a/local/rest_api_gcbm/templates/provider_config.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Providers": { - "SQLite": { - "path": "../input_database/gcbm_input.db", - "type": "SQLite" - }, - "RasterTiled": { - "layers": [ - - ], - "blockLonSize": 0, - "tileLatSize": 0, - "tileLonSize": 0, - "cellLatSize": 0, - "cellLonSize": 0, - "blockLatSize": 0, - "type": "RasterTiledGDAL", - "library": "moja.modules.gdal" - } - } -} diff --git a/local/rest_api_gcbm/templates/spinup.json b/local/rest_api_gcbm/templates/spinup.json deleted file mode 100644 index 1365b141..00000000 --- a/local/rest_api_gcbm/templates/spinup.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "Spinup": { - "enabled": true, - "sequencer_library": "moja.modules.cbm", - "simulateLandUnit": "simulateLandUnit", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "sequencer": "CBMSpinupSequencer" - }, - "SpinupVariables": { - "delay": 0, - "minimum_rotation": 10, - "run_delay": false - }, - "Variables": { - "spinup_parameters": { - "transform": { - "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - } - }, - "SpinupModules": { - "CBMSpinupSequencer": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 1 - }, - "CBMBuildLandUnitModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 2 - }, - "CBMGrowthModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 3 - }, - "CBMDecayModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 4 - }, - "TransactionManagerAfterSubmitModule": { - "create_new": true, - "library": "internal.flint", - "order": 5 - }, - "CBMSpinupDisturbanceModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 6 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/variables.json b/local/rest_api_gcbm/templates/variables.json deleted file mode 100644 index f2d8bc2f..00000000 --- a/local/rest_api_gcbm/templates/variables.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "Variables": { - "enable_peatland": false, - "enable_moss": false, - "admin_boundary": "British Columbia", - "eco_boundary": "Taiga Plains", - "initial_age": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "initial_age" - } - }, - "initial_historic_land_class": "FL", - "initial_current_land_class": "FL", - "age_class_range": 20, - "age_maximum": 300, - "slow_ag_to_bg_mixing_rate": 0.006, - "disturbance_matrices": { - "transform": { - "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "softwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "reporting_classifiers": { - "transform": { - "allow_nulls": true, - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "classifier_set" - ] - } - }, - "land_class_transitions": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rules": { - "transform": { - "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_matches": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "TransitionRuleTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "spatial_unit_id": { - "transform": { - "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "hardwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "turnover_rates": { - "transform": { - "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbance_type_codes": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_classifiers": { - "transform": { - "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "initial_classifier_set": { - "transform": { - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "Classifier2", - "Classifier1" - ] - } - }, - "disturbance_matrix_associations": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "other_to_branch_snag_split": { - "transform": { - "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "growth_curve_id": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "GrowthCurveTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "volume_to_biomass_parameters": { - "transform": { - "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "spu": { - "transform": { - "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "land_class_data": { - "transform": { - "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "mean_annual_temperature": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "mean_annual_temperature" - } - }, - "decay_parameters": { - "transform": { - "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbances_2012": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2012" - } - }, - "disturbances_2011": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2011" - } - }, - "disturbances_2015": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2015" - } - }, - "disturbances_2014": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2014" - } - }, - "disturbances_2018": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2018" - } - }, - "disturbances_2016": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2016" - } - }, - "Classifier2": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier2" - } - }, - "Classifier1": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier1" - } - }, - "disturbances_2013": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2013" - } - } - } -} \ No newline at end of file From e9c529c4b51b8acb6caf21af61c49a89072b2d7d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 12:15:36 +0300 Subject: [PATCH 156/196] new upload params check if it runs Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 80be1a1a..69d18823 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -44,7 +44,6 @@ jobs: run: | python local/rest_api_gcbm/cml_report/process_input.py cd GCBM/GCBM_New_Demo_Run - ls -l layers/tiled curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ From acd87a8463ba8e33a878abab723929e32962c13d Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 12:32:14 +0300 Subject: [PATCH 157/196] having issues in dynamic endpoint Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/process_input.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 66ed298c..365bd285 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -1,6 +1,12 @@ import zipfile +import os # Unzip file zip = 'GCBM_New_Demo_Run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('GCBM') + +template = os.path.join('local','rest_api_gcbm','templates.zip') +extract_to = os.path.join('local','rest_api_gcbm') +with zipfile.ZipFile(template, 'r') as zip_ref: + zip_ref.extractall(extract_to) \ No newline at end of file From c7994bd52b5cd1d46e4b972fd5cb9a61db882e53 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 12:59:16 +0300 Subject: [PATCH 158/196] remove run job on push Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 3 - local/rest_api_gcbm/templates/gcbm_config.cfg | 7 + .../templates/internal_variables.json | 34 + .../rest_api_gcbm/templates/localdomain.json | 31 + local/rest_api_gcbm/templates/logging.conf | 17 + .../rest_api_gcbm/templates/modules_cbm.json | 59 ++ .../templates/modules_output.json | 816 ++++++++++++++++++ local/rest_api_gcbm/templates/pools_cbm.json | 34 + .../templates/provider_config.json | 21 + local/rest_api_gcbm/templates/spinup.json | 56 ++ local/rest_api_gcbm/templates/variables.json | 257 ++++++ 11 files changed, 1332 insertions(+), 3 deletions(-) create mode 100644 local/rest_api_gcbm/templates/gcbm_config.cfg create mode 100644 local/rest_api_gcbm/templates/internal_variables.json create mode 100644 local/rest_api_gcbm/templates/localdomain.json create mode 100644 local/rest_api_gcbm/templates/logging.conf create mode 100644 local/rest_api_gcbm/templates/modules_cbm.json create mode 100644 local/rest_api_gcbm/templates/modules_output.json create mode 100644 local/rest_api_gcbm/templates/pools_cbm.json create mode 100644 local/rest_api_gcbm/templates/provider_config.json create mode 100644 local/rest_api_gcbm/templates/spinup.json create mode 100644 local/rest_api_gcbm/templates/variables.json diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 69d18823..3b44c48a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,8 +1,5 @@ name: simulation-report on: - push: - branches: - - master pull_request: branches: - master diff --git a/local/rest_api_gcbm/templates/gcbm_config.cfg b/local/rest_api_gcbm/templates/gcbm_config.cfg new file mode 100644 index 00000000..e6640ac9 --- /dev/null +++ b/local/rest_api_gcbm/templates/gcbm_config.cfg @@ -0,0 +1,7 @@ +config=localdomain.json +config=pools_cbm.json +config=modules_cbm.json +config=modules_output.json +config=spinup.json +config=variables.json +config=internal_variables.json diff --git a/local/rest_api_gcbm/templates/internal_variables.json b/local/rest_api_gcbm/templates/internal_variables.json new file mode 100644 index 00000000..d9f71537 --- /dev/null +++ b/local/rest_api_gcbm/templates/internal_variables.json @@ -0,0 +1,34 @@ +{ + "Variables": { + "spatialLocationInfo": { + "flintdata": { + "type": "SpatialLocationInfo", + "library": "internal.flint", + "settings": {} + } + }, + "simulateLandUnit": true, + "is_decaying": true, + "spinup_moss_only": false, + "run_peatland": false, + "peatlandId": -1, + "is_forest": true, + "run_moss": false, + "run_delay": false, + "landUnitBuildSuccess": true, + "regen_delay": 0, + "age": 0, + "tileIndex": 0, + "blockIndex": 0, + "cellIndex": 0, + "LandUnitId": -1, + "landUnitArea": 0, + "classifier_set": {}, + "localDomainId": 0, + "LocalDomainId": 1, + "age_class": 0, + "historic_land_class": "FL", + "current_land_class": "FL", + "unfccc_land_class": "UNFCCC_FL_R_FL" + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/localdomain.json b/local/rest_api_gcbm/templates/localdomain.json new file mode 100644 index 00000000..5bb04f33 --- /dev/null +++ b/local/rest_api_gcbm/templates/localdomain.json @@ -0,0 +1,31 @@ +{ + "Libraries": { + "moja.modules.cbm": "external", + "moja.modules.gdal": "external" + }, + "LocalDomain": { + "start_date": "2010/01/01", + "end_date": "2021/01/01", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "simulateLandUnit": "simulateLandUnit", + "sequencer_library": "moja.modules.cbm", + "sequencer": "CBMSequencer", + "timing": "annual", + "type": "spatial_tiled", + "landscape": { + "provider": "RasterTiled", + "num_threads": 4, + "tiles": [ + { + "x": -106, + "y": 55, + "index": 12674 + } + ], + "x_pixels": 4000, + "y_pixels": 4000, + "tile_size_x": 1.0, + "tile_size_y": 1.0 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/logging.conf b/local/rest_api_gcbm/templates/logging.conf new file mode 100644 index 00000000..2da5fec5 --- /dev/null +++ b/local/rest_api_gcbm/templates/logging.conf @@ -0,0 +1,17 @@ +[Core] +DisableLogging=false + +[Sinks.console] +Destination=Console +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= info" + +[Sinks.file] +Destination=TextFile +FileName="output/simulation.log" +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/templates/modules_cbm.json b/local/rest_api_gcbm/templates/modules_cbm.json new file mode 100644 index 00000000..0b237195 --- /dev/null +++ b/local/rest_api_gcbm/templates/modules_cbm.json @@ -0,0 +1,59 @@ +{ + "Modules": { + "CBMBuildLandUnitModule": { + "order": 1, + "library": "moja.modules.cbm" + }, + "CBMSequencer": { + "order": 2, + "library": "moja.modules.cbm" + }, + "CBMDisturbanceListener": { + "enabled": true, + "order": 3, + "library": "moja.modules.cbm", + "settings": { + "vars": [ + + ] + } + }, + "CBMDisturbanceEventModule": { + "enabled": true, + "order": 4, + "library": "moja.modules.cbm" + }, + "CBMTransitionRulesModule": { + "enabled": true, + "order": 5, + "library": "moja.modules.cbm" + }, + "CBMLandClassTransitionModule": { + "enabled": true, + "order": 6, + "library": "moja.modules.cbm" + }, + "CBMGrowthModule": { + "enabled": true, + "order": 7, + "library": "moja.modules.cbm" + }, + "CBMDecayModule": { + "enabled": true, + "order": 8, + "library": "moja.modules.cbm", + "settings": { + "extra_decay_removals": false + } + }, + "CBMAgeIndicators": { + "enabled": true, + "order": 9, + "library": "moja.modules.cbm" + }, + "TransactionManagerAfterSubmitModule": { + "order": 10, + "library": "internal.flint" + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/modules_output.json b/local/rest_api_gcbm/templates/modules_output.json new file mode 100644 index 00000000..cad01b28 --- /dev/null +++ b/local/rest_api_gcbm/templates/modules_output.json @@ -0,0 +1,816 @@ +{ + "Modules": { + "WriteVariableGeotiff": { + "enabled": true, + "order": 11, + "library": "moja.modules.gdal", + "settings": { + "items": [ + { + "data_name": "Age", + "enabled": true, + "variable_data_type": "Int16", + "on_notification": "OutputStep", + "variable_name": "age" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther" + ], + "data_name": "AG_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Total_Ecosystem_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "data_name": "Total_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Dead_Organic_Matter_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "BelowGroundVeryFastSoil", + "BelowGroundSlowSoil" + ], + "data_name": "Soil_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + "data_name": "NPP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ], + "flux_source": "annual_process" + } + ], + "data_name": "NEP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "flux_source": "annual_process", + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "Decomp_Releases", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "NBP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + } + ], + "data_name": "Delta_Total_Ecosystem", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + } + ], + "data_name": "Delta_Total_Biomass", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO", + "Products" + ] + } + ], + "data_name": "Delta_Total_DOM", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ] + }, + "data_name": "Total_Biomass_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_DOM_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO2_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CH4" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CH4_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ] + } + ], + "data_name": "Ecosystem_Removals", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Bio_To_DOM_From_Disturbances", + "enabled": true, + "on_notification": "OutputStep" + } + ], + "output_path": "output" + } + }, + "CBMAggregatorLandUnitData": { + "enabled": true, + "order": 12, + "library": "moja.modules.cbm", + "settings": { + "reporting_classifier_set": "reporting_classifiers" + } + }, + "CBMAggregatorSQLiteWriter": { + "enabled": true, + "order": 13, + "library": "moja.modules.cbm", + "settings": { + "databasename": "output/simulation_output.db" + } + } + } +} diff --git a/local/rest_api_gcbm/templates/pools_cbm.json b/local/rest_api_gcbm/templates/pools_cbm.json new file mode 100644 index 00000000..35979d38 --- /dev/null +++ b/local/rest_api_gcbm/templates/pools_cbm.json @@ -0,0 +1,34 @@ +{ + "Pools": { + "AboveGroundFastSoil": 0.0, + "AboveGroundSlowSoil": 0.0, + "AboveGroundVeryFastSoil": 0.0, + "Atmosphere": 0.0, + "BelowGroundFastSoil": 0.0, + "BelowGroundSlowSoil": 0.0, + "BelowGroundVeryFastSoil": 0.0, + "BlackCarbon": 0.0, + "CH4": 0.0, + "CO": 0.0, + "CO2": 0.0, + "DissolvedOrganicCarbon": 0.0, + "HardwoodBranchSnag": 0.0, + "HardwoodCoarseRoots": 0.0, + "HardwoodFineRoots": 0.0, + "HardwoodFoliage": 0.0, + "HardwoodMerch": 0.0, + "HardwoodOther": 0.0, + "HardwoodStemSnag": 0.0, + "MediumSoil": 0.0, + "NO2": 0.0, + "Peat": 0.0, + "Products": 0.0, + "SoftwoodBranchSnag": 0.0, + "SoftwoodCoarseRoots": 0.0, + "SoftwoodFineRoots": 0.0, + "SoftwoodFoliage": 0.0, + "SoftwoodMerch": 0.0, + "SoftwoodOther": 0.0, + "SoftwoodStemSnag": 0.0 + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/provider_config.json b/local/rest_api_gcbm/templates/provider_config.json new file mode 100644 index 00000000..43343960 --- /dev/null +++ b/local/rest_api_gcbm/templates/provider_config.json @@ -0,0 +1,21 @@ +{ + "Providers": { + "SQLite": { + "path": "../input_database/gcbm_input.db", + "type": "SQLite" + }, + "RasterTiled": { + "layers": [ + + ], + "blockLonSize": 0, + "tileLatSize": 0, + "tileLonSize": 0, + "cellLatSize": 0, + "cellLonSize": 0, + "blockLatSize": 0, + "type": "RasterTiledGDAL", + "library": "moja.modules.gdal" + } + } +} diff --git a/local/rest_api_gcbm/templates/spinup.json b/local/rest_api_gcbm/templates/spinup.json new file mode 100644 index 00000000..1365b141 --- /dev/null +++ b/local/rest_api_gcbm/templates/spinup.json @@ -0,0 +1,56 @@ +{ + "Spinup": { + "enabled": true, + "sequencer_library": "moja.modules.cbm", + "simulateLandUnit": "simulateLandUnit", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "sequencer": "CBMSpinupSequencer" + }, + "SpinupVariables": { + "delay": 0, + "minimum_rotation": 10, + "run_delay": false + }, + "Variables": { + "spinup_parameters": { + "transform": { + "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + } + }, + "SpinupModules": { + "CBMSpinupSequencer": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 1 + }, + "CBMBuildLandUnitModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 2 + }, + "CBMGrowthModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 3 + }, + "CBMDecayModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 4 + }, + "TransactionManagerAfterSubmitModule": { + "create_new": true, + "library": "internal.flint", + "order": 5 + }, + "CBMSpinupDisturbanceModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 6 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/variables.json b/local/rest_api_gcbm/templates/variables.json new file mode 100644 index 00000000..f2d8bc2f --- /dev/null +++ b/local/rest_api_gcbm/templates/variables.json @@ -0,0 +1,257 @@ +{ + "Variables": { + "enable_peatland": false, + "enable_moss": false, + "admin_boundary": "British Columbia", + "eco_boundary": "Taiga Plains", + "initial_age": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "initial_age" + } + }, + "initial_historic_land_class": "FL", + "initial_current_land_class": "FL", + "age_class_range": 20, + "age_maximum": 300, + "slow_ag_to_bg_mixing_rate": 0.006, + "disturbance_matrices": { + "transform": { + "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "softwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "reporting_classifiers": { + "transform": { + "allow_nulls": true, + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "classifier_set" + ] + } + }, + "land_class_transitions": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rules": { + "transform": { + "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_matches": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "TransitionRuleTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "spatial_unit_id": { + "transform": { + "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "hardwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "turnover_rates": { + "transform": { + "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbance_type_codes": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_classifiers": { + "transform": { + "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "initial_classifier_set": { + "transform": { + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "Classifier2", + "Classifier1" + ] + } + }, + "disturbance_matrix_associations": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "other_to_branch_snag_split": { + "transform": { + "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "growth_curve_id": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "GrowthCurveTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "volume_to_biomass_parameters": { + "transform": { + "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "spu": { + "transform": { + "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "land_class_data": { + "transform": { + "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "mean_annual_temperature": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "mean_annual_temperature" + } + }, + "decay_parameters": { + "transform": { + "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbances_2012": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2012" + } + }, + "disturbances_2011": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2011" + } + }, + "disturbances_2015": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2015" + } + }, + "disturbances_2014": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2014" + } + }, + "disturbances_2018": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2018" + } + }, + "disturbances_2016": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2016" + } + }, + "Classifier2": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier2" + } + }, + "Classifier1": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier1" + } + }, + "disturbances_2013": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2013" + } + } + } +} \ No newline at end of file From 71faa5b436488a7347dcbda4142f3a4c58fc498c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 13:03:46 +0300 Subject: [PATCH 159/196] apply requested changes Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 4 +- .vscode/settings.json | 3 - local/rest_api_gcbm/templates/gcbm_config.cfg | 7 - .../templates/internal_variables.json | 34 - .../rest_api_gcbm/templates/localdomain.json | 31 - local/rest_api_gcbm/templates/logging.conf | 17 - .../rest_api_gcbm/templates/modules_cbm.json | 59 -- .../templates/modules_output.json | 816 ------------------ local/rest_api_gcbm/templates/pools_cbm.json | 34 - .../templates/provider_config.json | 21 - local/rest_api_gcbm/templates/spinup.json | 56 -- local/rest_api_gcbm/templates/variables.json | 257 ------ 12 files changed, 2 insertions(+), 1337 deletions(-) delete mode 100644 .vscode/settings.json delete mode 100644 local/rest_api_gcbm/templates/gcbm_config.cfg delete mode 100644 local/rest_api_gcbm/templates/internal_variables.json delete mode 100644 local/rest_api_gcbm/templates/localdomain.json delete mode 100644 local/rest_api_gcbm/templates/logging.conf delete mode 100644 local/rest_api_gcbm/templates/modules_cbm.json delete mode 100644 local/rest_api_gcbm/templates/modules_output.json delete mode 100644 local/rest_api_gcbm/templates/pools_cbm.json delete mode 100644 local/rest_api_gcbm/templates/provider_config.json delete mode 100644 local/rest_api_gcbm/templates/spinup.json delete mode 100644 local/rest_api_gcbm/templates/variables.json diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 3b44c48a..e3c5b525 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -8,12 +8,12 @@ jobs: runs-on: [ubuntu-latest] steps: - name: Checkout Repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup python uses: actions/setup-python@v2 with: - python-version: '3.x' + python-version: '3.9' - name: Build API run: | diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index e5a288a9..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "restructuredtext.syntaxHighlighting.disabled": true -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/gcbm_config.cfg b/local/rest_api_gcbm/templates/gcbm_config.cfg deleted file mode 100644 index e6640ac9..00000000 --- a/local/rest_api_gcbm/templates/gcbm_config.cfg +++ /dev/null @@ -1,7 +0,0 @@ -config=localdomain.json -config=pools_cbm.json -config=modules_cbm.json -config=modules_output.json -config=spinup.json -config=variables.json -config=internal_variables.json diff --git a/local/rest_api_gcbm/templates/internal_variables.json b/local/rest_api_gcbm/templates/internal_variables.json deleted file mode 100644 index d9f71537..00000000 --- a/local/rest_api_gcbm/templates/internal_variables.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Variables": { - "spatialLocationInfo": { - "flintdata": { - "type": "SpatialLocationInfo", - "library": "internal.flint", - "settings": {} - } - }, - "simulateLandUnit": true, - "is_decaying": true, - "spinup_moss_only": false, - "run_peatland": false, - "peatlandId": -1, - "is_forest": true, - "run_moss": false, - "run_delay": false, - "landUnitBuildSuccess": true, - "regen_delay": 0, - "age": 0, - "tileIndex": 0, - "blockIndex": 0, - "cellIndex": 0, - "LandUnitId": -1, - "landUnitArea": 0, - "classifier_set": {}, - "localDomainId": 0, - "LocalDomainId": 1, - "age_class": 0, - "historic_land_class": "FL", - "current_land_class": "FL", - "unfccc_land_class": "UNFCCC_FL_R_FL" - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/localdomain.json b/local/rest_api_gcbm/templates/localdomain.json deleted file mode 100644 index 5bb04f33..00000000 --- a/local/rest_api_gcbm/templates/localdomain.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Libraries": { - "moja.modules.cbm": "external", - "moja.modules.gdal": "external" - }, - "LocalDomain": { - "start_date": "2010/01/01", - "end_date": "2021/01/01", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "simulateLandUnit": "simulateLandUnit", - "sequencer_library": "moja.modules.cbm", - "sequencer": "CBMSequencer", - "timing": "annual", - "type": "spatial_tiled", - "landscape": { - "provider": "RasterTiled", - "num_threads": 4, - "tiles": [ - { - "x": -106, - "y": 55, - "index": 12674 - } - ], - "x_pixels": 4000, - "y_pixels": 4000, - "tile_size_x": 1.0, - "tile_size_y": 1.0 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/logging.conf b/local/rest_api_gcbm/templates/logging.conf deleted file mode 100644 index 2da5fec5..00000000 --- a/local/rest_api_gcbm/templates/logging.conf +++ /dev/null @@ -1,17 +0,0 @@ -[Core] -DisableLogging=false - -[Sinks.console] -Destination=Console -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= info" - -[Sinks.file] -Destination=TextFile -FileName="output/simulation.log" -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/templates/modules_cbm.json b/local/rest_api_gcbm/templates/modules_cbm.json deleted file mode 100644 index 0b237195..00000000 --- a/local/rest_api_gcbm/templates/modules_cbm.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "Modules": { - "CBMBuildLandUnitModule": { - "order": 1, - "library": "moja.modules.cbm" - }, - "CBMSequencer": { - "order": 2, - "library": "moja.modules.cbm" - }, - "CBMDisturbanceListener": { - "enabled": true, - "order": 3, - "library": "moja.modules.cbm", - "settings": { - "vars": [ - - ] - } - }, - "CBMDisturbanceEventModule": { - "enabled": true, - "order": 4, - "library": "moja.modules.cbm" - }, - "CBMTransitionRulesModule": { - "enabled": true, - "order": 5, - "library": "moja.modules.cbm" - }, - "CBMLandClassTransitionModule": { - "enabled": true, - "order": 6, - "library": "moja.modules.cbm" - }, - "CBMGrowthModule": { - "enabled": true, - "order": 7, - "library": "moja.modules.cbm" - }, - "CBMDecayModule": { - "enabled": true, - "order": 8, - "library": "moja.modules.cbm", - "settings": { - "extra_decay_removals": false - } - }, - "CBMAgeIndicators": { - "enabled": true, - "order": 9, - "library": "moja.modules.cbm" - }, - "TransactionManagerAfterSubmitModule": { - "order": 10, - "library": "internal.flint" - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/modules_output.json b/local/rest_api_gcbm/templates/modules_output.json deleted file mode 100644 index cad01b28..00000000 --- a/local/rest_api_gcbm/templates/modules_output.json +++ /dev/null @@ -1,816 +0,0 @@ -{ - "Modules": { - "WriteVariableGeotiff": { - "enabled": true, - "order": 11, - "library": "moja.modules.gdal", - "settings": { - "items": [ - { - "data_name": "Age", - "enabled": true, - "variable_data_type": "Int16", - "on_notification": "OutputStep", - "variable_name": "age" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther" - ], - "data_name": "AG_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Total_Ecosystem_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "data_name": "Total_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Dead_Organic_Matter_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "BelowGroundVeryFastSoil", - "BelowGroundSlowSoil" - ], - "data_name": "Soil_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - "data_name": "NPP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ], - "flux_source": "annual_process" - } - ], - "data_name": "NEP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "flux_source": "annual_process", - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "Decomp_Releases", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "NBP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - } - ], - "data_name": "Delta_Total_Ecosystem", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - } - ], - "data_name": "Delta_Total_Biomass", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO", - "Products" - ] - } - ], - "data_name": "Delta_Total_DOM", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ] - }, - "data_name": "Total_Biomass_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_DOM_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO2_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CH4" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CH4_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ] - } - ], - "data_name": "Ecosystem_Removals", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Bio_To_DOM_From_Disturbances", - "enabled": true, - "on_notification": "OutputStep" - } - ], - "output_path": "output" - } - }, - "CBMAggregatorLandUnitData": { - "enabled": true, - "order": 12, - "library": "moja.modules.cbm", - "settings": { - "reporting_classifier_set": "reporting_classifiers" - } - }, - "CBMAggregatorSQLiteWriter": { - "enabled": true, - "order": 13, - "library": "moja.modules.cbm", - "settings": { - "databasename": "output/simulation_output.db" - } - } - } -} diff --git a/local/rest_api_gcbm/templates/pools_cbm.json b/local/rest_api_gcbm/templates/pools_cbm.json deleted file mode 100644 index 35979d38..00000000 --- a/local/rest_api_gcbm/templates/pools_cbm.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Pools": { - "AboveGroundFastSoil": 0.0, - "AboveGroundSlowSoil": 0.0, - "AboveGroundVeryFastSoil": 0.0, - "Atmosphere": 0.0, - "BelowGroundFastSoil": 0.0, - "BelowGroundSlowSoil": 0.0, - "BelowGroundVeryFastSoil": 0.0, - "BlackCarbon": 0.0, - "CH4": 0.0, - "CO": 0.0, - "CO2": 0.0, - "DissolvedOrganicCarbon": 0.0, - "HardwoodBranchSnag": 0.0, - "HardwoodCoarseRoots": 0.0, - "HardwoodFineRoots": 0.0, - "HardwoodFoliage": 0.0, - "HardwoodMerch": 0.0, - "HardwoodOther": 0.0, - "HardwoodStemSnag": 0.0, - "MediumSoil": 0.0, - "NO2": 0.0, - "Peat": 0.0, - "Products": 0.0, - "SoftwoodBranchSnag": 0.0, - "SoftwoodCoarseRoots": 0.0, - "SoftwoodFineRoots": 0.0, - "SoftwoodFoliage": 0.0, - "SoftwoodMerch": 0.0, - "SoftwoodOther": 0.0, - "SoftwoodStemSnag": 0.0 - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/provider_config.json b/local/rest_api_gcbm/templates/provider_config.json deleted file mode 100644 index 43343960..00000000 --- a/local/rest_api_gcbm/templates/provider_config.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Providers": { - "SQLite": { - "path": "../input_database/gcbm_input.db", - "type": "SQLite" - }, - "RasterTiled": { - "layers": [ - - ], - "blockLonSize": 0, - "tileLatSize": 0, - "tileLonSize": 0, - "cellLatSize": 0, - "cellLonSize": 0, - "blockLatSize": 0, - "type": "RasterTiledGDAL", - "library": "moja.modules.gdal" - } - } -} diff --git a/local/rest_api_gcbm/templates/spinup.json b/local/rest_api_gcbm/templates/spinup.json deleted file mode 100644 index 1365b141..00000000 --- a/local/rest_api_gcbm/templates/spinup.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "Spinup": { - "enabled": true, - "sequencer_library": "moja.modules.cbm", - "simulateLandUnit": "simulateLandUnit", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "sequencer": "CBMSpinupSequencer" - }, - "SpinupVariables": { - "delay": 0, - "minimum_rotation": 10, - "run_delay": false - }, - "Variables": { - "spinup_parameters": { - "transform": { - "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - } - }, - "SpinupModules": { - "CBMSpinupSequencer": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 1 - }, - "CBMBuildLandUnitModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 2 - }, - "CBMGrowthModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 3 - }, - "CBMDecayModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 4 - }, - "TransactionManagerAfterSubmitModule": { - "create_new": true, - "library": "internal.flint", - "order": 5 - }, - "CBMSpinupDisturbanceModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 6 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/variables.json b/local/rest_api_gcbm/templates/variables.json deleted file mode 100644 index f2d8bc2f..00000000 --- a/local/rest_api_gcbm/templates/variables.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "Variables": { - "enable_peatland": false, - "enable_moss": false, - "admin_boundary": "British Columbia", - "eco_boundary": "Taiga Plains", - "initial_age": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "initial_age" - } - }, - "initial_historic_land_class": "FL", - "initial_current_land_class": "FL", - "age_class_range": 20, - "age_maximum": 300, - "slow_ag_to_bg_mixing_rate": 0.006, - "disturbance_matrices": { - "transform": { - "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "softwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "reporting_classifiers": { - "transform": { - "allow_nulls": true, - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "classifier_set" - ] - } - }, - "land_class_transitions": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rules": { - "transform": { - "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_matches": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "TransitionRuleTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "spatial_unit_id": { - "transform": { - "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "hardwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "turnover_rates": { - "transform": { - "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbance_type_codes": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_classifiers": { - "transform": { - "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "initial_classifier_set": { - "transform": { - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "Classifier2", - "Classifier1" - ] - } - }, - "disturbance_matrix_associations": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "other_to_branch_snag_split": { - "transform": { - "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "growth_curve_id": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "GrowthCurveTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "volume_to_biomass_parameters": { - "transform": { - "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "spu": { - "transform": { - "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "land_class_data": { - "transform": { - "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "mean_annual_temperature": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "mean_annual_temperature" - } - }, - "decay_parameters": { - "transform": { - "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbances_2012": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2012" - } - }, - "disturbances_2011": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2011" - } - }, - "disturbances_2015": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2015" - } - }, - "disturbances_2014": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2014" - } - }, - "disturbances_2018": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2018" - } - }, - "disturbances_2016": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2016" - } - }, - "Classifier2": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier2" - } - }, - "Classifier1": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier1" - } - }, - "disturbances_2013": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2013" - } - } - } -} \ No newline at end of file From ff18dac54307d88a9e718212a1d083bb51cf880a Mon Sep 17 00:00:00 2001 From: radistoubalidis Date: Fri, 24 Jun 2022 13:44:54 +0300 Subject: [PATCH 160/196] unzip zDemo_Run and templates before running api Signed-off-by: radistoubalidis --- .github/workflows/cml-report.yml | 192 +++++++++++++++---------------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index e3c5b525..b50cf4cd 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,96 +1,96 @@ -name: simulation-report -on: - pull_request: - branches: - - master -jobs: - sim-summary: - runs-on: [ubuntu-latest] - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - - name: Setup python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - - name: Build API - run: | - cd local/rest_api_gcbm - docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - - - name: Get Public IP - id: ip - uses: haythem/public-ip@v1.2 - - - name: Print public IP - run: | - echo ${{ steps.ip.outputs.ipv4 }} - - - name: Check ports - run: | - sudo netstat -tunlp - - - name: Create New Sim - run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - - - name: Unzip Files - run: | - python local/rest_api_gcbm/cml_report/process_input.py - cd GCBM/GCBM_New_Demo_Run - curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2014_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2015_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2016_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2018_moja.tiff' \ - -F classifiers='@classifiers/Classifier1_moja.tiff' \ - -F classifiers='@classifiers/Classifier2_moja.tiff' \ - -F db='@db/gcbm_input.db' \ - -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ - -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ - -F title="run4" \ - http://localhost:8080/gcbm/upload - - - name: Run Simulation - run: | - pip install requests - python local/rest_api_gcbm/cml_report/run_gcbm.py - - - name: Retrive Logs and Download Results - run: | - cd local/tests - python simulation_status.py - cd ../.. - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip - python local/rest_api_gcbm/cml_report/process_output.py - - - name: Upload Logs as artifact - uses: actions/upload-artifact@v3 - with: - name: simulation-logs - path: local/tests/*.txt - - - name: Compile Results - run: | - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db - docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output - - - name: Setup cml - uses: iterative/setup-cml@v1 - - - name: CML - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - pip install matplotlib - pip install pandas - python local/rest_api_gcbm/cml_report/annual_summaries.py - echo "# GCBM Model" > report.md - echo "## Total Biomass Curve" >> report.md - cml-publish output/total_biomass_mt.png --md >> report.md - cml-send-comment report.md +name: simulation-report +on: + pull_request: + branches: + - master +jobs: + sim-summary: + runs-on: [ubuntu-latest] + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Setup python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Build API + run: | + cd local/rest_api_gcbm + docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api + + - name: Get Public IP + id: ip + uses: haythem/public-ip@v1.2 + + - name: Print public IP + run: | + echo ${{ steps.ip.outputs.ipv4 }} + + - name: Check ports + run: | + sudo netstat -tunlp + + - name: Create New Sim + run: | + python local/rest_api_gcbm/cml_report/process_input.py + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + + - name: Unzip Files + run: | + cd GCBM/GCBM_New_Demo_Run + curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2014_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2015_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2016_moja.tiff' \ + -F disturbances='@disturbances/disturbances_2018_moja.tiff' \ + -F classifiers='@classifiers/Classifier1_moja.tiff' \ + -F classifiers='@classifiers/Classifier2_moja.tiff' \ + -F db='@db/gcbm_input.db' \ + -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ + -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ + -F title="run4" \ + http://localhost:8080/gcbm/upload + + - name: Run Simulation + run: | + pip install requests + python local/rest_api_gcbm/cml_report/run_gcbm.py + + - name: Retrive Logs and Download Results + run: | + cd local/tests + python simulation_status.py + cd ../.. + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + python local/rest_api_gcbm/cml_report/process_output.py + + - name: Upload Logs as artifact + uses: actions/upload-artifact@v3 + with: + name: simulation-logs + path: local/tests/*.txt + + - name: Compile Results + run: | + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db + docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output + + - name: Setup cml + uses: iterative/setup-cml@v1 + + - name: CML + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + pip install matplotlib + pip install pandas + python local/rest_api_gcbm/cml_report/annual_summaries.py + echo "# GCBM Model" > report.md + echo "## Total Biomass Curve" >> report.md + cml-publish output/total_biomass_mt.png --md >> report.md + cml-send-comment report.md From 37a9db1f675cb5e2de016ec103534e6d3e967278 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 14:08:12 +0300 Subject: [PATCH 161/196] unzip form files before building api Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b50cf4cd..ec490e55 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -17,6 +17,7 @@ jobs: - name: Build API run: | + python local/rest_api_gcbm/cml_report/process_input.py cd local/rest_api_gcbm docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api @@ -35,10 +36,10 @@ jobs: - name: Create New Sim run: | - python local/rest_api_gcbm/cml_report/process_input.py + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - - name: Unzip Files + - name: Upload Files run: | cd GCBM/GCBM_New_Demo_Run curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ From 723835076d7b24c793464928bfdebbbc5590fe01 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 16:30:13 +0300 Subject: [PATCH 162/196] add Dockerfile.cml Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- local/rest_api_gcbm/Dockerfile | 2 -- local/rest_api_gcbm/Dockerfile.cml | 24 ++++++++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 local/rest_api_gcbm/Dockerfile.cml diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ec490e55..8f860e32 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -19,7 +19,7 @@ jobs: run: | python local/rest_api_gcbm/cml_report/process_input.py cd local/rest_api_gcbm - docker build --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - name: Get Public IP diff --git a/local/rest_api_gcbm/Dockerfile b/local/rest_api_gcbm/Dockerfile index 7ac2e701..c2811419 100644 --- a/local/rest_api_gcbm/Dockerfile +++ b/local/rest_api_gcbm/Dockerfile @@ -17,8 +17,6 @@ RUN python --version RUN node --version RUN npm --version -RUN git clone https://github.com/moja-global/GCBM.CompileResults.git - COPY . . CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] diff --git a/local/rest_api_gcbm/Dockerfile.cml b/local/rest_api_gcbm/Dockerfile.cml new file mode 100644 index 00000000..7ac2e701 --- /dev/null +++ b/local/rest_api_gcbm/Dockerfile.cml @@ -0,0 +1,24 @@ +FROM ghcr.io/moja-global/flint.gcbm:master + +WORKDIR /app + +RUN pip install --upgrade pip + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +# Adding npm for CML Actions +RUN apt-get update +RUN apt-get install nodejs npm -y +RUN apt-get install -y python3-dev \ + && cd /usr/local/bin \ + && ln -s /usr/bin/python3 python +RUN python --version +RUN node --version +RUN npm --version + +RUN git clone https://github.com/moja-global/GCBM.CompileResults.git + +COPY . . + +CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] From 0783a9ea46d977c82894d85de5df140449949f98 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 17:02:46 +0300 Subject: [PATCH 163/196] update paths in compileresults call Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 6 +++--- local/rest_api_gcbm/cml_report/process_output.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8f860e32..6bbb9d1d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -67,7 +67,7 @@ jobs: cd local/tests python simulation_status.py cd ../.. - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o output.zip + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact @@ -78,8 +78,8 @@ jobs: - name: Compile Results run: | - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///input/run4/output/gcbm_output.db --output_db sqlite:///input/run4/output/compiled_gcbm_output.db - docker cp -L gcbm-api:/app/input/run4/output/compiled_gcbm_output.db output + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/gcbm_output.db --output_db sqlite:///output/run4/compiled_gcbm_output.db + docker cp -L gcbm-api:/app/output/run4/compiled_gcbm_output.db output/run4 - name: Setup cml uses: iterative/setup-cml@v1 diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index 77ed65a7..48eeb460 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -1,6 +1,6 @@ import os import zipfile -zip = 'output.zip' +zip = 'run4.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('output') \ No newline at end of file From 66e51ce598a0995ad66d22025069cdcb9eabc8b5 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 17:33:52 +0300 Subject: [PATCH 164/196] test run to see file structure of output Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 6bbb9d1d..877f9cb6 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -78,20 +78,21 @@ jobs: - name: Compile Results run: | - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/gcbm_output.db --output_db sqlite:///output/run4/compiled_gcbm_output.db - docker cp -L gcbm-api:/app/output/run4/compiled_gcbm_output.db output/run4 + ls -l output/run4 + # docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/gcbm_output.db --output_db sqlite:///output/run4/compiled_gcbm_output.db + # docker cp -L gcbm-api:/app/output/run4/compiled_gcbm_output.db output/run4 - - name: Setup cml - uses: iterative/setup-cml@v1 + # - name: Setup cml + # uses: iterative/setup-cml@v1 - - name: CML - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - pip install matplotlib - pip install pandas - python local/rest_api_gcbm/cml_report/annual_summaries.py - echo "# GCBM Model" > report.md - echo "## Total Biomass Curve" >> report.md - cml-publish output/total_biomass_mt.png --md >> report.md - cml-send-comment report.md + # - name: CML + # env: + # repo_token: ${{ secrets.GITHUB_TOKEN }} + # run: | + # pip install matplotlib + # pip install pandas + # python local/rest_api_gcbm/cml_report/annual_summaries.py + # echo "# GCBM Model" > report.md + # echo "## Total Biomass Curve" >> report.md + # cml-publish output/total_biomass_mt.png --md >> report.md + # cml-send-comment report.md From 5277361ab5eba0db08e26eef6a3a74e7afd8922c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 17:49:49 +0300 Subject: [PATCH 165/196] test run to see file structure of output Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 877f9cb6..acee10a1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -78,7 +78,7 @@ jobs: - name: Compile Results run: | - ls -l output/run4 + ls -l output # docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/gcbm_output.db --output_db sqlite:///output/run4/compiled_gcbm_output.db # docker cp -L gcbm-api:/app/output/run4/compiled_gcbm_output.db output/run4 From b3152f842e6d1d8e591e2cb0136d9a7d3db27c5a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Fri, 24 Jun 2022 18:06:11 +0300 Subject: [PATCH 166/196] check to see if compileresults fails Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index acee10a1..de358441 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -79,20 +79,20 @@ jobs: - name: Compile Results run: | ls -l output - # docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/gcbm_output.db --output_db sqlite:///output/run4/compiled_gcbm_output.db - # docker cp -L gcbm-api:/app/output/run4/compiled_gcbm_output.db output/run4 + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/simulation_output.db --output_db sqlite:///output/run4/compiled_simulation_output.db + docker cp -L gcbm-api:/app/output/run4/compiled_simulation_output.db output - # - name: Setup cml - # uses: iterative/setup-cml@v1 + - name: Setup cml + uses: iterative/setup-cml@v1 - # - name: CML - # env: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # run: | - # pip install matplotlib - # pip install pandas - # python local/rest_api_gcbm/cml_report/annual_summaries.py - # echo "# GCBM Model" > report.md - # echo "## Total Biomass Curve" >> report.md - # cml-publish output/total_biomass_mt.png --md >> report.md - # cml-send-comment report.md + - name: CML + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + pip install matplotlib + pip install pandas + python local/rest_api_gcbm/cml_report/annual_summaries.py + echo "# GCBM Model" > report.md + echo "## Total Biomass Curve" >> report.md + cml-publish output/total_biomass_mt.png --md >> report.md + cml-send-comment report.md From 7953fa020e541e63591474956ca7eaa7a960f025 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 11:56:50 +0300 Subject: [PATCH 167/196] update paths for compiled output db in annual_summaries.py Signed-off-by: radis toubalidis --- local/rest_api_gcbm/cml_report/annual_summaries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/local/rest_api_gcbm/cml_report/annual_summaries.py b/local/rest_api_gcbm/cml_report/annual_summaries.py index b14445ae..300c7d33 100644 --- a/local/rest_api_gcbm/cml_report/annual_summaries.py +++ b/local/rest_api_gcbm/cml_report/annual_summaries.py @@ -1,7 +1,7 @@ import sqlite3 import pandas as pd -conn = sqlite3.connect("output/compiled_gcbm_output.db") +conn = sqlite3.connect("output/compiled_simulation_output.db") query = f""" SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt From ba63ed6507d63fa9327e95408bcd67efc22b1e58 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 12:56:13 +0300 Subject: [PATCH 168/196] update cml action to run only when run-simulation label is added Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index de358441..c3d86764 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,10 +1,12 @@ name: simulation-report on: pull_request: + types: [ labeled ] branches: - master jobs: sim-summary: + if: ${{ github.event.label.name == 'run-simulation' }} runs-on: [ubuntu-latest] steps: - name: Checkout Repository From 66c127f5d1cfa1e72f8f2a14a81f98ccf810ddcf Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 13:10:32 +0300 Subject: [PATCH 169/196] see if the label condition if contains(...) works Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index c3d86764..2c6fbbb1 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,7 +6,7 @@ on: - master jobs: sim-summary: - if: ${{ github.event.label.name == 'run-simulation' }} + if: contains(github.event.pull_request.labels.*.name, 'run-simulation') runs-on: [ubuntu-latest] steps: - name: Checkout Repository From eebb9914be4aa0402627ed8536098947ee644c87 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 13:12:57 +0300 Subject: [PATCH 170/196] see if the label condition if contains(...) works Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 2c6fbbb1..b9f31d80 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,7 +6,7 @@ on: - master jobs: sim-summary: - if: contains(github.event.pull_request.labels.*.name, 'run-simulation') + if: contains(github.event.pull_request.labels.*.name, ['run-simulation','GCBM']) runs-on: [ubuntu-latest] steps: - name: Checkout Repository From 9bad2bbcd017a7ff74af8ef260459a3b53e2c7c0 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 13:17:29 +0300 Subject: [PATCH 171/196] run action based on pr labeling Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index b9f31d80..2290aefa 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -6,7 +6,7 @@ on: - master jobs: sim-summary: - if: contains(github.event.pull_request.labels.*.name, ['run-simulation','GCBM']) + if: ${{ github.event.label.name == ['run-simulation','GCBM'] }} runs-on: [ubuntu-latest] steps: - name: Checkout Repository From ea6b5441a52e5201bc64c2bb556779da0c30005a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 16:44:21 +0300 Subject: [PATCH 172/196] rename templates.zip to input_tepmlates.zip --- .../{templates.zip => input_templates.zip} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename local/rest_api_gcbm/{templates.zip => input_templates.zip} (100%) diff --git a/local/rest_api_gcbm/templates.zip b/local/rest_api_gcbm/input_templates.zip similarity index 100% rename from local/rest_api_gcbm/templates.zip rename to local/rest_api_gcbm/input_templates.zip From 1d7fdfbb16ef769fc95d387d30d9efbfed181a9b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 18:19:50 +0300 Subject: [PATCH 173/196] rename templates to template Signed-off-by: radis toubalidis --- .../rest_api_gcbm/cml_report/process_input.py | 6 +- local/rest_api_gcbm/template/gcbm_config.cfg | 7 + .../template/internal_variables.json | 34 + local/rest_api_gcbm/template/localdomain.json | 31 + local/rest_api_gcbm/template/logging.conf | 17 + local/rest_api_gcbm/template/modules_cbm.json | 59 ++ .../template/modules_output.json | 816 ++++++++++++++++++ local/rest_api_gcbm/template/pools_cbm.json | 34 + .../template/provider_config.json | 21 + local/rest_api_gcbm/template/spinup.json | 56 ++ local/rest_api_gcbm/template/variables.json | 257 ++++++ .../{input_templates.zip => templates.zip} | Bin 12 files changed, 1337 insertions(+), 1 deletion(-) create mode 100644 local/rest_api_gcbm/template/gcbm_config.cfg create mode 100644 local/rest_api_gcbm/template/internal_variables.json create mode 100644 local/rest_api_gcbm/template/localdomain.json create mode 100644 local/rest_api_gcbm/template/logging.conf create mode 100644 local/rest_api_gcbm/template/modules_cbm.json create mode 100644 local/rest_api_gcbm/template/modules_output.json create mode 100644 local/rest_api_gcbm/template/pools_cbm.json create mode 100644 local/rest_api_gcbm/template/provider_config.json create mode 100644 local/rest_api_gcbm/template/spinup.json create mode 100644 local/rest_api_gcbm/template/variables.json rename local/rest_api_gcbm/{input_templates.zip => templates.zip} (100%) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 365bd285..25d32de0 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -9,4 +9,8 @@ template = os.path.join('local','rest_api_gcbm','templates.zip') extract_to = os.path.join('local','rest_api_gcbm') with zipfile.ZipFile(template, 'r') as zip_ref: - zip_ref.extractall(extract_to) \ No newline at end of file + zip_ref.extractall(extract_to) + +templates_path = os.path.join('local','rest_api_gcbm','templates') +new_templates_path = os.path.join('local','rest_api_gcbm','template') +os.rename(templates_path,new_templates_path) \ No newline at end of file diff --git a/local/rest_api_gcbm/template/gcbm_config.cfg b/local/rest_api_gcbm/template/gcbm_config.cfg new file mode 100644 index 00000000..e6640ac9 --- /dev/null +++ b/local/rest_api_gcbm/template/gcbm_config.cfg @@ -0,0 +1,7 @@ +config=localdomain.json +config=pools_cbm.json +config=modules_cbm.json +config=modules_output.json +config=spinup.json +config=variables.json +config=internal_variables.json diff --git a/local/rest_api_gcbm/template/internal_variables.json b/local/rest_api_gcbm/template/internal_variables.json new file mode 100644 index 00000000..d9f71537 --- /dev/null +++ b/local/rest_api_gcbm/template/internal_variables.json @@ -0,0 +1,34 @@ +{ + "Variables": { + "spatialLocationInfo": { + "flintdata": { + "type": "SpatialLocationInfo", + "library": "internal.flint", + "settings": {} + } + }, + "simulateLandUnit": true, + "is_decaying": true, + "spinup_moss_only": false, + "run_peatland": false, + "peatlandId": -1, + "is_forest": true, + "run_moss": false, + "run_delay": false, + "landUnitBuildSuccess": true, + "regen_delay": 0, + "age": 0, + "tileIndex": 0, + "blockIndex": 0, + "cellIndex": 0, + "LandUnitId": -1, + "landUnitArea": 0, + "classifier_set": {}, + "localDomainId": 0, + "LocalDomainId": 1, + "age_class": 0, + "historic_land_class": "FL", + "current_land_class": "FL", + "unfccc_land_class": "UNFCCC_FL_R_FL" + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/localdomain.json b/local/rest_api_gcbm/template/localdomain.json new file mode 100644 index 00000000..5bb04f33 --- /dev/null +++ b/local/rest_api_gcbm/template/localdomain.json @@ -0,0 +1,31 @@ +{ + "Libraries": { + "moja.modules.cbm": "external", + "moja.modules.gdal": "external" + }, + "LocalDomain": { + "start_date": "2010/01/01", + "end_date": "2021/01/01", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "simulateLandUnit": "simulateLandUnit", + "sequencer_library": "moja.modules.cbm", + "sequencer": "CBMSequencer", + "timing": "annual", + "type": "spatial_tiled", + "landscape": { + "provider": "RasterTiled", + "num_threads": 4, + "tiles": [ + { + "x": -106, + "y": 55, + "index": 12674 + } + ], + "x_pixels": 4000, + "y_pixels": 4000, + "tile_size_x": 1.0, + "tile_size_y": 1.0 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/logging.conf b/local/rest_api_gcbm/template/logging.conf new file mode 100644 index 00000000..2da5fec5 --- /dev/null +++ b/local/rest_api_gcbm/template/logging.conf @@ -0,0 +1,17 @@ +[Core] +DisableLogging=false + +[Sinks.console] +Destination=Console +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= info" + +[Sinks.file] +Destination=TextFile +FileName="output/simulation.log" +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/template/modules_cbm.json b/local/rest_api_gcbm/template/modules_cbm.json new file mode 100644 index 00000000..0b237195 --- /dev/null +++ b/local/rest_api_gcbm/template/modules_cbm.json @@ -0,0 +1,59 @@ +{ + "Modules": { + "CBMBuildLandUnitModule": { + "order": 1, + "library": "moja.modules.cbm" + }, + "CBMSequencer": { + "order": 2, + "library": "moja.modules.cbm" + }, + "CBMDisturbanceListener": { + "enabled": true, + "order": 3, + "library": "moja.modules.cbm", + "settings": { + "vars": [ + + ] + } + }, + "CBMDisturbanceEventModule": { + "enabled": true, + "order": 4, + "library": "moja.modules.cbm" + }, + "CBMTransitionRulesModule": { + "enabled": true, + "order": 5, + "library": "moja.modules.cbm" + }, + "CBMLandClassTransitionModule": { + "enabled": true, + "order": 6, + "library": "moja.modules.cbm" + }, + "CBMGrowthModule": { + "enabled": true, + "order": 7, + "library": "moja.modules.cbm" + }, + "CBMDecayModule": { + "enabled": true, + "order": 8, + "library": "moja.modules.cbm", + "settings": { + "extra_decay_removals": false + } + }, + "CBMAgeIndicators": { + "enabled": true, + "order": 9, + "library": "moja.modules.cbm" + }, + "TransactionManagerAfterSubmitModule": { + "order": 10, + "library": "internal.flint" + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/modules_output.json b/local/rest_api_gcbm/template/modules_output.json new file mode 100644 index 00000000..cad01b28 --- /dev/null +++ b/local/rest_api_gcbm/template/modules_output.json @@ -0,0 +1,816 @@ +{ + "Modules": { + "WriteVariableGeotiff": { + "enabled": true, + "order": 11, + "library": "moja.modules.gdal", + "settings": { + "items": [ + { + "data_name": "Age", + "enabled": true, + "variable_data_type": "Int16", + "on_notification": "OutputStep", + "variable_name": "age" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther" + ], + "data_name": "AG_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Total_Ecosystem_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "data_name": "Total_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Dead_Organic_Matter_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "BelowGroundVeryFastSoil", + "BelowGroundSlowSoil" + ], + "data_name": "Soil_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + "data_name": "NPP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ], + "flux_source": "annual_process" + } + ], + "data_name": "NEP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "flux_source": "annual_process", + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "Decomp_Releases", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "NBP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + } + ], + "data_name": "Delta_Total_Ecosystem", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + } + ], + "data_name": "Delta_Total_Biomass", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO", + "Products" + ] + } + ], + "data_name": "Delta_Total_DOM", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ] + }, + "data_name": "Total_Biomass_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_DOM_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO2_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CH4" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CH4_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ] + } + ], + "data_name": "Ecosystem_Removals", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Bio_To_DOM_From_Disturbances", + "enabled": true, + "on_notification": "OutputStep" + } + ], + "output_path": "output" + } + }, + "CBMAggregatorLandUnitData": { + "enabled": true, + "order": 12, + "library": "moja.modules.cbm", + "settings": { + "reporting_classifier_set": "reporting_classifiers" + } + }, + "CBMAggregatorSQLiteWriter": { + "enabled": true, + "order": 13, + "library": "moja.modules.cbm", + "settings": { + "databasename": "output/simulation_output.db" + } + } + } +} diff --git a/local/rest_api_gcbm/template/pools_cbm.json b/local/rest_api_gcbm/template/pools_cbm.json new file mode 100644 index 00000000..35979d38 --- /dev/null +++ b/local/rest_api_gcbm/template/pools_cbm.json @@ -0,0 +1,34 @@ +{ + "Pools": { + "AboveGroundFastSoil": 0.0, + "AboveGroundSlowSoil": 0.0, + "AboveGroundVeryFastSoil": 0.0, + "Atmosphere": 0.0, + "BelowGroundFastSoil": 0.0, + "BelowGroundSlowSoil": 0.0, + "BelowGroundVeryFastSoil": 0.0, + "BlackCarbon": 0.0, + "CH4": 0.0, + "CO": 0.0, + "CO2": 0.0, + "DissolvedOrganicCarbon": 0.0, + "HardwoodBranchSnag": 0.0, + "HardwoodCoarseRoots": 0.0, + "HardwoodFineRoots": 0.0, + "HardwoodFoliage": 0.0, + "HardwoodMerch": 0.0, + "HardwoodOther": 0.0, + "HardwoodStemSnag": 0.0, + "MediumSoil": 0.0, + "NO2": 0.0, + "Peat": 0.0, + "Products": 0.0, + "SoftwoodBranchSnag": 0.0, + "SoftwoodCoarseRoots": 0.0, + "SoftwoodFineRoots": 0.0, + "SoftwoodFoliage": 0.0, + "SoftwoodMerch": 0.0, + "SoftwoodOther": 0.0, + "SoftwoodStemSnag": 0.0 + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/provider_config.json b/local/rest_api_gcbm/template/provider_config.json new file mode 100644 index 00000000..43343960 --- /dev/null +++ b/local/rest_api_gcbm/template/provider_config.json @@ -0,0 +1,21 @@ +{ + "Providers": { + "SQLite": { + "path": "../input_database/gcbm_input.db", + "type": "SQLite" + }, + "RasterTiled": { + "layers": [ + + ], + "blockLonSize": 0, + "tileLatSize": 0, + "tileLonSize": 0, + "cellLatSize": 0, + "cellLonSize": 0, + "blockLatSize": 0, + "type": "RasterTiledGDAL", + "library": "moja.modules.gdal" + } + } +} diff --git a/local/rest_api_gcbm/template/spinup.json b/local/rest_api_gcbm/template/spinup.json new file mode 100644 index 00000000..1365b141 --- /dev/null +++ b/local/rest_api_gcbm/template/spinup.json @@ -0,0 +1,56 @@ +{ + "Spinup": { + "enabled": true, + "sequencer_library": "moja.modules.cbm", + "simulateLandUnit": "simulateLandUnit", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "sequencer": "CBMSpinupSequencer" + }, + "SpinupVariables": { + "delay": 0, + "minimum_rotation": 10, + "run_delay": false + }, + "Variables": { + "spinup_parameters": { + "transform": { + "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + } + }, + "SpinupModules": { + "CBMSpinupSequencer": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 1 + }, + "CBMBuildLandUnitModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 2 + }, + "CBMGrowthModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 3 + }, + "CBMDecayModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 4 + }, + "TransactionManagerAfterSubmitModule": { + "create_new": true, + "library": "internal.flint", + "order": 5 + }, + "CBMSpinupDisturbanceModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 6 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/variables.json b/local/rest_api_gcbm/template/variables.json new file mode 100644 index 00000000..f2d8bc2f --- /dev/null +++ b/local/rest_api_gcbm/template/variables.json @@ -0,0 +1,257 @@ +{ + "Variables": { + "enable_peatland": false, + "enable_moss": false, + "admin_boundary": "British Columbia", + "eco_boundary": "Taiga Plains", + "initial_age": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "initial_age" + } + }, + "initial_historic_land_class": "FL", + "initial_current_land_class": "FL", + "age_class_range": 20, + "age_maximum": 300, + "slow_ag_to_bg_mixing_rate": 0.006, + "disturbance_matrices": { + "transform": { + "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "softwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "reporting_classifiers": { + "transform": { + "allow_nulls": true, + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "classifier_set" + ] + } + }, + "land_class_transitions": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rules": { + "transform": { + "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_matches": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "TransitionRuleTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "spatial_unit_id": { + "transform": { + "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "hardwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "turnover_rates": { + "transform": { + "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbance_type_codes": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_classifiers": { + "transform": { + "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "initial_classifier_set": { + "transform": { + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "Classifier2", + "Classifier1" + ] + } + }, + "disturbance_matrix_associations": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "other_to_branch_snag_split": { + "transform": { + "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "growth_curve_id": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "GrowthCurveTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "volume_to_biomass_parameters": { + "transform": { + "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "spu": { + "transform": { + "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "land_class_data": { + "transform": { + "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "mean_annual_temperature": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "mean_annual_temperature" + } + }, + "decay_parameters": { + "transform": { + "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbances_2012": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2012" + } + }, + "disturbances_2011": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2011" + } + }, + "disturbances_2015": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2015" + } + }, + "disturbances_2014": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2014" + } + }, + "disturbances_2018": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2018" + } + }, + "disturbances_2016": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2016" + } + }, + "Classifier2": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier2" + } + }, + "Classifier1": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier1" + } + }, + "disturbances_2013": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2013" + } + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/input_templates.zip b/local/rest_api_gcbm/templates.zip similarity index 100% rename from local/rest_api_gcbm/input_templates.zip rename to local/rest_api_gcbm/templates.zip From 4ed4a3eb1a998b35fd1562f025606c6c9cbe36c8 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 20:47:35 +0300 Subject: [PATCH 174/196] add templates to gitignore Signed-off-by: radis toubalidis --- .gitignore | 3 + .../rest_api_gcbm/cml_report/process_input.py | 6 +- local/rest_api_gcbm/template/gcbm_config.cfg | 7 - .../template/internal_variables.json | 34 - local/rest_api_gcbm/template/localdomain.json | 31 - local/rest_api_gcbm/template/logging.conf | 17 - local/rest_api_gcbm/template/modules_cbm.json | 59 -- .../template/modules_output.json | 816 ------------------ local/rest_api_gcbm/template/pools_cbm.json | 34 - .../template/provider_config.json | 21 - local/rest_api_gcbm/template/spinup.json | 56 -- local/rest_api_gcbm/template/variables.json | 257 ------ 12 files changed, 4 insertions(+), 1337 deletions(-) delete mode 100644 local/rest_api_gcbm/template/gcbm_config.cfg delete mode 100644 local/rest_api_gcbm/template/internal_variables.json delete mode 100644 local/rest_api_gcbm/template/localdomain.json delete mode 100644 local/rest_api_gcbm/template/logging.conf delete mode 100644 local/rest_api_gcbm/template/modules_cbm.json delete mode 100644 local/rest_api_gcbm/template/modules_output.json delete mode 100644 local/rest_api_gcbm/template/pools_cbm.json delete mode 100644 local/rest_api_gcbm/template/provider_config.json delete mode 100644 local/rest_api_gcbm/template/spinup.json delete mode 100644 local/rest_api_gcbm/template/variables.json diff --git a/.gitignore b/.gitignore index 1e5815ba..271ceebb 100644 --- a/.gitignore +++ b/.gitignore @@ -173,3 +173,6 @@ terraform.rc # Add GCBM Demo runs GCBM_Demo_Run/ GCBM_New_Demo_Run/ + +# templates +local/rest_api_gcbm/cml_report/templates/ \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 25d32de0..1e32ede8 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -7,10 +7,6 @@ zip_ref.extractall('GCBM') template = os.path.join('local','rest_api_gcbm','templates.zip') -extract_to = os.path.join('local','rest_api_gcbm') +extract_to = os.path.join('local','rest_api_gcbm','cml_report') with zipfile.ZipFile(template, 'r') as zip_ref: zip_ref.extractall(extract_to) - -templates_path = os.path.join('local','rest_api_gcbm','templates') -new_templates_path = os.path.join('local','rest_api_gcbm','template') -os.rename(templates_path,new_templates_path) \ No newline at end of file diff --git a/local/rest_api_gcbm/template/gcbm_config.cfg b/local/rest_api_gcbm/template/gcbm_config.cfg deleted file mode 100644 index e6640ac9..00000000 --- a/local/rest_api_gcbm/template/gcbm_config.cfg +++ /dev/null @@ -1,7 +0,0 @@ -config=localdomain.json -config=pools_cbm.json -config=modules_cbm.json -config=modules_output.json -config=spinup.json -config=variables.json -config=internal_variables.json diff --git a/local/rest_api_gcbm/template/internal_variables.json b/local/rest_api_gcbm/template/internal_variables.json deleted file mode 100644 index d9f71537..00000000 --- a/local/rest_api_gcbm/template/internal_variables.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Variables": { - "spatialLocationInfo": { - "flintdata": { - "type": "SpatialLocationInfo", - "library": "internal.flint", - "settings": {} - } - }, - "simulateLandUnit": true, - "is_decaying": true, - "spinup_moss_only": false, - "run_peatland": false, - "peatlandId": -1, - "is_forest": true, - "run_moss": false, - "run_delay": false, - "landUnitBuildSuccess": true, - "regen_delay": 0, - "age": 0, - "tileIndex": 0, - "blockIndex": 0, - "cellIndex": 0, - "LandUnitId": -1, - "landUnitArea": 0, - "classifier_set": {}, - "localDomainId": 0, - "LocalDomainId": 1, - "age_class": 0, - "historic_land_class": "FL", - "current_land_class": "FL", - "unfccc_land_class": "UNFCCC_FL_R_FL" - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/localdomain.json b/local/rest_api_gcbm/template/localdomain.json deleted file mode 100644 index 5bb04f33..00000000 --- a/local/rest_api_gcbm/template/localdomain.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Libraries": { - "moja.modules.cbm": "external", - "moja.modules.gdal": "external" - }, - "LocalDomain": { - "start_date": "2010/01/01", - "end_date": "2021/01/01", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "simulateLandUnit": "simulateLandUnit", - "sequencer_library": "moja.modules.cbm", - "sequencer": "CBMSequencer", - "timing": "annual", - "type": "spatial_tiled", - "landscape": { - "provider": "RasterTiled", - "num_threads": 4, - "tiles": [ - { - "x": -106, - "y": 55, - "index": 12674 - } - ], - "x_pixels": 4000, - "y_pixels": 4000, - "tile_size_x": 1.0, - "tile_size_y": 1.0 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/logging.conf b/local/rest_api_gcbm/template/logging.conf deleted file mode 100644 index 2da5fec5..00000000 --- a/local/rest_api_gcbm/template/logging.conf +++ /dev/null @@ -1,17 +0,0 @@ -[Core] -DisableLogging=false - -[Sinks.console] -Destination=Console -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= info" - -[Sinks.file] -Destination=TextFile -FileName="output/simulation.log" -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/template/modules_cbm.json b/local/rest_api_gcbm/template/modules_cbm.json deleted file mode 100644 index 0b237195..00000000 --- a/local/rest_api_gcbm/template/modules_cbm.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "Modules": { - "CBMBuildLandUnitModule": { - "order": 1, - "library": "moja.modules.cbm" - }, - "CBMSequencer": { - "order": 2, - "library": "moja.modules.cbm" - }, - "CBMDisturbanceListener": { - "enabled": true, - "order": 3, - "library": "moja.modules.cbm", - "settings": { - "vars": [ - - ] - } - }, - "CBMDisturbanceEventModule": { - "enabled": true, - "order": 4, - "library": "moja.modules.cbm" - }, - "CBMTransitionRulesModule": { - "enabled": true, - "order": 5, - "library": "moja.modules.cbm" - }, - "CBMLandClassTransitionModule": { - "enabled": true, - "order": 6, - "library": "moja.modules.cbm" - }, - "CBMGrowthModule": { - "enabled": true, - "order": 7, - "library": "moja.modules.cbm" - }, - "CBMDecayModule": { - "enabled": true, - "order": 8, - "library": "moja.modules.cbm", - "settings": { - "extra_decay_removals": false - } - }, - "CBMAgeIndicators": { - "enabled": true, - "order": 9, - "library": "moja.modules.cbm" - }, - "TransactionManagerAfterSubmitModule": { - "order": 10, - "library": "internal.flint" - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/modules_output.json b/local/rest_api_gcbm/template/modules_output.json deleted file mode 100644 index cad01b28..00000000 --- a/local/rest_api_gcbm/template/modules_output.json +++ /dev/null @@ -1,816 +0,0 @@ -{ - "Modules": { - "WriteVariableGeotiff": { - "enabled": true, - "order": 11, - "library": "moja.modules.gdal", - "settings": { - "items": [ - { - "data_name": "Age", - "enabled": true, - "variable_data_type": "Int16", - "on_notification": "OutputStep", - "variable_name": "age" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther" - ], - "data_name": "AG_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Total_Ecosystem_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "data_name": "Total_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Dead_Organic_Matter_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "BelowGroundVeryFastSoil", - "BelowGroundSlowSoil" - ], - "data_name": "Soil_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - "data_name": "NPP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ], - "flux_source": "annual_process" - } - ], - "data_name": "NEP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "flux_source": "annual_process", - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "Decomp_Releases", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "NBP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - } - ], - "data_name": "Delta_Total_Ecosystem", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - } - ], - "data_name": "Delta_Total_Biomass", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO", - "Products" - ] - } - ], - "data_name": "Delta_Total_DOM", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ] - }, - "data_name": "Total_Biomass_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_DOM_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO2_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CH4" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CH4_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ] - } - ], - "data_name": "Ecosystem_Removals", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Bio_To_DOM_From_Disturbances", - "enabled": true, - "on_notification": "OutputStep" - } - ], - "output_path": "output" - } - }, - "CBMAggregatorLandUnitData": { - "enabled": true, - "order": 12, - "library": "moja.modules.cbm", - "settings": { - "reporting_classifier_set": "reporting_classifiers" - } - }, - "CBMAggregatorSQLiteWriter": { - "enabled": true, - "order": 13, - "library": "moja.modules.cbm", - "settings": { - "databasename": "output/simulation_output.db" - } - } - } -} diff --git a/local/rest_api_gcbm/template/pools_cbm.json b/local/rest_api_gcbm/template/pools_cbm.json deleted file mode 100644 index 35979d38..00000000 --- a/local/rest_api_gcbm/template/pools_cbm.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Pools": { - "AboveGroundFastSoil": 0.0, - "AboveGroundSlowSoil": 0.0, - "AboveGroundVeryFastSoil": 0.0, - "Atmosphere": 0.0, - "BelowGroundFastSoil": 0.0, - "BelowGroundSlowSoil": 0.0, - "BelowGroundVeryFastSoil": 0.0, - "BlackCarbon": 0.0, - "CH4": 0.0, - "CO": 0.0, - "CO2": 0.0, - "DissolvedOrganicCarbon": 0.0, - "HardwoodBranchSnag": 0.0, - "HardwoodCoarseRoots": 0.0, - "HardwoodFineRoots": 0.0, - "HardwoodFoliage": 0.0, - "HardwoodMerch": 0.0, - "HardwoodOther": 0.0, - "HardwoodStemSnag": 0.0, - "MediumSoil": 0.0, - "NO2": 0.0, - "Peat": 0.0, - "Products": 0.0, - "SoftwoodBranchSnag": 0.0, - "SoftwoodCoarseRoots": 0.0, - "SoftwoodFineRoots": 0.0, - "SoftwoodFoliage": 0.0, - "SoftwoodMerch": 0.0, - "SoftwoodOther": 0.0, - "SoftwoodStemSnag": 0.0 - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/provider_config.json b/local/rest_api_gcbm/template/provider_config.json deleted file mode 100644 index 43343960..00000000 --- a/local/rest_api_gcbm/template/provider_config.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Providers": { - "SQLite": { - "path": "../input_database/gcbm_input.db", - "type": "SQLite" - }, - "RasterTiled": { - "layers": [ - - ], - "blockLonSize": 0, - "tileLatSize": 0, - "tileLonSize": 0, - "cellLatSize": 0, - "cellLonSize": 0, - "blockLatSize": 0, - "type": "RasterTiledGDAL", - "library": "moja.modules.gdal" - } - } -} diff --git a/local/rest_api_gcbm/template/spinup.json b/local/rest_api_gcbm/template/spinup.json deleted file mode 100644 index 1365b141..00000000 --- a/local/rest_api_gcbm/template/spinup.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "Spinup": { - "enabled": true, - "sequencer_library": "moja.modules.cbm", - "simulateLandUnit": "simulateLandUnit", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "sequencer": "CBMSpinupSequencer" - }, - "SpinupVariables": { - "delay": 0, - "minimum_rotation": 10, - "run_delay": false - }, - "Variables": { - "spinup_parameters": { - "transform": { - "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - } - }, - "SpinupModules": { - "CBMSpinupSequencer": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 1 - }, - "CBMBuildLandUnitModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 2 - }, - "CBMGrowthModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 3 - }, - "CBMDecayModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 4 - }, - "TransactionManagerAfterSubmitModule": { - "create_new": true, - "library": "internal.flint", - "order": 5 - }, - "CBMSpinupDisturbanceModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 6 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/variables.json b/local/rest_api_gcbm/template/variables.json deleted file mode 100644 index f2d8bc2f..00000000 --- a/local/rest_api_gcbm/template/variables.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "Variables": { - "enable_peatland": false, - "enable_moss": false, - "admin_boundary": "British Columbia", - "eco_boundary": "Taiga Plains", - "initial_age": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "initial_age" - } - }, - "initial_historic_land_class": "FL", - "initial_current_land_class": "FL", - "age_class_range": 20, - "age_maximum": 300, - "slow_ag_to_bg_mixing_rate": 0.006, - "disturbance_matrices": { - "transform": { - "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "softwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "reporting_classifiers": { - "transform": { - "allow_nulls": true, - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "classifier_set" - ] - } - }, - "land_class_transitions": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rules": { - "transform": { - "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_matches": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "TransitionRuleTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "spatial_unit_id": { - "transform": { - "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "hardwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "turnover_rates": { - "transform": { - "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbance_type_codes": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_classifiers": { - "transform": { - "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "initial_classifier_set": { - "transform": { - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "Classifier2", - "Classifier1" - ] - } - }, - "disturbance_matrix_associations": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "other_to_branch_snag_split": { - "transform": { - "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "growth_curve_id": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "GrowthCurveTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "volume_to_biomass_parameters": { - "transform": { - "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "spu": { - "transform": { - "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "land_class_data": { - "transform": { - "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "mean_annual_temperature": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "mean_annual_temperature" - } - }, - "decay_parameters": { - "transform": { - "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbances_2012": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2012" - } - }, - "disturbances_2011": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2011" - } - }, - "disturbances_2015": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2015" - } - }, - "disturbances_2014": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2014" - } - }, - "disturbances_2018": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2018" - } - }, - "disturbances_2016": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2016" - } - }, - "Classifier2": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier2" - } - }, - "Classifier1": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier1" - } - }, - "disturbances_2013": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2013" - } - } - } -} \ No newline at end of file From c8af6333a12dd7a25e8c15b27dd5ef250b904e3f Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 21:55:31 +0300 Subject: [PATCH 175/196] check for templates in rest_api_gcbm folder Signed-off-by: radis toubalidis --- .../rest_api_gcbm/cml_report/process_input.py | 2 +- local/rest_api_gcbm/templates/gcbm_config.cfg | 7 + .../templates/internal_variables.json | 34 + .../rest_api_gcbm/templates/localdomain.json | 31 + local/rest_api_gcbm/templates/logging.conf | 17 + .../rest_api_gcbm/templates/modules_cbm.json | 59 ++ .../templates/modules_output.json | 816 ++++++++++++++++++ local/rest_api_gcbm/templates/pools_cbm.json | 34 + .../templates/provider_config.json | 21 + local/rest_api_gcbm/templates/spinup.json | 56 ++ local/rest_api_gcbm/templates/variables.json | 257 ++++++ 11 files changed, 1333 insertions(+), 1 deletion(-) create mode 100644 local/rest_api_gcbm/templates/gcbm_config.cfg create mode 100644 local/rest_api_gcbm/templates/internal_variables.json create mode 100644 local/rest_api_gcbm/templates/localdomain.json create mode 100644 local/rest_api_gcbm/templates/logging.conf create mode 100644 local/rest_api_gcbm/templates/modules_cbm.json create mode 100644 local/rest_api_gcbm/templates/modules_output.json create mode 100644 local/rest_api_gcbm/templates/pools_cbm.json create mode 100644 local/rest_api_gcbm/templates/provider_config.json create mode 100644 local/rest_api_gcbm/templates/spinup.json create mode 100644 local/rest_api_gcbm/templates/variables.json diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 1e32ede8..da2f4a93 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -7,6 +7,6 @@ zip_ref.extractall('GCBM') template = os.path.join('local','rest_api_gcbm','templates.zip') -extract_to = os.path.join('local','rest_api_gcbm','cml_report') +extract_to = os.path.join('local','rest_api_gcbm') with zipfile.ZipFile(template, 'r') as zip_ref: zip_ref.extractall(extract_to) diff --git a/local/rest_api_gcbm/templates/gcbm_config.cfg b/local/rest_api_gcbm/templates/gcbm_config.cfg new file mode 100644 index 00000000..e6640ac9 --- /dev/null +++ b/local/rest_api_gcbm/templates/gcbm_config.cfg @@ -0,0 +1,7 @@ +config=localdomain.json +config=pools_cbm.json +config=modules_cbm.json +config=modules_output.json +config=spinup.json +config=variables.json +config=internal_variables.json diff --git a/local/rest_api_gcbm/templates/internal_variables.json b/local/rest_api_gcbm/templates/internal_variables.json new file mode 100644 index 00000000..d9f71537 --- /dev/null +++ b/local/rest_api_gcbm/templates/internal_variables.json @@ -0,0 +1,34 @@ +{ + "Variables": { + "spatialLocationInfo": { + "flintdata": { + "type": "SpatialLocationInfo", + "library": "internal.flint", + "settings": {} + } + }, + "simulateLandUnit": true, + "is_decaying": true, + "spinup_moss_only": false, + "run_peatland": false, + "peatlandId": -1, + "is_forest": true, + "run_moss": false, + "run_delay": false, + "landUnitBuildSuccess": true, + "regen_delay": 0, + "age": 0, + "tileIndex": 0, + "blockIndex": 0, + "cellIndex": 0, + "LandUnitId": -1, + "landUnitArea": 0, + "classifier_set": {}, + "localDomainId": 0, + "LocalDomainId": 1, + "age_class": 0, + "historic_land_class": "FL", + "current_land_class": "FL", + "unfccc_land_class": "UNFCCC_FL_R_FL" + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/localdomain.json b/local/rest_api_gcbm/templates/localdomain.json new file mode 100644 index 00000000..5bb04f33 --- /dev/null +++ b/local/rest_api_gcbm/templates/localdomain.json @@ -0,0 +1,31 @@ +{ + "Libraries": { + "moja.modules.cbm": "external", + "moja.modules.gdal": "external" + }, + "LocalDomain": { + "start_date": "2010/01/01", + "end_date": "2021/01/01", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "simulateLandUnit": "simulateLandUnit", + "sequencer_library": "moja.modules.cbm", + "sequencer": "CBMSequencer", + "timing": "annual", + "type": "spatial_tiled", + "landscape": { + "provider": "RasterTiled", + "num_threads": 4, + "tiles": [ + { + "x": -106, + "y": 55, + "index": 12674 + } + ], + "x_pixels": 4000, + "y_pixels": 4000, + "tile_size_x": 1.0, + "tile_size_y": 1.0 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/logging.conf b/local/rest_api_gcbm/templates/logging.conf new file mode 100644 index 00000000..2da5fec5 --- /dev/null +++ b/local/rest_api_gcbm/templates/logging.conf @@ -0,0 +1,17 @@ +[Core] +DisableLogging=false + +[Sinks.console] +Destination=Console +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= info" + +[Sinks.file] +Destination=TextFile +FileName="output/simulation.log" +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/templates/modules_cbm.json b/local/rest_api_gcbm/templates/modules_cbm.json new file mode 100644 index 00000000..0b237195 --- /dev/null +++ b/local/rest_api_gcbm/templates/modules_cbm.json @@ -0,0 +1,59 @@ +{ + "Modules": { + "CBMBuildLandUnitModule": { + "order": 1, + "library": "moja.modules.cbm" + }, + "CBMSequencer": { + "order": 2, + "library": "moja.modules.cbm" + }, + "CBMDisturbanceListener": { + "enabled": true, + "order": 3, + "library": "moja.modules.cbm", + "settings": { + "vars": [ + + ] + } + }, + "CBMDisturbanceEventModule": { + "enabled": true, + "order": 4, + "library": "moja.modules.cbm" + }, + "CBMTransitionRulesModule": { + "enabled": true, + "order": 5, + "library": "moja.modules.cbm" + }, + "CBMLandClassTransitionModule": { + "enabled": true, + "order": 6, + "library": "moja.modules.cbm" + }, + "CBMGrowthModule": { + "enabled": true, + "order": 7, + "library": "moja.modules.cbm" + }, + "CBMDecayModule": { + "enabled": true, + "order": 8, + "library": "moja.modules.cbm", + "settings": { + "extra_decay_removals": false + } + }, + "CBMAgeIndicators": { + "enabled": true, + "order": 9, + "library": "moja.modules.cbm" + }, + "TransactionManagerAfterSubmitModule": { + "order": 10, + "library": "internal.flint" + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/modules_output.json b/local/rest_api_gcbm/templates/modules_output.json new file mode 100644 index 00000000..cad01b28 --- /dev/null +++ b/local/rest_api_gcbm/templates/modules_output.json @@ -0,0 +1,816 @@ +{ + "Modules": { + "WriteVariableGeotiff": { + "enabled": true, + "order": 11, + "library": "moja.modules.gdal", + "settings": { + "items": [ + { + "data_name": "Age", + "enabled": true, + "variable_data_type": "Int16", + "on_notification": "OutputStep", + "variable_name": "age" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther" + ], + "data_name": "AG_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Total_Ecosystem_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "data_name": "Total_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Dead_Organic_Matter_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "BelowGroundVeryFastSoil", + "BelowGroundSlowSoil" + ], + "data_name": "Soil_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + "data_name": "NPP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ], + "flux_source": "annual_process" + } + ], + "data_name": "NEP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "flux_source": "annual_process", + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "Decomp_Releases", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "NBP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + } + ], + "data_name": "Delta_Total_Ecosystem", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + } + ], + "data_name": "Delta_Total_Biomass", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO", + "Products" + ] + } + ], + "data_name": "Delta_Total_DOM", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ] + }, + "data_name": "Total_Biomass_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_DOM_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO2_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CH4" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CH4_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ] + } + ], + "data_name": "Ecosystem_Removals", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Bio_To_DOM_From_Disturbances", + "enabled": true, + "on_notification": "OutputStep" + } + ], + "output_path": "output" + } + }, + "CBMAggregatorLandUnitData": { + "enabled": true, + "order": 12, + "library": "moja.modules.cbm", + "settings": { + "reporting_classifier_set": "reporting_classifiers" + } + }, + "CBMAggregatorSQLiteWriter": { + "enabled": true, + "order": 13, + "library": "moja.modules.cbm", + "settings": { + "databasename": "output/simulation_output.db" + } + } + } +} diff --git a/local/rest_api_gcbm/templates/pools_cbm.json b/local/rest_api_gcbm/templates/pools_cbm.json new file mode 100644 index 00000000..35979d38 --- /dev/null +++ b/local/rest_api_gcbm/templates/pools_cbm.json @@ -0,0 +1,34 @@ +{ + "Pools": { + "AboveGroundFastSoil": 0.0, + "AboveGroundSlowSoil": 0.0, + "AboveGroundVeryFastSoil": 0.0, + "Atmosphere": 0.0, + "BelowGroundFastSoil": 0.0, + "BelowGroundSlowSoil": 0.0, + "BelowGroundVeryFastSoil": 0.0, + "BlackCarbon": 0.0, + "CH4": 0.0, + "CO": 0.0, + "CO2": 0.0, + "DissolvedOrganicCarbon": 0.0, + "HardwoodBranchSnag": 0.0, + "HardwoodCoarseRoots": 0.0, + "HardwoodFineRoots": 0.0, + "HardwoodFoliage": 0.0, + "HardwoodMerch": 0.0, + "HardwoodOther": 0.0, + "HardwoodStemSnag": 0.0, + "MediumSoil": 0.0, + "NO2": 0.0, + "Peat": 0.0, + "Products": 0.0, + "SoftwoodBranchSnag": 0.0, + "SoftwoodCoarseRoots": 0.0, + "SoftwoodFineRoots": 0.0, + "SoftwoodFoliage": 0.0, + "SoftwoodMerch": 0.0, + "SoftwoodOther": 0.0, + "SoftwoodStemSnag": 0.0 + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/provider_config.json b/local/rest_api_gcbm/templates/provider_config.json new file mode 100644 index 00000000..43343960 --- /dev/null +++ b/local/rest_api_gcbm/templates/provider_config.json @@ -0,0 +1,21 @@ +{ + "Providers": { + "SQLite": { + "path": "../input_database/gcbm_input.db", + "type": "SQLite" + }, + "RasterTiled": { + "layers": [ + + ], + "blockLonSize": 0, + "tileLatSize": 0, + "tileLonSize": 0, + "cellLatSize": 0, + "cellLonSize": 0, + "blockLatSize": 0, + "type": "RasterTiledGDAL", + "library": "moja.modules.gdal" + } + } +} diff --git a/local/rest_api_gcbm/templates/spinup.json b/local/rest_api_gcbm/templates/spinup.json new file mode 100644 index 00000000..1365b141 --- /dev/null +++ b/local/rest_api_gcbm/templates/spinup.json @@ -0,0 +1,56 @@ +{ + "Spinup": { + "enabled": true, + "sequencer_library": "moja.modules.cbm", + "simulateLandUnit": "simulateLandUnit", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "sequencer": "CBMSpinupSequencer" + }, + "SpinupVariables": { + "delay": 0, + "minimum_rotation": 10, + "run_delay": false + }, + "Variables": { + "spinup_parameters": { + "transform": { + "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + } + }, + "SpinupModules": { + "CBMSpinupSequencer": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 1 + }, + "CBMBuildLandUnitModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 2 + }, + "CBMGrowthModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 3 + }, + "CBMDecayModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 4 + }, + "TransactionManagerAfterSubmitModule": { + "create_new": true, + "library": "internal.flint", + "order": 5 + }, + "CBMSpinupDisturbanceModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 6 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/templates/variables.json b/local/rest_api_gcbm/templates/variables.json new file mode 100644 index 00000000..f2d8bc2f --- /dev/null +++ b/local/rest_api_gcbm/templates/variables.json @@ -0,0 +1,257 @@ +{ + "Variables": { + "enable_peatland": false, + "enable_moss": false, + "admin_boundary": "British Columbia", + "eco_boundary": "Taiga Plains", + "initial_age": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "initial_age" + } + }, + "initial_historic_land_class": "FL", + "initial_current_land_class": "FL", + "age_class_range": 20, + "age_maximum": 300, + "slow_ag_to_bg_mixing_rate": 0.006, + "disturbance_matrices": { + "transform": { + "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "softwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "reporting_classifiers": { + "transform": { + "allow_nulls": true, + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "classifier_set" + ] + } + }, + "land_class_transitions": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rules": { + "transform": { + "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_matches": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "TransitionRuleTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "spatial_unit_id": { + "transform": { + "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "hardwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "turnover_rates": { + "transform": { + "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbance_type_codes": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_classifiers": { + "transform": { + "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "initial_classifier_set": { + "transform": { + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "Classifier2", + "Classifier1" + ] + } + }, + "disturbance_matrix_associations": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "other_to_branch_snag_split": { + "transform": { + "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "growth_curve_id": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "GrowthCurveTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "volume_to_biomass_parameters": { + "transform": { + "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "spu": { + "transform": { + "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "land_class_data": { + "transform": { + "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "mean_annual_temperature": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "mean_annual_temperature" + } + }, + "decay_parameters": { + "transform": { + "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbances_2012": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2012" + } + }, + "disturbances_2011": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2011" + } + }, + "disturbances_2015": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2015" + } + }, + "disturbances_2014": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2014" + } + }, + "disturbances_2018": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2018" + } + }, + "disturbances_2016": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2016" + } + }, + "Classifier2": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier2" + } + }, + "Classifier1": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier1" + } + }, + "disturbances_2013": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2013" + } + } + } +} \ No newline at end of file From 75ce8067dfecc5ac7470f24e7686934ce47709b0 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 27 Jun 2022 21:58:09 +0300 Subject: [PATCH 176/196] Revert "add templates to gitignore" This reverts commit 4ed4a3eb1a998b35fd1562f025606c6c9cbe36c8. --- .gitignore | 3 - .../rest_api_gcbm/cml_report/process_input.py | 4 + local/rest_api_gcbm/template/gcbm_config.cfg | 7 + .../template/internal_variables.json | 34 + local/rest_api_gcbm/template/localdomain.json | 31 + local/rest_api_gcbm/template/logging.conf | 17 + local/rest_api_gcbm/template/modules_cbm.json | 59 ++ .../template/modules_output.json | 816 ++++++++++++++++++ local/rest_api_gcbm/template/pools_cbm.json | 34 + .../template/provider_config.json | 21 + local/rest_api_gcbm/template/spinup.json | 56 ++ local/rest_api_gcbm/template/variables.json | 257 ++++++ 12 files changed, 1336 insertions(+), 3 deletions(-) create mode 100644 local/rest_api_gcbm/template/gcbm_config.cfg create mode 100644 local/rest_api_gcbm/template/internal_variables.json create mode 100644 local/rest_api_gcbm/template/localdomain.json create mode 100644 local/rest_api_gcbm/template/logging.conf create mode 100644 local/rest_api_gcbm/template/modules_cbm.json create mode 100644 local/rest_api_gcbm/template/modules_output.json create mode 100644 local/rest_api_gcbm/template/pools_cbm.json create mode 100644 local/rest_api_gcbm/template/provider_config.json create mode 100644 local/rest_api_gcbm/template/spinup.json create mode 100644 local/rest_api_gcbm/template/variables.json diff --git a/.gitignore b/.gitignore index 271ceebb..1e5815ba 100644 --- a/.gitignore +++ b/.gitignore @@ -173,6 +173,3 @@ terraform.rc # Add GCBM Demo runs GCBM_Demo_Run/ GCBM_New_Demo_Run/ - -# templates -local/rest_api_gcbm/cml_report/templates/ \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index da2f4a93..25d32de0 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -10,3 +10,7 @@ extract_to = os.path.join('local','rest_api_gcbm') with zipfile.ZipFile(template, 'r') as zip_ref: zip_ref.extractall(extract_to) + +templates_path = os.path.join('local','rest_api_gcbm','templates') +new_templates_path = os.path.join('local','rest_api_gcbm','template') +os.rename(templates_path,new_templates_path) \ No newline at end of file diff --git a/local/rest_api_gcbm/template/gcbm_config.cfg b/local/rest_api_gcbm/template/gcbm_config.cfg new file mode 100644 index 00000000..e6640ac9 --- /dev/null +++ b/local/rest_api_gcbm/template/gcbm_config.cfg @@ -0,0 +1,7 @@ +config=localdomain.json +config=pools_cbm.json +config=modules_cbm.json +config=modules_output.json +config=spinup.json +config=variables.json +config=internal_variables.json diff --git a/local/rest_api_gcbm/template/internal_variables.json b/local/rest_api_gcbm/template/internal_variables.json new file mode 100644 index 00000000..d9f71537 --- /dev/null +++ b/local/rest_api_gcbm/template/internal_variables.json @@ -0,0 +1,34 @@ +{ + "Variables": { + "spatialLocationInfo": { + "flintdata": { + "type": "SpatialLocationInfo", + "library": "internal.flint", + "settings": {} + } + }, + "simulateLandUnit": true, + "is_decaying": true, + "spinup_moss_only": false, + "run_peatland": false, + "peatlandId": -1, + "is_forest": true, + "run_moss": false, + "run_delay": false, + "landUnitBuildSuccess": true, + "regen_delay": 0, + "age": 0, + "tileIndex": 0, + "blockIndex": 0, + "cellIndex": 0, + "LandUnitId": -1, + "landUnitArea": 0, + "classifier_set": {}, + "localDomainId": 0, + "LocalDomainId": 1, + "age_class": 0, + "historic_land_class": "FL", + "current_land_class": "FL", + "unfccc_land_class": "UNFCCC_FL_R_FL" + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/localdomain.json b/local/rest_api_gcbm/template/localdomain.json new file mode 100644 index 00000000..5bb04f33 --- /dev/null +++ b/local/rest_api_gcbm/template/localdomain.json @@ -0,0 +1,31 @@ +{ + "Libraries": { + "moja.modules.cbm": "external", + "moja.modules.gdal": "external" + }, + "LocalDomain": { + "start_date": "2010/01/01", + "end_date": "2021/01/01", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "simulateLandUnit": "simulateLandUnit", + "sequencer_library": "moja.modules.cbm", + "sequencer": "CBMSequencer", + "timing": "annual", + "type": "spatial_tiled", + "landscape": { + "provider": "RasterTiled", + "num_threads": 4, + "tiles": [ + { + "x": -106, + "y": 55, + "index": 12674 + } + ], + "x_pixels": 4000, + "y_pixels": 4000, + "tile_size_x": 1.0, + "tile_size_y": 1.0 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/logging.conf b/local/rest_api_gcbm/template/logging.conf new file mode 100644 index 00000000..2da5fec5 --- /dev/null +++ b/local/rest_api_gcbm/template/logging.conf @@ -0,0 +1,17 @@ +[Core] +DisableLogging=false + +[Sinks.console] +Destination=Console +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= info" + +[Sinks.file] +Destination=TextFile +FileName="output/simulation.log" +Asynchronous=false +AutoFlush=true +Format="<%TimeStamp%> (%Severity%) - %Message%" +Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/template/modules_cbm.json b/local/rest_api_gcbm/template/modules_cbm.json new file mode 100644 index 00000000..0b237195 --- /dev/null +++ b/local/rest_api_gcbm/template/modules_cbm.json @@ -0,0 +1,59 @@ +{ + "Modules": { + "CBMBuildLandUnitModule": { + "order": 1, + "library": "moja.modules.cbm" + }, + "CBMSequencer": { + "order": 2, + "library": "moja.modules.cbm" + }, + "CBMDisturbanceListener": { + "enabled": true, + "order": 3, + "library": "moja.modules.cbm", + "settings": { + "vars": [ + + ] + } + }, + "CBMDisturbanceEventModule": { + "enabled": true, + "order": 4, + "library": "moja.modules.cbm" + }, + "CBMTransitionRulesModule": { + "enabled": true, + "order": 5, + "library": "moja.modules.cbm" + }, + "CBMLandClassTransitionModule": { + "enabled": true, + "order": 6, + "library": "moja.modules.cbm" + }, + "CBMGrowthModule": { + "enabled": true, + "order": 7, + "library": "moja.modules.cbm" + }, + "CBMDecayModule": { + "enabled": true, + "order": 8, + "library": "moja.modules.cbm", + "settings": { + "extra_decay_removals": false + } + }, + "CBMAgeIndicators": { + "enabled": true, + "order": 9, + "library": "moja.modules.cbm" + }, + "TransactionManagerAfterSubmitModule": { + "order": 10, + "library": "internal.flint" + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/modules_output.json b/local/rest_api_gcbm/template/modules_output.json new file mode 100644 index 00000000..cad01b28 --- /dev/null +++ b/local/rest_api_gcbm/template/modules_output.json @@ -0,0 +1,816 @@ +{ + "Modules": { + "WriteVariableGeotiff": { + "enabled": true, + "order": 11, + "library": "moja.modules.gdal", + "settings": { + "items": [ + { + "data_name": "Age", + "enabled": true, + "variable_data_type": "Int16", + "on_notification": "OutputStep", + "variable_name": "age" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther" + ], + "data_name": "AG_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Total_Ecosystem_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "data_name": "Total_Biomass_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "data_name": "Dead_Organic_Matter_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "pool_name": [ + "BelowGroundVeryFastSoil", + "BelowGroundSlowSoil" + ], + "data_name": "Soil_C", + "enabled": true, + "variable_data_type": "float", + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + "data_name": "NPP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ], + "flux_source": "annual_process" + } + ], + "data_name": "NEP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "flux_source": "annual_process", + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "Decomp_Releases", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + } + ], + "data_name": "NBP", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + } + ], + "data_name": "Delta_Total_Ecosystem", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "from": [ + "Atmosphere" + ] + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO" + ] + }, + { + "subtract": true, + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "Products" + ], + "flux_source": "disturbance" + }, + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "subtract": true, + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + } + ], + "data_name": "Delta_Total_Biomass", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "subtract": true, + "to": [ + "CO2", + "CH4", + "CO", + "Products" + ] + } + ], + "data_name": "Delta_Total_DOM", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ] + }, + "data_name": "Total_Biomass_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_DOM_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO2" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO2_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CO_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "to": [ + "CH4" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Total_CH4_Emissions", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": [ + { + "to": [ + "CO2", + "CH4", + "CO" + ], + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ], + "to": [ + "Products" + ] + } + ], + "data_name": "Ecosystem_Removals", + "enabled": true, + "on_notification": "OutputStep" + }, + { + "variable_data_type": "float", + "flux": { + "flux_source": "disturbance", + "from": [ + "SoftwoodMerch", + "SoftwoodFoliage", + "SoftwoodOther", + "SoftwoodCoarseRoots", + "SoftwoodFineRoots", + "HardwoodMerch", + "HardwoodFoliage", + "HardwoodOther", + "HardwoodCoarseRoots", + "HardwoodFineRoots" + ], + "to": [ + "AboveGroundVeryFastSoil", + "BelowGroundVeryFastSoil", + "AboveGroundFastSoil", + "BelowGroundFastSoil", + "MediumSoil", + "AboveGroundSlowSoil", + "BelowGroundSlowSoil", + "SoftwoodStemSnag", + "SoftwoodBranchSnag", + "HardwoodStemSnag", + "HardwoodBranchSnag" + ] + }, + "data_name": "Bio_To_DOM_From_Disturbances", + "enabled": true, + "on_notification": "OutputStep" + } + ], + "output_path": "output" + } + }, + "CBMAggregatorLandUnitData": { + "enabled": true, + "order": 12, + "library": "moja.modules.cbm", + "settings": { + "reporting_classifier_set": "reporting_classifiers" + } + }, + "CBMAggregatorSQLiteWriter": { + "enabled": true, + "order": 13, + "library": "moja.modules.cbm", + "settings": { + "databasename": "output/simulation_output.db" + } + } + } +} diff --git a/local/rest_api_gcbm/template/pools_cbm.json b/local/rest_api_gcbm/template/pools_cbm.json new file mode 100644 index 00000000..35979d38 --- /dev/null +++ b/local/rest_api_gcbm/template/pools_cbm.json @@ -0,0 +1,34 @@ +{ + "Pools": { + "AboveGroundFastSoil": 0.0, + "AboveGroundSlowSoil": 0.0, + "AboveGroundVeryFastSoil": 0.0, + "Atmosphere": 0.0, + "BelowGroundFastSoil": 0.0, + "BelowGroundSlowSoil": 0.0, + "BelowGroundVeryFastSoil": 0.0, + "BlackCarbon": 0.0, + "CH4": 0.0, + "CO": 0.0, + "CO2": 0.0, + "DissolvedOrganicCarbon": 0.0, + "HardwoodBranchSnag": 0.0, + "HardwoodCoarseRoots": 0.0, + "HardwoodFineRoots": 0.0, + "HardwoodFoliage": 0.0, + "HardwoodMerch": 0.0, + "HardwoodOther": 0.0, + "HardwoodStemSnag": 0.0, + "MediumSoil": 0.0, + "NO2": 0.0, + "Peat": 0.0, + "Products": 0.0, + "SoftwoodBranchSnag": 0.0, + "SoftwoodCoarseRoots": 0.0, + "SoftwoodFineRoots": 0.0, + "SoftwoodFoliage": 0.0, + "SoftwoodMerch": 0.0, + "SoftwoodOther": 0.0, + "SoftwoodStemSnag": 0.0 + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/provider_config.json b/local/rest_api_gcbm/template/provider_config.json new file mode 100644 index 00000000..43343960 --- /dev/null +++ b/local/rest_api_gcbm/template/provider_config.json @@ -0,0 +1,21 @@ +{ + "Providers": { + "SQLite": { + "path": "../input_database/gcbm_input.db", + "type": "SQLite" + }, + "RasterTiled": { + "layers": [ + + ], + "blockLonSize": 0, + "tileLatSize": 0, + "tileLonSize": 0, + "cellLatSize": 0, + "cellLonSize": 0, + "blockLatSize": 0, + "type": "RasterTiledGDAL", + "library": "moja.modules.gdal" + } + } +} diff --git a/local/rest_api_gcbm/template/spinup.json b/local/rest_api_gcbm/template/spinup.json new file mode 100644 index 00000000..1365b141 --- /dev/null +++ b/local/rest_api_gcbm/template/spinup.json @@ -0,0 +1,56 @@ +{ + "Spinup": { + "enabled": true, + "sequencer_library": "moja.modules.cbm", + "simulateLandUnit": "simulateLandUnit", + "landUnitBuildSuccess": "landUnitBuildSuccess", + "sequencer": "CBMSpinupSequencer" + }, + "SpinupVariables": { + "delay": 0, + "minimum_rotation": 10, + "run_delay": false + }, + "Variables": { + "spinup_parameters": { + "transform": { + "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + } + }, + "SpinupModules": { + "CBMSpinupSequencer": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 1 + }, + "CBMBuildLandUnitModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 2 + }, + "CBMGrowthModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 3 + }, + "CBMDecayModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 4 + }, + "TransactionManagerAfterSubmitModule": { + "create_new": true, + "library": "internal.flint", + "order": 5 + }, + "CBMSpinupDisturbanceModule": { + "create_new": true, + "library": "moja.modules.cbm", + "order": 6 + } + } +} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/variables.json b/local/rest_api_gcbm/template/variables.json new file mode 100644 index 00000000..f2d8bc2f --- /dev/null +++ b/local/rest_api_gcbm/template/variables.json @@ -0,0 +1,257 @@ +{ + "Variables": { + "enable_peatland": false, + "enable_moss": false, + "admin_boundary": "British Columbia", + "eco_boundary": "Taiga Plains", + "initial_age": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "initial_age" + } + }, + "initial_historic_land_class": "FL", + "initial_current_land_class": "FL", + "age_class_range": 20, + "age_maximum": 300, + "slow_ag_to_bg_mixing_rate": 0.006, + "disturbance_matrices": { + "transform": { + "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "softwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "reporting_classifiers": { + "transform": { + "allow_nulls": true, + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "classifier_set" + ] + } + }, + "land_class_transitions": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rules": { + "transform": { + "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_matches": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "TransitionRuleTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "spatial_unit_id": { + "transform": { + "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "hardwood_yield_table": { + "transform": { + "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "turnover_rates": { + "transform": { + "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbance_type_codes": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "transition_rule_classifiers": { + "transform": { + "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "initial_classifier_set": { + "transform": { + "type": "CompositeTransform", + "library": "internal.flint", + "vars": [ + "Classifier2", + "Classifier1" + ] + } + }, + "disturbance_matrix_associations": { + "transform": { + "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "other_to_branch_snag_split": { + "transform": { + "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "growth_curve_id": { + "transform": { + "classifier_set_var": "classifier_set", + "type": "GrowthCurveTransform", + "library": "moja.modules.cbm", + "provider": "SQLite" + } + }, + "volume_to_biomass_parameters": { + "transform": { + "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "spu": { + "transform": { + "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "land_class_data": { + "transform": { + "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "mean_annual_temperature": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "mean_annual_temperature" + } + }, + "decay_parameters": { + "transform": { + "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", + "type": "SQLQueryTransform", + "library": "internal.flint", + "provider": "SQLite" + } + }, + "disturbances_2012": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2012" + } + }, + "disturbances_2011": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2011" + } + }, + "disturbances_2015": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2015" + } + }, + "disturbances_2014": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2014" + } + }, + "disturbances_2018": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2018" + } + }, + "disturbances_2016": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2016" + } + }, + "Classifier2": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier2" + } + }, + "Classifier1": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "Classifier1" + } + }, + "disturbances_2013": { + "transform": { + "library": "internal.flint", + "type": "LocationIdxFromFlintDataTransform", + "provider": "RasterTiled", + "data_id": "disturbances_2013" + } + } + } +} \ No newline at end of file From 958bd6e8ba8423d672b83e6bd8c8475c060be676 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 4 Jul 2022 13:57:34 +0300 Subject: [PATCH 177/196] refactor sim name form run4 test-run Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 10 +++++----- local/rest_api_gcbm/cml_report/run_gcbm.py | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 2290aefa..7010c94a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -39,7 +39,7 @@ jobs: - name: Create New Sim run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + curl -d "title=test-run" -X POST http://0.0.0.0:8080/gcbm/new - name: Upload Files run: | @@ -56,7 +56,7 @@ jobs: -F db='@db/gcbm_input.db' \ -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ - -F title="run4" \ + -F title="test-run" \ http://localhost:8080/gcbm/upload - name: Run Simulation @@ -69,7 +69,7 @@ jobs: cd local/tests python simulation_status.py cd ../.. - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip + curl -d "title=test-run" -X POST http://0.0.0.0:8080/gcbm/download -L -o test-run.zip python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact @@ -81,8 +81,8 @@ jobs: - name: Compile Results run: | ls -l output - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/simulation_output.db --output_db sqlite:///output/run4/compiled_simulation_output.db - docker cp -L gcbm-api:/app/output/run4/compiled_simulation_output.db output + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/test-run/simulation_output.db --output_db sqlite:///output/test-run/compiled_simulation_output.db + docker cp -L gcbm-api:/app/output/test-run/compiled_simulation_output.db output - name: Setup cml uses: iterative/setup-cml@v1 diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py index 90764c94..92c5dfd9 100644 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -9,13 +9,13 @@ def run_gcbm(): url = f"{HOME}/dynamic" - req_data = {"title":"run4"} + req_data = {"title":"test-run"} res = requests.post(url,data=req_data) return res.text def status(): url = f"{HOME}/status" - req_data = {"title":"run4"} + req_data = {"title":"test-run"} res = requests.post(url,data=req_data) return json.loads(res.text) From 083739a8e36c948369b691d7241ba3c4199bd100 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Mon, 4 Jul 2022 17:52:20 +0300 Subject: [PATCH 178/196] changes docker build to docker pull in cml-report.yml line 24 Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 3 +-- .gitignore | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 7010c94a..4c3e68dc 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -21,8 +21,7 @@ jobs: run: | python local/rest_api_gcbm/cml_report/process_input.py cd local/rest_api_gcbm - docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api + docker pull ghcr.io/moja-global/rest_api_gcbm:master - name: Get Public IP id: ip diff --git a/.gitignore b/.gitignore index 1e5815ba..18dd9500 100644 --- a/.gitignore +++ b/.gitignore @@ -173,3 +173,4 @@ terraform.rc # Add GCBM Demo runs GCBM_Demo_Run/ GCBM_New_Demo_Run/ +local/rest_api_gcbm/cml_report/templates \ No newline at end of file From 14ad6a77db1f3eb97532c15f3125db4e19f5e2ba Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 18 Jul 2022 16:04:06 +0530 Subject: [PATCH 179/196] test changes --- .github/workflows/cml-report.yml | 17 +++++++++-------- local/rest_api_gcbm/cml_report/process_input.py | 16 ++++++---------- .../rest_api_gcbm/cml_report/process_output.py | 2 +- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 4c3e68dc..26c597e9 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,13 +1,14 @@ -name: simulation-report +name: CML Simulation Report + on: pull_request: - types: [ labeled ] - branches: - - master + # types: [ labeled ] + branches: [ master ] + jobs: sim-summary: - if: ${{ github.event.label.name == ['run-simulation','GCBM'] }} - runs-on: [ubuntu-latest] + # if: ${{ github.event.label.name == ['run-simulation','GCBM'] }} + runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v3 @@ -21,7 +22,8 @@ jobs: run: | python local/rest_api_gcbm/cml_report/process_input.py cd local/rest_api_gcbm - docker pull ghcr.io/moja-global/rest_api_gcbm:master + docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - name: Get Public IP id: ip @@ -37,7 +39,6 @@ jobs: - name: Create New Sim run: | - curl -d "title=test-run" -X POST http://0.0.0.0:8080/gcbm/new - name: Upload Files diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 25d32de0..41765f06 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -2,15 +2,11 @@ import os # Unzip file -zip = 'GCBM_New_Demo_Run.zip' -with zipfile.ZipFile(zip, 'r') as zip_ref: - zip_ref.extractall('GCBM') +zip = "GCBM_New_Demo_Run.zip" +with zipfile.ZipFile(zip, "r") as zip_ref: + zip_ref.extractall("GCBM") -template = os.path.join('local','rest_api_gcbm','templates.zip') -extract_to = os.path.join('local','rest_api_gcbm') -with zipfile.ZipFile(template, 'r') as zip_ref: +template = os.path.join("local", "rest_api_gcbm", "templates.zip") +extract_to = os.path.join("local", "rest_api_gcbm", "cml_report") +with zipfile.ZipFile(template, "r") as zip_ref: zip_ref.extractall(extract_to) - -templates_path = os.path.join('local','rest_api_gcbm','templates') -new_templates_path = os.path.join('local','rest_api_gcbm','template') -os.rename(templates_path,new_templates_path) \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index 48eeb460..1cf3fdf5 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -1,6 +1,6 @@ import os import zipfile -zip = 'run4.zip' +zip = 'test-run.zip' with zipfile.ZipFile(zip, 'r') as zip_ref: zip_ref.extractall('output') \ No newline at end of file From be6ae5ae9319f6cf861b7fece3c0d4e9ca13a363 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Tue, 19 Jul 2022 09:07:32 +0530 Subject: [PATCH 180/196] push to old version --- .github/workflows/cml-report.yml | 21 +++++++------- .../cml_report/annual_summaries.py | 4 +-- .../cml_report/process_output.py | 6 ++-- local/rest_api_gcbm/cml_report/run_gcbm.py | 21 ++++++++------ local/tests/simulation_status.py | 29 ++++++++++--------- 5 files changed, 44 insertions(+), 37 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 26c597e9..1b5ac1a6 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,13 +1,14 @@ -name: CML Simulation Report - +name: CML Report on: pull_request: # types: [ labeled ] - branches: [ master ] + branches: + - master jobs: sim-summary: # if: ${{ github.event.label.name == ['run-simulation','GCBM'] }} + name: CML Simulation runs-on: ubuntu-latest steps: - name: Checkout Repository @@ -39,7 +40,7 @@ jobs: - name: Create New Sim run: | - curl -d "title=test-run" -X POST http://0.0.0.0:8080/gcbm/new + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - name: Upload Files run: | @@ -56,7 +57,7 @@ jobs: -F db='@db/gcbm_input.db' \ -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ - -F title="test-run" \ + -F title="run4" \ http://localhost:8080/gcbm/upload - name: Run Simulation @@ -69,7 +70,7 @@ jobs: cd local/tests python simulation_status.py cd ../.. - curl -d "title=test-run" -X POST http://0.0.0.0:8080/gcbm/download -L -o test-run.zip + curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip python local/rest_api_gcbm/cml_report/process_output.py - name: Upload Logs as artifact @@ -81,13 +82,13 @@ jobs: - name: Compile Results run: | ls -l output - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/test-run/simulation_output.db --output_db sqlite:///output/test-run/compiled_simulation_output.db - docker cp -L gcbm-api:/app/output/test-run/compiled_simulation_output.db output + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/simulation_output.db --output_db sqlite:///output/run4/compiled_simulation_output.db + docker cp -L gcbm-api:/app/output/run4/compiled_simulation_output.db output - - name: Setup cml + - name: Setup CML uses: iterative/setup-cml@v1 - - name: CML + - name: Send the report env: repo_token: ${{ secrets.GITHUB_TOKEN }} run: | diff --git a/local/rest_api_gcbm/cml_report/annual_summaries.py b/local/rest_api_gcbm/cml_report/annual_summaries.py index 300c7d33..e40b2523 100644 --- a/local/rest_api_gcbm/cml_report/annual_summaries.py +++ b/local/rest_api_gcbm/cml_report/annual_summaries.py @@ -15,5 +15,5 @@ """ df = pd.read_sql_query(query, conn) -ax = df.plot.line("year") # x-axis -ax.figure.savefig('output/total_biomass_mt.png', dpi=300) +ax = df.plot.line("year") # x-axis +ax.figure.savefig("output/total_biomass_mt.png", dpi=300) diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py index 1cf3fdf5..642e1b78 100644 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ b/local/rest_api_gcbm/cml_report/process_output.py @@ -1,6 +1,6 @@ import os import zipfile -zip = 'test-run.zip' -with zipfile.ZipFile(zip, 'r') as zip_ref: - zip_ref.extractall('output') \ No newline at end of file +zip = "run4.zip" +with zipfile.ZipFile(zip, "r") as zip_ref: + zip_ref.extractall("output") diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py index 92c5dfd9..1b2a366d 100644 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ b/local/rest_api_gcbm/cml_report/run_gcbm.py @@ -7,38 +7,41 @@ HOME = "http://localhost:8080/gcbm" DONE = False + def run_gcbm(): url = f"{HOME}/dynamic" - req_data = {"title":"test-run"} - res = requests.post(url,data=req_data) + req_data = {"title": "run4"} + res = requests.post(url, data=req_data) return res.text + def status(): url = f"{HOME}/status" - req_data = {"title":"test-run"} - res = requests.post(url,data=req_data) + req_data = {"title": "run4"} + res = requests.post(url, data=req_data) return json.loads(res.text) - def display(): global DONE sim_status = status() - if sim_status['finished'] == 'In Progress': + if sim_status["finished"] == "In Progress": print(os.system("docker logs gcbm-api --until=30s")) else: DONE = True + class CheckSimulation(Timer): def run(self): while not self.finished.wait(self.interval): - self.function(*self.args,**self.kwargs) - print('Threading Done') + self.function(*self.args, **self.kwargs) + print("Threading Done") + run_sim = run_gcbm() print(run_sim) -timer = CheckSimulation(30,display) +timer = CheckSimulation(30, display) print("Starting simulation.") timer.start() time.sleep(300) diff --git a/local/tests/simulation_status.py b/local/tests/simulation_status.py index 72493ed8..1c57a93b 100644 --- a/local/tests/simulation_status.py +++ b/local/tests/simulation_status.py @@ -2,35 +2,38 @@ Author: @Namyalg """ import os + + def get_container_id(): """ - Return the container id corresponding to the image gcbm-api + Return the container id corresponding to the image gcbm-api """ - container_id = "" - os.system('docker ps >> simulation.txt') - with open('simulation.txt') as file_handle: + container_id = "" + os.system("docker ps >> simulation.txt") + with open("simulation.txt") as file_handle: lines = file_handle.readlines() for line in lines: - if 'gcbm-api' in line: + if "gcbm-api" in line: container_id = line.split()[0] - os.system('rm simulation.txt') + os.system("rm simulation.txt") return container_id - + def get_simulation_status(): """ - If the container gcbm-api is running, the associated logs are returned + If the container gcbm-api is running, the associated logs are returned """ container_id = get_container_id() logs_file_name = container_id + ".txt" - if container_id != '': - logs_cmd = "docker logs " + container_id + " > " + logs_file_name + " 2>&1" + if container_id != "": + logs_cmd = "docker logs " + container_id + " > " + logs_file_name + " 2>&1" os.system(logs_cmd) logs = [] with open(logs_file_name) as file_handle: logs = file_handle.readlines() - #os.system('rm ' + logs_file_name) - return {'container_running': True, 'logs': logs} - return {'container_running': False} + # os.system('rm ' + logs_file_name) + return {"container_running": True, "logs": logs} + return {"container_running": False} + print(get_simulation_status()) From 2b68ae5148ae265a20e9342268d9e738e2d22642 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Tue, 19 Jul 2022 13:04:16 +0530 Subject: [PATCH 181/196] reduce number of threads --- local/rest_api_gcbm/Dockerfile.cml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/local/rest_api_gcbm/Dockerfile.cml b/local/rest_api_gcbm/Dockerfile.cml index 7ac2e701..56aabead 100644 --- a/local/rest_api_gcbm/Dockerfile.cml +++ b/local/rest_api_gcbm/Dockerfile.cml @@ -21,4 +21,4 @@ RUN git clone https://github.com/moja-global/GCBM.CompileResults.git COPY . . -CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] +CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "2", "--timeout", "0", "app:app"] From f02515d6ea3b579bb62eebc23bfa8697adb56d4d Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Sun, 31 Jul 2022 12:51:59 +0530 Subject: [PATCH 182/196] try fixing --- local/rest_api_gcbm/Dockerfile.cml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/local/rest_api_gcbm/Dockerfile.cml b/local/rest_api_gcbm/Dockerfile.cml index 56aabead..379ccfca 100644 --- a/local/rest_api_gcbm/Dockerfile.cml +++ b/local/rest_api_gcbm/Dockerfile.cml @@ -1,24 +1,11 @@ -FROM ghcr.io/moja-global/flint.gcbm:master +FROM ghcr.io/moja-global/rest_api_gcbm@sha256:5e2eddb75f60d0767d1623202777c2922286ea6e0c4cc4740ffaf8f8d45ab440 -WORKDIR /app - -RUN pip install --upgrade pip - -COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt - -# Adding npm for CML Actions RUN apt-get update -RUN apt-get install nodejs npm -y RUN apt-get install -y python3-dev \ && cd /usr/local/bin \ && ln -s /usr/bin/python3 python RUN python --version -RUN node --version -RUN npm --version RUN git clone https://github.com/moja-global/GCBM.CompileResults.git -COPY . . - CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "2", "--timeout", "0", "app:app"] From 4cdea9f3f4260fbd5e17c232fd0cea6b82423c53 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 12:19:54 +0300 Subject: [PATCH 183/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 126 ++++++++++-------- local/rest_api_gcbm/Dockerfile.cml | 3 +- .../rest_api_gcbm/cml_report/process_input.py | 12 +- local/rest_api_gcbm/tests/linux-demo.zip | Bin 0 -> 531923 bytes 4 files changed, 81 insertions(+), 60 deletions(-) create mode 100644 local/rest_api_gcbm/tests/linux-demo.zip diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1b5ac1a6..7de80bf5 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -19,71 +19,91 @@ jobs: with: python-version: '3.9' - - name: Build API - run: | - python local/rest_api_gcbm/cml_report/process_input.py - cd local/rest_api_gcbm - docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api + # - name: Build API + # run: | + # python local/rest_api_gcbm/cml_report/process_input.py + # cd local/rest_api_gcbm + # docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + # docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - - name: Get Public IP - id: ip - uses: haythem/public-ip@v1.2 + # - name: Get Public IP + # id: ip + # uses: haythem/public-ip@v1.2 - - name: Print public IP - run: | - echo ${{ steps.ip.outputs.ipv4 }} + # - name: Print public IP + # run: | + # echo ${{ steps.ip.outputs.ipv4 }} - - name: Check ports - run: | - sudo netstat -tunlp + # - name: Check ports + # run: | + # sudo netstat -tunlp - - name: Create New Sim - run: | - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + # - name: Create New Sim + # run: | + # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new - - name: Upload Files - run: | - cd GCBM/GCBM_New_Demo_Run - curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2014_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2015_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2016_moja.tiff' \ - -F disturbances='@disturbances/disturbances_2018_moja.tiff' \ - -F classifiers='@classifiers/Classifier1_moja.tiff' \ - -F classifiers='@classifiers/Classifier2_moja.tiff' \ - -F db='@db/gcbm_input.db' \ - -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ - -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ - -F title="run4" \ - http://localhost:8080/gcbm/upload + # - name: Upload Files + # run: | + # cd GCBM/GCBM_New_Demo_Run + # curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ + # -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ + # -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ + # -F disturbances='@disturbances/disturbances_2014_moja.tiff' \ + # -F disturbances='@disturbances/disturbances_2015_moja.tiff' \ + # -F disturbances='@disturbances/disturbances_2016_moja.tiff' \ + # -F disturbances='@disturbances/disturbances_2018_moja.tiff' \ + # -F classifiers='@classifiers/Classifier1_moja.tiff' \ + # -F classifiers='@classifiers/Classifier2_moja.tiff' \ + # -F db='@db/gcbm_input.db' \ + # -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ + # -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ + # -F title="run4" \ + # http://localhost:8080/gcbm/upload - - name: Run Simulation + # - name: Run Simulation + # run: | + # pip install requests + # python local/rest_api_gcbm/cml_report/run_gcbm.py + + # - name: Retrive Logs and Download Results + # run: | + # cd local/tests + # python simulation_status.py + # cd ../.. + # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip + # python local/rest_api_gcbm/cml_report/process_output.py + + # - name: Upload Logs as artifact + # uses: actions/upload-artifact@v3 + # with: + # name: simulation-logs + # path: local/tests/*.txt + + # - name: Compile Results + # run: | + # ls -l output + # docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/simulation_output.db --output_db sqlite:///output/run4/compiled_simulation_output.db + # docker cp -L gcbm-api:/app/output/run4/compiled_simulation_output.db output + + - name: Build container run: | - pip install requests - python local/rest_api_gcbm/cml_report/run_gcbm.py + docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . + docker run -d --name gcbm --rm -p 8080:8080 gcbm-api + + - name: Process Input + run: | + docker exec -it gcbm python cml_report/process_input.py - - name: Retrive Logs and Download Results + - name: Run Simulation run: | - cd local/tests - python simulation_status.py - cd ../.. - curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip - python local/rest_api_gcbm/cml_report/process_output.py - + docker exec -i gcbm -w tests/config /opt/gcbm.moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + docker cp gcbm:/tests/output/logs/Moja_Debug.log local/rest_api_gcbm/tests + - name: Upload Logs as artifact uses: actions/upload-artifact@v3 with: name: simulation-logs - path: local/tests/*.txt - - - name: Compile Results - run: | - ls -l output - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/simulation_output.db --output_db sqlite:///output/run4/compiled_simulation_output.db - docker cp -L gcbm-api:/app/output/run4/compiled_simulation_output.db output + path: local/rest_api_gcbm/tests/Moja_Debug.log - name: Setup CML uses: iterative/setup-cml@v1 @@ -98,4 +118,4 @@ jobs: echo "# GCBM Model" > report.md echo "## Total Biomass Curve" >> report.md cml-publish output/total_biomass_mt.png --md >> report.md - cml-send-comment report.md + cml-send-comment report.md \ No newline at end of file diff --git a/local/rest_api_gcbm/Dockerfile.cml b/local/rest_api_gcbm/Dockerfile.cml index 56aabead..683f2c41 100644 --- a/local/rest_api_gcbm/Dockerfile.cml +++ b/local/rest_api_gcbm/Dockerfile.cml @@ -1,4 +1,5 @@ FROM ghcr.io/moja-global/flint.gcbm:master +# FROM ghcr.io/moja-global/rest_api_gcbm@sha256:4c23b9874109b274247c26e3a01f8bdeecf26cda1afc8b5941234530c47c0012 WORKDIR /app @@ -21,4 +22,4 @@ RUN git clone https://github.com/moja-global/GCBM.CompileResults.git COPY . . -CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "2", "--timeout", "0", "app:app"] +CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py index 41765f06..519669f5 100644 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ b/local/rest_api_gcbm/cml_report/process_input.py @@ -2,11 +2,11 @@ import os # Unzip file -zip = "GCBM_New_Demo_Run.zip" +zip = os.path.join("tests","linux-demo.zip") with zipfile.ZipFile(zip, "r") as zip_ref: - zip_ref.extractall("GCBM") + zip_ref.extractall("tests") -template = os.path.join("local", "rest_api_gcbm", "templates.zip") -extract_to = os.path.join("local", "rest_api_gcbm", "cml_report") -with zipfile.ZipFile(template, "r") as zip_ref: - zip_ref.extractall(extract_to) +# template = os.path.join("local", "rest_api_gcbm", "templates.zip") +# extract_to = os.path.join("local", "rest_api_gcbm", "cml_report") +# with zipfile.ZipFile(template, "r") as zip_ref: +# zip_ref.extractall(extract_to) diff --git a/local/rest_api_gcbm/tests/linux-demo.zip b/local/rest_api_gcbm/tests/linux-demo.zip new file mode 100644 index 0000000000000000000000000000000000000000..69f3b28154b480b3f385cd777b28c312f53f2c1f GIT binary patch literal 531923 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�KGY#yb%ppce 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

vMGFym%b0ei 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

bCsO|JOP<&SK( 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

ygWJ0lSGwfF1G^%AO_ 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� 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 z zeSwtb<1_Dw#=ub=zlV)k$bw;F9A(SJQz_#Br_EQ&_a672tlol8di!}fDc@X#=3nh* zT~%M$wU02L%8?pT>)1`*R7|0n#;0v9@XLwdCS7F@L0|wu00cZJzn$?NL`HT0@Moi+ zoF%!~nJf=d@C9QsCbHQ@i%P1$@WCE&qE8E55*xA{g$BHTFl0Ie$X3K=U>^8c5cBhQ z*3p?9_kD6cpnum*?<)QIGcPq?c5nLujjn9Qs)!@O0P7FOOm)^YGZJO4FAOiCw!DhH zwI5Qv1@IjOw25fHAL2QR4}|^T$qY?-D-g`eZpIW#%Wurh;V;BvZ=Co)2oKDq0BcAq z1=T)_II?e|7)x8_PGJ)8R}`{uVjRm~eV`$kIh0Z<(4gF0{VdYQc^YrC`^(+2x2sed zxS6@EyXMa$>l~Wyjb%E?eIOo?(QwbKPcadYRJ8cQVxC4NpfMSps={VYp+%D5sKX=8 zkt$L2C*}Wt;xvvww-(7X9rP!wWdyIZBcTXq+%poypA<^fWFQm+LjoYw=}2ezqW^b~ z8udK;{m!E`d0IoC_^m-*@P$uAHLes3AUT6vVEk%Omr__b{|EoO4GLOdPTYxXIZ?#U zL0LySqctb|%lGo1d6^KWIMav%VQ2L~wPq*o$_ya3%-`g6=qG6)fKD%&MDoi1zP8PI z@8#bAE(@X>XBkoOalgrS>f{EhZe6A>fwF+WnwVL!4-ewY-v8G@3?mMf=ok^3H1T@3ArZi-*wQ(H=wcR z?}+Fv8b=0VR4Kr@56+hxXu7z&x-A~Uu_@dk!;AlVWdm@ksNpULPy5?Uy(!!8Qn>$R zp@M$y!88}Cp(3^I?6$D_2{dg~0Gcj`3Bb(~FTU8?3+{afMM+S!2F2i8u@ewa*}(ES zu-xCFGsWU}2DZvmZ)z%{Pd)kOA|I&y?LqM^DB^g$Q@Swaxj}uD zc7Ct*$wKAS7G+SxyZ3S1T64w?Bme3~tq)WVd=KmnOb%XniA#~~kbK3Vk93dX?EGzO zFCxA{??b>BiH@>bJpFhnd`Wtlc0GJqe0?{(p?zXu!)9Ih%5(U7{X%*{f1zA>f_Xf5 z%gGliS9V+)JYKOCRBt8t*l-+ALebZ-!U)qhll-vm(jts!A+xIAW!0|9blx=N7l{L1o} zbS*!=g(Xu+IUV~Se?0znynRe~Z0KjNVCz`}+=mFv?O(h5_t^H^o4L{F&QtZZUp?}_ zv{lPj>slz(CR^ZE!~x^=T<)*y2Xj1izQ$T+n3$HA7%#{Skgt9mXg@1J+zj-OM`QzE zCFnHbi`-TRQReHEO#ylql-ctLs8bWIXw0e_@K*dUMN?p#g~EJNnXCHu9opd+a*hlG zIbY-s@65>!`P$|vicP(A!x*w6M&OIXDB;iZoh3lHWt;$8(-N7J86ptTDa>94-2)vy zE8^OnAb>2fQ#`_%Dgx|q7wjMn=NcJw0*!>XnU|mT?bo6}hyWoH1WSphml-vVkZDh zJZR!cfPgk8fcymiC+2{Gi|_hz;nuV(NWs3B&?deSXY`r9W`jCa>EF~U zp;=BsBf0hRe!ov$eDWJoB<~NU707V)&+@9U4A1iRZN6&XcjaCV8DcXpT$X+#>=E&5 z{b5@jHs3q+=@?aM0CGj!@;?%E!hs=fghmh7|CR_o{+rjA^;NM4#$+>tK{@=tB=#fT zX!gL`WZ|#YLnK8ghtDc)fo@Ma#(jSJ;~4Jd?PDQkq!;c%>tSt}@Tcn`!6FmLv#+*v zN=Va}ZdlR_L{Ro0X9zHsyo zA#gY?T#<@rV=+yL;=y=v)p`GJQ_dG*rwBHdhC6+RSbx@{crjj}I{>-K_SMVZ3?izE z&mX|qSR@Id_fm52BJh6b-~u*81Yk1+s|i9Lyn1OR2KXv@0pAoB;BzMed=g#E@1Cv+ zJYnsB`D~LwAIDMKw3M6Ks9E_w#`GBFd$J#ym1HrBUwvYDu)dV=KVnT0e8Nf)0b20@ zYrHax<^Rd*#{~yP3$T9Tww?;CuLtYPRl#~eu>R?7ed7OQZRLBv{C#QViy|+XaaPt( zj1om7Y{dO|zRq+EeI4h|0*?tEQLZ|bDb5;2`>?%=sQ$l)nIh#Zre(r(OghrP*!_23 z$DLxVzU);AiFl#7!rG=NUHF&Grf`TCPy+=x9>GJoml^*|xINEkU z>{EheA;&@a0DV6OXM_zlg5!X{GaV~Trzr(n3#0vgOA+5l=KWW?-GZlEgIeZ`R3XOB zC47w`WX+w}aoBT}wc$ni`1}$kvx1T;36BSmGZ|U4IY~4zP=eCgO#L)8LP$ zXw8DIo7zSB5Ko5g&{JzES4!q+CRqRLfFn4H|BQOXLD#gpurE)@Md^+7lio-sSaUkI z+?o$QVbI{FJr!V571)4$y!BWkfpicpm{A5Z+U7vDupL;~0c2zfz(OW4Z3U*K!NOY5 z<5B}`0qF=B^MQHVU^4ljkq$H(fks}?m2Wg%u`j8RuNFgp}TmON~>jd82tz=qlvp_ibw>nTCXj_KZk!@7*Uw$ zJF;uF*&p}ce0?4iTG9r!e($oW8T6rYGSr89&O&n1w|-R1CDO2Ss*}4jxbx@Y#NyfF z=Av!2}AbY9w8h&-SnH^QOD-i>-y81`5e53^4}(B(AzP~qfe@uv5t z)mUe>-y^#;YA7q1siV;$}i``T-q}hepIcjuZpw>s2GO7#dOk> zwhk?kH`y<lRpQ0;4LWjBtm=RMb2C?7*JffmwWgy}_7sia z%BT-COv{;R`J}1pG4r$iw9z=%UqZT8cqlv64KKhZ=f#})NOjB}hwC$C|NG*1ie&NV zUXJWy>qu|-(axNyHc*Q97tZ3*IgM0c>xgWaM8=Z)3=r*-6kFou=#C6w6LW4jM>^m0 zF;pr)^`%haKk{86^586{$F~Trq9?GBuM)mrM`kTaR(Jhmin{K@lPL-SY*<{In&lN# z=tnl1BQwjlWg<;JZKJU&45rozW>QoO*j>A{r>Ml2O5E}3X2x6ya|*^>oLq0{Jg|rj zHd_kc^5j#9pM0o|(V3wZ|MDTD5T8>Jdnm+>)m2tY$u;RGk>urm&Xky<-DIe`ofds3x*Y{ym%N z{&zSNnM$_bD^{p%w=H6K*&cDBN{kA9pR;ML-{bS<^zV!(g@W~5#d2SHaKq_e&uyX6 z0=LACKA(>p14k62ahoKgxto5YiJK2b)7)w|I(^C;gWFFrsqyqd0__BM@*sZZHAsBQ`;Hm1ahW&qs9MvnhW+2vs;LBjL@$nb(EJb2m75L zJNKg+A`5VZvD70~IajvJS+FFyUiBX;WR@Kv#hD=W){w9?Ktut4*T(a(^ZNy8MkfecZx6&x3PW+tUF} z4D`17`!!hm?*qS*MytVlX+1pp?B}m4-@kTcLsGlo+oT6C1TO^KthMg9ZnmynC7vXm zlr{{{ZqDt_ZB?Kv4>JP@TQ=vVJWC}zwwHVla)OClU@bpjbM4IwP2oN_6IT@%%@>9z zjTeo%jo;>i=VX89&Tapu+;iG{=ASA%R^fNi_~iHGbBBgXcdJ$BJVWFZk{cO})Lb`S z4_tR!FRY!KUi!WI?8T%^d43Nv#3e^;l6L0^)+|$zuZ9fNo%G&C9X9|UATEwIFDNgh zFYsk+{HJGu88S6>R zFFrF)QUU8a_gdHq);U|OR1}$%Ow2uXm#EpY2-Hr$skr=hI6Rf4_@ zRaB*&|HWac3Z5Jb+#G#|8+^mK(Cb@&u{=&B(n0i+mcW(*$4R76;|`W$8TEik7N_~w zRUz{)LHn&I^TGSA)UVPXX+Fqx?Dq@WPeA3b{o>VK=Fr`<4$2%J3Z9W$ZC&@@+lO7M zABJ+gyx-Ybd)!+)$#ey*h<*gDaXztN*Ie8_WCYyG-CQ9FnHyVhY<9~OGtM-NhkZr{9b{~A;K#XPh)`!3 zqSaXl#e}k*@z{cXgEFIZQ3G|~k3>8qB@iBn{<;YtF%QTSXfE(bTiT}MjH?X%0bCRn zWN2^U^1#8ueNChS|2oah_kbB%9$6q#L3Ew(rb-6OTsvf06Bu$*8Z^(*j)K>UXJJ8H z+=NK%kz-c(yYot#MB=5jVM?I!5;O)XC7I^HqG+nb*RdehZb%aQma#m_Zle-uvG`9~ zFf}s6jI|>c1mBRG64W@yFp35t{t*iTb<>@!aT4Lih8Vl)64{rH<&l9U@?eP-Sn`V{ zmUjrEL}Zv#43?;410~5s_V6)=d)*=>(huWlwP0ps#c6BqGRM4Yj~OrS!{U=eU!9c! zAZ^z5xmH@EFSaK{6$En-G(pe@K?wxwzT@r?T>uzL9fIxU%Rykbdo>ec0ctFEc{3qe zUH9v!7rJ#W2gA6M--=%3NYVC(81xAsru(|(?hMV#==uP&y*APoPNTYq?hG->e2sAS zXPi~6%}w?woHp*G8V*tJ>S#D?On#C&%^6Q?h=wrEa@NAgz9XDJvc&2PB`Xo-<}gOm z2ujT2LM)zsCA6;_e@5T!`e~XgKEa^YH|6GUMdYPtCEj6swN+p8;NaG;x7oCevZ7*w zcIm$b(nPeLBYbv72R}sXWM<{F9tXP?Yi;J4i&dy+UbZ8#!Sj{~#9Y%VHSg8ZM^Vbm|O7wZwJ*W&wwTgXegM(9m zga)OT$*YzAtf zs$KIaA23e>$cB?Zo)iBhPTZHF>E2+I@G3+CXTkaDNQ2k}ZZ3Q)(o=L|YZg8~(jeMe zSp_TzQ{~WHUggwWTxC}_Y6_W~G!>m2GZmR5niMm}-G-M%)82;iyjE=PD?0tlw`ILR(UoOw;Ybd_7uq{HWAIow|0?XZ0Ysk3&_}X zJRm?NEIJ`pI<=vFk<{7AIKm=~`0rd~7#;#^I0a;G+8z+0A{N~cSDl8?i%9P5V;nt^ zU3?~&8ODdbb^HP8ZY~FSsN_XE#BQewbT$$<`zsEqhzI_j%M8QszB=Bo_WsOyOx=6(QiAbwp^u6YN2h;_q zb;UjD{OEh_jiYfo&VQO7jrlP0DvD>aGfc^-(sqGGK95NL(@JfjZ2=1vP3OFf4S8!M z&w1xNrTbU5r1`?Bdong0b3Sbv&08UNAF?hPHZHEnw3j`Jlv?0Ag(HPM*I7uK@%;#v z3v+GzSV*Rc{P30^=GtDcAZziz5`uL0mf|muPuXs>AZzfy5-e9w*{YJowc-r;UK2Zm z|9q~A5u6Mzcex3F_iOHE z?xZu^XQ92Kjk0apUhk%CpVr3TM%HGG`dH#bx|KP2;pFba`= z(7{$ztJ=;0casf_)aS&f!Jm7MwSo0`g}Etg>AZ5Auu^SGXDV=twT9GYDQA~%ood?Q|FWBNgxN1E66$IKV%Pb6FG`B&C`?qCNnFgosU2PYvd`&hV2GS{Wb2h zOrBz#V*JQ>!I;Z9z*x(;!l=S9EE6O(BTY_H6YV9QcEi)oeLPW+MgQmNSzgHFc{brJ zm!A$j$>+Rh_)QsB0@VFEz>>>FM--d%W3prPW4@c|b*3{cf|&?S_7dtIPIT3co1}=9 zNeZlJ`tEKo8`Zj|fTMSEHwKl9=AesrZ1+Q|kD7x{-mkhDsJJx;oxLNw1*rNo2OYhW zx{0XNHK8uv@NRLcI1Q+icS`qtDqIbyb4@`v2i1iJ)UhV38;dGfBgv&Ew_A$pn?{mT zOOyIX`RSEHrZo;{&R;6Vyam%UtqsrhGi z2)xIFJj(1d>tBMz2@Y%LnpfT00w$>eZ+l)j>kBKpJ>UwLvObVUmu{&VNQDd%f-o8Du=5i}l`KaRXaLH1OCvzK zdrOl+>TyeBL0SRQ$G4q0ATq9m9zlW(2LfXImuKKyCJ4+(v%cWsfdnHX|7 zr3JP5lh$rxf6i8LSx=6lJ_D-YZ9llfE4q(V<^KyMk}n59^TDk-_J8jmmId~ozU@E$ z8r;hNz)Q{UQu?z$^%?&~ERNTgJpAd;|Nl8!-Yb6oCk@y1{eJ=Nm8JJblQcL9)R~6j zjoy3x0Rks!g?Q&jeEQOdu4*61GuYq!zYB_~1I5`561v{1i?L`_%nM z^>(Yzz^!ujtNmXB`vbPyjZ0v>iS6bCu09r=7HGZe*q()s@e!UX{gZa7?+>B!o z1&QbpB407z;eaIfkdQl=KjVhP_Bh<%ZdjNTiw8qhJc z;PG99o3?AGR?YTun+d(G;D4{r4MGv}Cd{7|D*UHrH#OznbME@B7WdBJ2QvbpR>TvRub>HCYy|WRt;c&yl03d47U(VsIjG5^(bP1hyx?*9QztWbU!dE%*Mb*>0#TXlz?OZz&)3 z9q=9X9j`~#Pu7n}Oh}CVOD!+h_BQ1=)ix!}8lHfjX`GcDhOQ21rM)n1>R-nYGIr(z zmJjYnY5AArry6x>0S}E{{yJ+zt0Svq7rZBBJf((ZNM#yiOl8((xMkv`3;d70{rsHs zzt(nqlD=L#ZCzPU-j`}yY}{|$ZTus(_G{H_-Ruv1jb=4qdUWA$ba8!gx1G!jM%}Zj zL)=5XRnGyN6y_iPf65Pe1KV3vt$ByjxChw(Wc|4YcBmpRo&ANPpLT&pd)9nf8+WLA z5YJp%rRK*Ep}@o?+2Yz(1~-QVL1}wyzo8y)Ym0J&#E>nz)k7^NUP*zkZ4(3Q7kSWp zo%hxX;D0a&Z|t3Qc9KOcViDngwW!n z2m-H2MQ*PaMO?2uMOrD7LM#UMYFe+l4u-`a&-b=gJMLj*-Hju(B4C)*spyqf7Hs|# zqFd4X$1)Mw4G(c2O`z$+tKZN_>TIB5jECUPy_bWm6i z>Le*`P*uc3@aEn}(nO62rgqarKYz>8%i@!002+8$L7EAw`p}1)qY_5xD4sAiB4z4- z#R`2aKKeGxe=p%df8pMPzL7Qeg|}4RbQ-jjQbRJARpnsv>y=FZHaG>g_D##x4-GwE zeN48kq);etdw+=Wf$bW9Bre2;>XHD>*(oe$bN`YY zjom3MT0nh?ftKzZ7Av5@WOJ=8W-;l_F*aXgcx~+udzp7 zK$xk1XPu=ia%Yng?0pYW^zvN0iVTMAQ~XW~tXgCm494OXBZ!wCH;UJKIG~?80M+O&Xl29+=I=n*Xx( zbqB=?P&5@Gr2j1B0%Y=gR=J*4%V6FIC=LN2VgjIh7w~XLbm5d!C;}xVAaH^p2x^HS ztbpNz$3Ryio@doF7(i7r22iE`5=edrlOkx~hU@=6eo=x4-kW9_Y>9tH=4}1wK|H75 zC_8;O`L~U?#P%&s|A`S#j(*_ObO;4GM!}!|CrWL+2RzG#iSN}P#77CeVwwg%%JG1v zXSb&Rfo$}jyBuNnrfn&?aua{xl#5JTJ$hhP{|7jEG#;2?2Mh0Hp|R@;j;()X1+Xfp z{j#0F01l&Z^+}if5zVh)J7IeOhVz6Q%hw(T;S&OfU})_la5Qpy1fEqt<*KdjETbI+ zjtN2xIOI9KpvVV`yr9T+D|Uk-8z|y~VlODt^?{-QC_+F{?N+?)$pMP@Kr!}K1bc2t zfIFp<4Q!s+4*0VEyWK`7Xu^R2?Sf)}6JTNhjIHg#{O#tb!E-@w7_65D>oLK4xdAYy z1!KM2{vBY<3&vMq{+|O-KamCYO9T6zgXhxL5MU~!2KVe8Cke=#PB4KUM!;iiSqSue02(VmqXlR* zz5_r8CIFp-;1T~%JTV6Oe;1cv>0Lrc^S$dlG5HC9rM2w1?L(3ce!ZnBD8BE<0?NC$ zvh1y#NrP*4|0`>6A5Tn0!e5A%9X5odng>e0!cyFY1wmHv2yphEQO0m~pW>BNb3){m zc?FPXktQ*ubA(JKM8>B?B`*zP`DjA!0)c!O8GzPQ>7quR%Y-~mrI9_6C>S*i|qGZY;3+c6W9>M!6JG?h*m-%S9^^<%X%5VKa>w@b}>zeCfHC0x-RvUSH z4BHILA;_~2Xm1yKmoZx3HQ64*rPJD#&^|qe1;3Ed(LVum-rv3Fy~k^2Yu@hnpD?Zr z^vA;B(TW zs_g<4^Tx>${WV$7ysBsM$0NA)2m0pai|!Nkg{n}6 z}%#>DwwWm%3d@qX=7PR`18 z+J)pE^SAcZ>&T0uZzelz!r%0oNSpl|r@m!1tv7#cRR3n`Q?fEM*-hKf2iS_R4-o|qY9(2lnGC9dS}1ls^%&_@cW3#@{O3-oiWl9 zo2!qoJEwn?!noAax}>=W-(>6Ngj0rF2$fEDr07en6Fab=w$;KB!DhsF&lh%$=aboh*1%AxL}{h=2_ zq}j*W%p$uI;RAJjAq8#?XY`0CYgO5PIqmi{cGszH-_8gT9&5o+%b^0`nn8GP-Sj0d ziVMvRr5|Dz^AHK|uA9GPMaiI_7-#1h3dCH*j1*Ar(f3n?FK2ayDi38yOPAf>qf~A; zYjpYXc=?F?N~Pez=_L;&aJMvS$ z4{NmE(W7r{@(y?z{VhDMAT=nyioG(D`?bp^rV{V(*$ywa#<+;h5ifsC!~CV^I5-mD zpS+fT$;|M02J0Q??%WEkA|3jnF-wjC_b=vQCDqjP=Z1o0)8 zNz^%iTgoy(M8>E|v@hKWXlY-%eYmTHd6GxkAmTNA=Jhrr7#T-M{2L~3WxMzey%Ykb z)@d8BtfXugk70K05pL05FwBMm!gV^DpLq1-HuTNiQ?bJxJgUFkZ6n!sAR(bJX#`Q1h08aDn_tf!oecX^=9ZpRBO~S?^5;@dx zx+G;p5L&=6KQQ*wB#&*-_a81nb0Y9PS{c-n?|nXf2ci=+bSMuMr)H#qcmZJD14Y0${R+3g232O`Y=q?J(wKI4#tRLg$bgRV8p1qFbPx` zj1nae<3w4*uu)7fY1DHVElLQ+i_(SRqex&7lpnA#*#j6W$^=+Sj0z@?a)vRXxL`sk zHDHc09M}U?5R3{X1LHzjz;IA>Fd5WS7#)fa#)r~^5ugYtJUWY3xpH2r3_$D9v6(rp z>%@YPQ6#;^v-kOubw3`-db$=R_|1=CP&{cVI^${%P(efMc;nV`Tn$NvAfpI|9FO-p z(&7V;3cOtr3Gyo=L=>UDMVnmbNh&Dl5p5hIr?J)6^;NO{A7V(*G2v(6k*Pw#abyqDd|W=oN1d{q=d6KNE6i4kx#24OfOZ+ew3O# zD;#S*?mg8rLMZb*l_to#PlsG(c#~$Hka!%@LLFq%cVN9ii_b(KWYKru#`PuE8)7-m zP6w4M9U_vL^K2SLf`1Z_m-mClI^-ZKq0m9bm>~L%8Pb2EfVkyme}{McyJACV>9+{3 zi^r0fiHOIhm?z(e3P?|0KW!uOR2N?u`O8!vWOWn1!m&sgOPfMew=||=t zO_0=!>3>%77-D+)fUC@-v_2t-`l-|V!5BVhdeh^k<#;rV0S`B^shAiLlvU@0Dk8a3^{gQAPb%*o(o0j(bvIoM!x!u+ zaqG=cP|A9IJf_~Anjx(dcK3WLF~hlA`pcnea?OpRzG$Y_f)p4K7=hM&dycr)57oO$ zJ`b!{sxTS;gxk{=)Fh+LSWaS4U{LVb@>9>#qOv9hZ(txG;evk8|F>sjRbuOrH82oB zenNCYbHZ|BxX1mwVvh4>LiWy}&ud>|Ke^qlrL9G+Z}#?6JKn22%)IRe^Tut6mg4aQ zMl|+n=@)JDDgk|GzLj)V`?%kho1fG9d$b5uO&!;5^7duJcP?YmV!*A>8R$H83M?0v z0ec4%jqdn{Q$^`%+9 zfsa{fD7F*!aj}AWd){tSk{5s^6(+sf+e&iIFRV z)L65F>)3tpVf?S~VS;4Qf_n^h@`6%>AzEJXXCG|S&Y~At(B7Sb@HhBE_VRpVm-b#kIi;taZ_S%4Z_`_dbj5Q|&m+bN(7=F|3XYjI(_m z_{}yWFxOTRZPF>UCKyS%HWZmZn2RL~mn6u{mc+}1PZ2)vZPE22LC<^+a+gNabq>Hy z39b8Ev<}FDu@7posvpgsf?ZCHR*TBO&pr2gTq0KN(ob z8eWLT5q4MP4caX`sY}*Pt4ehW`l#drmmY{c{Mgha>ooTQ2wN$rHW`2&KAyU&ct76hNlA_AE0b5CE62(rcwu*anux6NnNG zImQHZQ+XV`BOkr$@g~=#>eJvbW8l>9U&c!yr;5|8bM%gX1WAnISQa2jsW#u?zUNT$ zCc4L7IDscoj)P6WFAcBumnvJgJvV+DFqEo9HLF=?Tl4zSy~GL*0`q6A`W^OS2_eAM zt3NfrG}t=qG4T}=|8eBhnyIs80T-`u5+yi%sLC}@%|5d&In|^_$Mq02cig+g&Z1yH zB?M-gJD|4GN}5kzB)32E!=k1rZeVYWr)g#EjOpIk#S>yt^HleehXlz+qT@$r@8$8I zaseE6%XPpq0sFc=Y!`B%OezX2+w69oBh+PA+qU-N1Ir9=t&c$KBhboCR_rS*^^T?@ zxYHZ7CUb&TB8bIFWO2f1Gc|*1(q!wR2542kwdT>Bh~Sfe4XYDHGID_uKdxRmXk>o8 zH))!!I%t#yjlXVt`gOzKNkOJn{-9~7ybS7y28xvTukPS za;mGVts$4QPm(=`1$LEGm*TJtV9-kv81%B@ZB#(}c3#1&@b?CQL9{gBt>wh7O`uT{ z7({D@3lr@93{mnTT|-BH6Dy$j{rc?lV&$L#YypB<;(U!GL7!+IR@Bu~Mseetpx4MXArcg@iw34zPbp?lZJ3Zw*Z z>De5afV>A>d>)nxmi;C*D`kj;*Zy#mqU_^NR*(tXJ*`=>wD-J3th_58^G13<+DVp_ z%9LJ{;*wU2zxsPeom5?2eNtb*??)4f>h-tF;4^CbH%#7c_Ft4fc``by5q=}OJYx0OnjE>A+O-h7*B z?zj3{9>YJiYH(c?^5JsLM(>%Ci@WesJvX^J-J9bbwF+ha2{wziwF$>OxzdVpDw^`T z&6^+u`#*jfIk|x(2{nFPc>*6$``r4U$9t~eL&k_z9E0oGdD>t{t`@mVV zM(6e0KDSm~83kINXCJ%h)rJQftQ21e5gi@<_4!+O%<=G^-aG$H;K~O4MAb9gQ_?fo zbH+V5v88!x>1;bZNT&GcNoaz+c0nO2%BI`f%LKV8BA@qlEn3?+u5V>%^g2y}k~C@U zH{R8|PohV%i0vZM?8+E<+h)3RK~%=b1vE>g-LComxdf_bqzWz+9rn{l{)i9(D>{KA zW5bX>Tt{LER8fIwKEYM=rsGB*lv`QBUWVzM6;(3=%;2h`U@Jp@E{|FoIf0YJv<>)( z95Es=i#)}4NkbFeY&LSC!72;3GZg1CsJ)RXxL-_Lf1TJ7C4#X?Sj>YoG{MbsBN1w; zVq-f)e*O@(HnI+X5F_c( ziGKJ?A+@gSx0C>+eYX@3q!%FlO1NZJ>pDx8ERpyXAEf1E$gE_OXs|ZD-SO7nq%wkiUqGenu1==V z(o3!ZmqoIN1MVO=0H7`A_3K*+os{0s7xW;|O6|-UaOCYfN^^oh#BlTcCr+}(7Y?`i zV(|`9`B0nRS6#m{Nmb9I$E`XGzqq((%~(d-k*9VaUvukUuNRG>C%iDo@ag+wsxSo z>r`ih2Y}}W^QHg4B0cz)a=1$wF>7(sF+K<+AP`-}FdI=Q^U&-vpHtk74vnZoCyEqA zjsG|H-a9I)AbJx-F(D#J0f|b^Q6z(jj37aB>?TSMf@DQMmtQnAet?`r>YK$I9J*hn!U2S@ zwUZkJ**eH6q%;Ef8AJK*a}3Caiv|TkJBF8unhXq`3^ zdu%M+A~LXdDaZF-)0>%85NWK5clLGXwZ`8!93@%rF6AE&vyd-m8!$aP_uem{@ba-x zJ+McI&2TDEG=%fy;nR(m#rpRx7<1szHT)n6AS~4hX=okJ^E3LpGUUTeWMb(>7Ub}d zutCedub-ehI3!kPF)i@>t(o3(bNd@ixKgv%NL9wBpOQ!QS`e1q%KxT}!$H~?Sf9bq z4r&mP^OiS%x;8xWxt{;KA9%G+lk1qi6~H_ub(BDZhl7hU>bnL9O2J~lp0o@i+o z#!vsySn5%Qxn$7yb;+v zXRS_S2iOA~*kYH4jB#4Tv=pMHu$*H7BAM0{wsg$<4M~Z#QlvQ z`i}^~$LjUU(nvmcQ;s`>HbK zG2xX)YSusyy9HnZZ=`gv>)i_-J-kvmO(mJ~`*|%4l-d?zrk|sJvI_Ld8k#U930s)l zD!rp=fy4Af+vJ)XZf^8@#mj6gGgdNeHlH(o7UKaU4>rfuSQF3-mJ^id4s0;=g@wEQ}u!C)h=1eTz5cksBFRXel9a)zk2Zbg+&<4%DXnbcWJr za`q+NNk8KBtQm^M|C^OYrOY5FK9SWoyok;S?2S?POi+q@F>{JWMM5A{|f&(pvH0?kwOkx-d(O`g8G z(l__P7t0QBy6c3l-$&2qWFHgnZ;VSgdXJsDx}+b+9;Y3DbI)|obN}L=?f&(c!9`+! zc3piv_WXs|r3t+?U0IEh!SOjYarH?JuUwC3hoLH&YAg%U&)OfE#PBL5e7&WbqH)BW z9FvP+yBa)y60p7Bohni{d*ZWQyZwE;c-z;pz%k0P!m&G@4@=)}?~VAn)f)R7|D>+u z;8|M~K9z){N6V&UOCqWYWr-RKM{@!!Mw5}!Odps2W3C^ecwD8gpiuxZGPWN>NTnR^rGry(ZzEn>a zzmH4ZU9AM>w`;)s_9Wd~=53q$XYnpLUNNqj)AgMqSMU*&oCkNow`2p;N!9}fa0_l= zJjs4=b^e7twsSkJOKN zGqrTQ7&X`G@LuV19L_4XE^DEHUC>YcpG}wDFO%Y|UeaYQ6tR2%ICNWb9v35MV4QN% zya}5q*fhOhV=tN)tUqj`FW65P%?madHW_iCTiQkQ25eS8-tm0ie8J{Iw)uiBg-xjo z_UlFSf-Q$l|DZUk06Ix#^V$!M5wv$6PSwxI5Z?T>F>Uwt#?>wtJ3$rrLlC57dHQ6V z>elXs@JlT;asMLy^7-(#|Ivll%Znct*>cFsUXSa~JYfjKZ(RRPr$SiA=GQC$~*YYW&vw_Mo_JZt$Bq1dIAV~trgdRvzL$U&r7w!pNkR*X*0whf@lov6{ zA(;h9^aXhllL(SQkYt49y^ENXkSu~^^96Yk^A02?HOrBB<6s-XqH8wP;NaK-__*@9?-K+3 z7>0g!H8v1gPR|<|1wnZs2Ff)NP|kiK7r&6xT*&b+oa_cu;jJE2@OSk>n z{%;heH?%(yF^Kmlytd}?f2r(_^dQxO_6II@2N#`yDd_*-?|dBhYrSqcz3~7X>%cwG zqY%v?A$4H*f~Vx)|3O?kqoxHXSQh|vc2}fjfH69i)uWKHfgM061Pp*?V-j&qVh961 zT0lbx0(^REI`e`5YG=cB%dG@I{Gq=*xHP#q+yFNDqVOM?G17FJFw#7XZ@d1+bn6KX z-{I%D1drZE1@Uh@QTW-Ne?Qm&niS9t3gU~#j5JQ%QTXkECgM9Zr!;*nt=p}z z7T6J=MP<*zS4PKagm%U>b^bz?2PTXXlJcsG{J9K7Nj*Tc4Mm(l)D1&^>4$e8&CE)Gp~*k0|&|35lnWXvA_9*v9A z|JSG<^kZiJfzkgo7RgoP3E<BmXZ-doGQxPk3I$I`(Uq@_hVl+B%=a#lKi)K9(y;Qt(ZRnViQ;9*=V7FyAU-z?a zs_r-4@mt?Vn5NV?S(u_d+eu7f9D|OiOx_?*hP#Yu%VT7@C)FPpxk z^V#5`$O2c=hH%}Nbv1#&np4p?*}_s(Y2pQYs#RH3zj8-a@UkwwQcbKl|8w?JXzbK+ ze}C}DxPhbhkmr==u-=mRhB$gC>&LkJARBme@zF|%$wJ9|ZCqzOr>xXH!X54I<6eGj zvOkbgo07k-pR%{!vRE6GvH&I#WPi+YI<44bu59E>lzYt`MXc!Lb5&ATzSa}ai_^>0 zy{;!xT2AuoQ`L~A&2H*)>aYF5)ONq_i0&udW_le-o~1&g#@5k~G%3D`v8*7%r-t}7 zM6#%Qzgw=9W^~h#1=5IoeNeUX8`scdUo>yE*%N+Bck8Q0aCOk2Db`Z3Fw-d`;+n-X55u zQEC=&Pt#^LO5TPXCBoshMja$PlKjMH9r~BoI*?3Zg-&>&GBDi28q-nA_{T__sxMw$ zQVktLC@>IwBaO}7^-5n%4ZF``yFU37Cljuq`<2C{(gb=3-$1m(BKy zX24{yo{>(**>Lm!%{R;L(rej~TGvJoJI3)%bm%oZ3AnHfB#$#F@K@j_*euZEajDZA zZ#F67Xn7RTks7%bC53R;Xhw>kFVd*9d!jg|Yj?EJ{^J1(Wfdy zL6@W&HBC~;H&JnBQf1eZ7~SV{n{kd2A6pFCB~et~Jf!s+Cw{tD3^o@WBV3wNJ0v^r z(!_^2v7K3Q_U9e&5$P8n3{(VG{K2NLcHYc%fSOLps3+AfoHny}HX=e&65sCY?u=uq z=4fNXUAiPCUYrE!);^@^k<=yeW+%1RsxI**33zLX!*P3aOZSTTX0C6y|68d)wx41T z5@Y9RbwV=f&(>vw>fEz1Q#H?@sy?pP1R$Cca-S1itH6*J2SQ9!p6(U<&2PTV@88ms z2I-0>g`99uw@a>)2r%s2!F;F)ocP1xKv>lj;?Q?S#MLR;O2X9&pr=RjSYDKibd78C z9i|{$g4C0H)0t4=S<9FdHy)KOas5Zz>Q`4vYBqy!n7Ypf$D>EDrMyjvG6n&AE;~^uj1jDv5*| zoP-?WmsI`|3^cVqLE}bXD=g3*Cv;2h@g#?>ng|pBZgdhZPFzwmCLL&NRYVgXDl z8pd}Ax?APYR1tR-#^`P+u1OLmVHt9Te(q}2Cy@FOCMFR&GL*tpFS%A>^!LYJ68Dyl zyEEBgo)}x`$xzBYsl+fbx=>=Q)g>dR-y;JJ@#Q}<{UbI~Y_T+~cXXxiKY6_`d>u?;psqfMO5w>IL4Xr=cB8ZZvs0jg&k59Mw zJ;0C9X{=xl@yZgvOENA>jGk2Bumt?x6vT=Nx|k{|mV7hDZ*QV#_hKNmWj>zMeV8@E zHHVl$*2RY~vK;&AR@<&EIBwRKrFJwO4^hX5?B|_=b*nt9X7s<%f1E3BRECVr(=Kw_ zM1^=%m6u_>2U$rEo$Vz#x7PmTV(`0VPNqvS;j*$P@n3xxs{|uDUa~&G=HiU__@4Af z=bQvfEP+31i{oLzs_t2oCMV;1NS^M)8zj;UwWZ{Ax|+w5<%N4;p9@J6iQKM-e5km^ z;n4S7Q#U$nu zgTu*P&#rw`LAS5EGnJ-Dd1Aj~U&iVNgHP-pz>UrJnZLEDg z{(QFlsC>`-uKc_C6=1GoCZAOAR9C57yGl;?N!)rQ26d>>jvrmXj349P&OaAjtn~XU zyQ(S6Y_vvS`zZDY3&>U@Gbqh+*CH(DNL;f(nI+VVG$BVrW^qhN8Y235a|IwM*M&z6m>`uP*T7I$l%f53E zJlxR0p>Fhe_RoA?u0B1!0GGPWTwcYjFby*XAZnmUh@}s0~-(XST5TO*73_imhmQL=49x~d%>hBaxQ{^ZJpUGf9$+0b01T7+lCQB zao>el4vM8N#5XR)oKW0|>A3Ck1N=O%|0gcj!1n*w7{Jc`X@EJ)WoEt4tII7LzSm;p z4|#U~@W{unT;Vd!zkACieD6z3<3xH*5U{3TwhuS?Bab;z`++xyt3~3@56}m^j`2BH zdrb3*L_-e!rxQA3e9X8FNJW#u5*Uk4jjKu~wX|<eCaHaHyL+RQ}1#6Z=SW(~ycLfstecMp9if7)dX|GME5v z8ln@{?I-mg67X+OW2z1Qv4M3kb)8@&$%Bzp*IKRf54W@GibPMf>OV*LAkG*(h|>ZO z;!=&kgE$NDAnrQ1Ey>B9ZN~c31c96DE!9u#4CZ%zQjPVQ%JH|g>uVB*Z>%>}YuhQ! zzw&YCF1RzE?CMv3tM4+A9w!0E{XUb+u*nLW3>Qsy*aSlfu*?K_o_$v@_w|w{bHS$T zMUxFSg)W*Lu&H% z2*XzzdeWa=g#cRxH+@s3uj2qPAiNmQtcYHZ6xOPZa#)xJ;!Bcg-|)TbrT58u{ zK7om^CBI#@XOW1}CWzx!#r=aYef>liqree}n~-(Y{t{o={cbZf3C6Yamycjvf;Pbd z6j=dLQj-Tyj?l`dH?akO1#N{21eHQgXB8K&EjSc?NLr?xrKH{ac$zekM1|oj&fxod zOR#BW`5W#>4ae^wy!hrEGg`S2T81k1ly8)=C+C?dfe< zdbYc;TYE(8rX!Z2$>o;wx#wQIf9 zFUlmOv+6Qym}Xh_;;HMTcmJAu4|(OBDjcWmfxRlU)19TO@{=DJbDH< z0nzWjW-eCNtqMY8O2SEkUfx~w`4@2swOS{&0w^Y+Qe*^X7D5Hv*Y~tVL!cOOb`MTGF;HNR&ECMS6tL?sRmQZdgDs z)kVy1;*Fk5atwIzA?Y>tMzi+M=+fw-_ROb^PxIs}A<(d)qlOeCu2i?%6n(&LkZ_Xh{_g=L_?afH!jPI;#5ClmfyoqKSz7?hvT0|da{3& zYMUfcNjK)g%~CGT^!vs9yD=R9M%2XV!8`8XUEw%?j5Q?06XeBbS{CfuT25uYMe4Ep zHng>zfL1cc*TyzQlKvTEXe6V| z9P9zS95L05LDW*^VC>STLI0)f!B0!UgTYJ1uj-xJSj{TUzsRROG($R34EQgqqj&o_ z6jss_6NaP&c=Cd5jJ2sIewMOUrdXIbQ4It$&v(ehN%M%PSF#7=6!d2(-*S%O3_=v< zIN9Hc(#i-)3nZ2!mE!SwRe3+yD5w8W`IbsdcL)Mq?PPOjb|S+ujckK6nM#sYPna$E zwoiY8^507td}#;fwN7q#Xu9GQL;j>6_Gc-3JTwqy29G#Em%8grpmxh-Uv9 z-uBgRhbN)%qd22H2j~&uE+LCE{G$A#nn)B$6q`>^OpC!Q`0%jH7`*Q6(&@jDIyqUt zbxi2P_{_@}BRdfO-Oso;oYBu1SK{f8aRkk8*W%vrR#B~KY2%d6eL7yH`9s14CTuTX zG1)qrdfDO%nxf~t!{JJMQT{Zkt4wbs#D6OtodkA9=}Y+3eQgP!=E^!GJYjeRdt>2W zMVGed?kll+(T~e!(%`uC&q${vN1xuvi;6ryNLTdzdQMhHv);j=fOnRzV0#eGU9&#b zd8vK`C!nQpYIw88~P>e={!Jt#fmsqXNc8Wl#ydE>y3!kL_8Q!VE_Kn zf{{cr0)P~R=Y%GV^U@F`AxJ@hoGIi?A!iCXQ^=tqhn9>mWJF6rcn*N^xKBAc{*GjH zLOdA+0sv$*5J(|VKp>X%Ng$(wa2LY8rf)Wg=XcU8gJzUNml^#fd9oAVas=Z{V0xK( zF_@3cM2(mnWqSXhdI(P-Xr$e^Nz5fph|8$Il}^RFnMR}cGKlnK(ML{nLz-0WkB~&= zXCmxV^EYy$E7Cctf9~BgyG5U}hx{qP^SD`$k4Wio_)^MFdKi6QWB8-U=PnYXGDH(6 zi`24CyXk!No4z#34}w}wzv%^WD*ufMYB^y>1a&Lt>JcTUX~xkDOBHd-It3#1BF$+e znG?)OC9C7jDI~Mw&50pUHH|X#u?CmPr_lz#Dh-WNCo+L8 zwL9;TwD%;Z<7J)$qg=W`H;$B(h&eznh!)t=dI81!FI|vn>l9F;P(BUh z2e3Eqb!XvuK24L5QLCUe?U!TVC@yh%$9Fg!OKfJ7?y-`&*Of(_LD<^^z4DVAy~M$x zs%%7x5|KN;jp6iS503j>;y?afOizpW7e05j+f%6X7udBpt6suCOMJ9djnvvOJ8X!r zW`?F~r_!5jK!umk~_h2g_dhG0p!jF>z?upPzlWf$aQFibU_e9{NX?Ex& zqLR9%&51+1%ZXpR$%(=3!;(X35glk-6hagCl_<2No5iCfmH4Q_QV_yKVr@=>ZazydcLc%ar#xuvKCnkvx^(=W zBtG9-7&T&)Sgf^F#OEH9IyYBl^vuOKCL1Qa^b+VE$`)0!;%Z=BikF?1p{iV+X&O}Z#j|7^$YSasU zDXkpugdGuiR*K7c%dY;S87Og6=o!$ftvj0BKkeOrRU}=<=DgVAS>*w;6+EIm8$sYg4Tdeh*sXSx0UM0HG|QR&Rlkf?lxmarT`fc{{Fr7P6h&M< zLm%@Yn83Wk+T_CIqW+(hb?P~tc`dnv!(w&y%<+EjR5g>?_`05$ELKr1(7e=gQx=ipY|x*Bs4%|C~B> z=ai8}h3t0;6%3+5Wsk1)*JZLKZ+1ejP!9&Aynj;hmJ4yKy~!Qq_zO?gCFBp1Y)64z zQiDsrF&dS8qa{SzfADQei+mp4^oEEKRO;~6(q$k-*!%gm{oxI|4+`FB7naMU1vXtJ z@&k*^nGNkx&&5MZK;e+22ZV<9pL|n6sg5pCsw1M~&lQ{xV3E0S2$J4|9ToYnSnz2> z;~#FEu%-t@tYD4#I9OwDS2UvZ)CjCGk808ZF$1G> z^Vl6bU}>y@t{~fXn%lF=pd@*jLQr99eatFzPs+vXrDsXbD8&R!L$Is6Q-v>vy)R$n zPB`nu;;e)i=W1G?TGd($YdL5WSYmr)s{A62IE0mmN^AUn-+PdWum>^`K;8j4$UDe~ zc?UN^-T^1fJ0Jpi2c#hHp!_k&I}inV2aX``pd02L_=CIy3y^n^3Gxn-=t17W6_9t( z0`m?+LEb?+$U8uRyaP%`Fbo5IoBrGfc?Z}a?_dw+9Y}+`11^wvKn?N^s$kwh2*^7~ z26+do_d(u)2*^7agLwyXAnyPd{*L;=QBF7~N>h>U zjZ&H&=7|3|<4E|XbgpfQ!Rvy$2K?+eVatNL&NNiY`+mZeXFZRX0(WVp0MJ9Q-MhZF zyKpfU@QjsT{LvzLMW141{{b_=&MJG$&^{TX%AOyw*z<=q$csJy<6;N+gTVv}`}75X z!ag;iuuoqIDC{E!3j6eZXwo8@&`NsH7Y0Uyo>mg==9Q2rdTKL}mqH4LgJ|;~GLYwj ziUfHsH$a}t?I@7vLIB3w?MN`*u)uiRi!yIS(17u_7ir#vzz5^43XC_9n$m$_0^^Me zjJNMm%;1j(7;oxeyy<}PX2q!7jvxl(jRK6fqW56D?Sk<(6j7*^%K-9R{6U@zKNxSX zz<5)Syiub0gj7(`GMIy@+2Tc!$)6{P^Ye0~R(GA4#<_&}tMj@;g;QIR+P`l*lo!h9 z%Kr$i3H}{f8u>THvpaEExAyl?$*gWy`N+`o^V!!k-$_NT0i@fP^#PNqmRfudiEYo} zeG`yWuWeAak+xB8TVPvan_*jPn+=Kv6>ex5*iIp9)oWD@Mo9lDb};+p)i7s$`<1yW|&N3*T?PcD@n5UQk;QM@ak_kBOC3#JeD0Bi z3Ln^#5R*t%oF7IHWF4iZ%$?gRZk*>FiR_XtS1k+t>dCRqF35ScEV=7jX)uA#e--zw z#J*A@xurln|NE;BH680O^Jgo`B;y9ob*HIyRX*hmAk`y`IGsa`H%9W+2&cD z4t0ySiniWw@y%7W$Hn}J*3Qtb_(rL*$C?-u)9zuC&8vMcS2Slwomy3!B}49D>O2KE z`ds43si99ncZ?~6S9bm1qGNwCR$7W$w`T>FDl(T;_1VuJHJX)fHPV%4HHww?9jVVk z11p!f25Q~~EZICpRuaEVc#TL-u(__Q@Z&Pr=}}V}y{vg1ovrDPrYKT6&xk4dt}u+W zj?Zt>=FwZX9Pe;cFwUE5Q^5u+@Nh8cY%8Vp zzyGLA6aqVhhY;u?j65Ys)HZ$)_=2O90D~scyn#^N=D1RnErMDys4ayd z+kuSS0?5Lk%pb}cp==n!7pNrw+T~Z!p)fRxRpkRaeQ}lsgg6cemrvN<^8BpxA%zWb z&{zNsvc(01`Vz0RyP|Zn_xFAcc%A9p`e;wc z4eRzdrQM(}F06wh{*zg11!QiSDq_gRWVziN(*(zA`&g(`r8l_KBj;+vSg2klu?Ih{ zi>@!or-k@E7TAqXEePu-3FR1U^RdVf*5=MryN-*Fd2Rck_eEI=!6JH8`-YRMHT#vy ztRbjs_bJL?g*^w{_cpASKxG1ZrJ>s+swTYMNTm#R`l_t2p&x#$;@}e6X8(GMNn|Y| z*hFh<2fkHpBB7mB8}Es$Tw9PAn_rNh*xJsZ-UY8s@QStHb7%d#U^%(7%})bfQw=@C z9ucVphfgI8malr%{@OnE$XYl&RKY(uRM|g1RIvpgLTngBdocU+Fq#uWPY-F`FnG0q z*Ze|=!R~g`#vXWWZ8sIP3KodZ?QB>5oLO*rzY2_zQQ;)4ED|>JQFm}-uBfK(e$1*r z7el+PTvAPblbSX3+Ssk}Tn{~bI%Qb7a1M$coDavZAJnz0A#3WL#?BegI%izG6Q%1s zuXJ1zvU5cg1aisIax0Gp-mH)e@UJiqyvhMjuwFGe{jLO0u(FLS&GpPG4fT-1wt6PQ zW_m`#mU^bbNIitGwVtuCiJqabMY5T&Q8H54CfP*TG}%b_b+V~2A{ilUm250*oNOp; zPGu%+NQE4=r7{^c1KVL*g6%MoU^`4}D&tWTD#KBWHM3EpHRPzxn#ri?n$hTMum>h$ z4KZr9W;|-VW;kkYZ8mCXjnuZaHqkb-Hqy4VHq}O2BebopjkQgz4Ye)u%(RWZL@-p0 zKb4nrNbpmP{;PtUN72SWqAd^^!cl5NPpV};A;VePTNI&d_ytKPH1)Ja$|1!M74}yb zmx`iIh(!2NWC@3p6}_3(;)qN)6ebx#;RFNfyEy&CuglTxf z(x$;d868P!1+g@Z2U`wG} zLPEXx&lJU10v<4>Zl*6V9+uVxZF#FM$00q8Px=pPH%-#p$}M&I70KPh!kSf(^XZ4@ zm!t&J^ORr5`x~_$rS2N6Y%CiLPW2lM7p!FNo*tQcR*37+6yW!z4!SQ>Vf00_uRFzU z*dmzDh^GWRQ+EeLJP%x_jHaBYUKin}u2QVK*Ml_s4{^tTYM-V`ul_ur_Ut*<+aPT^ zt7>-t?LJ`lRlwQKQsgX}wHhc37`|?@?gQ8|{$S zUR_ydlBZ=y*t;DFCB1ZgmGEqlUxUk{MTyjCajw1o9ldokrXT0FrF&ADIKA9t}fL&$yYK{#W>4ZX8851S$y4z zEVnw_IREA5iwsieHZ7x`(M$^^o6)3|47FpApqCPil_8*`l#eEY09&PyWA6T)J2?BS zt3RnZi4po(NVpL+6!q8cd|p5Ke3ZnPS4$Bh48B?Z>K}+e#q52_q@!Y6dlBlCTS~f# zoKC?c*Pl8*dcB)`fIIQEU^GIKKj=1lwoIuRDEBHt5<@>)T&|dg7h*}TT~aQWb~l8L zo>fzqQMnu3*|3L%(DSl$ev~N@R7wkN5+Y&&Dc1DhyKDrw`+d#=Qmo~`olRdPC{)?R zj*1E_5tM2$wU2%t+C)f164FSY#(p~@uuxEjwiA4jB?vjCR{$k~uV}3@^!b208%c2c z%WMqpY%YO2n=No>6VU?hY_LMC=}*|dN1AsdaD#Ng%`X}IqljKDEBYB^(R<&xCO0B# zk`);Hv=Gr10ZPy$&w2aDuq8l(g~6SkW{=- z`azN&lEgufybqNrkQ9U@5|XF~ko*KmW=PUqkQd4%NOD86fDoJ`l^i_B8}P(6py)Ou z^bCX|HuymdV1HCHUY)9vRZfJMj*@Ndd8l1(DIE{&6Qt*)m5TAC74^@|AcQfWNi`mRwMCo?XDl^}n%`j&)C_DhexDNS`# zn&mD^_zp^imGTWUWrmvI@=HOvEW2M{{!a(j|De8IP%me`t#sq3H7E~E{%xC{k z8if9G5&G#xXy1#_I6$L#;s-=;jGy?W=VRl7qpWFxD3&cgH>LG-NI>w>!p|VyCm2s1 z#(M?(8r{$y3&~s1$pR|dHG!vm5irNWaGdo}!vf6=(6Q{|81c|Y5R#7|@IXg)2x(9w z2}9tPfDohz5CZI61>&^AIJi&~49#p8ao)i=9+2F+@PTKwUh%FRph8NGJ76|KAS(udfn^BYC1&-cXud>FTi6N9~Y?zGB;w zC)(EF@e!5SH;S_~?~+jM5S!{);-wztN7~?*{94VMj!dRdoz*GjU)_%aMRe!Z z%d2|V?7@`yb#NQJQCYj_Hl1y+=S=0Y=A7rk;rzlS%(>=|Tl?VPVDl^1y>oF5)YkR6 zh4vpYJuJI&F%IfNpRGu$&J)_n=I&VCAfg#k)K!|K&5MnR_gjjwILXbFZ4DhCLAfQA-378&Pk25lD-K>KDgShS7ZP?GPD{6Ux!`<20#PL$(! zRIL@Mmjj;IJ#_5XU0bBt8LsyEBWJ{um8oVFyZPzZ$os2#-V|dcpMg5ff zF3ei9_vl9vKNNqz5Z{D0b~EV54p~zu;OT-|6BsA{LPZZvj2FJqFs}SXlL4|M7l%lK ztTl`kS_BT6-UI_EU-S#%Da1qjGZ@gk81_HHzRrb-@FL0udkHq@F9K4-<~4Yjz8)B> zOADS?9CX8jVSmAXUkfzp!~PD8mEH{dtkAXc!hUfYH(@`mNlWAD3e2z{k1vzn&q1Q3{-(b~!vj%bAN4^t(87 z5*v8t|7n0%n8aqf;Rz7s`Voh-%3%*R;AAu7Y2q?{OMB?Fa9vr_VzJqWRqmMviJCI` zOCh5F#6oh#my#BbXJmQdKU~ixzkZ>^Wu?WV(tJs1Vcz2tEb~l+MD02G zXz^#-{$Bs9cO(3V*nzeb@dQYHVBZ1Siy>(Yon%UY@?|sh42EWU7!C(&k7mV8qqtzP%cwz=yQ1c-UYVe_k90Dr@8yH*{24jXG2%W(N`tM_wG_?M2 z{2yO|K-#CL=X#X#4tG>7^2?J_1<$8XGPd=KhEH-!`m|=Nmqph^7suCiS9DjCmMAwo zUaSfp!%bp@I+A$Iz6>lxQ_-B8bz_fjjLd5u*L~ZT$ZOgCJgMt)?mphwd+fTAI5}MN z3jBj7o;;njo-CVWnEX8{I~g(gWYVn0vpU>;%&nvPJJ{IifRek?DAGMxv~r0ZG5C1gF)@d7 zsL-Vim=pa?C*R-F9{`uV1<4=#Mt5u7J3dSw%5drqCKKN4??5h&$a95!L2}hR^hed~ zL_#tIY5q%|EBK2tR}HtnRLzbLS*6;*HgZwrMNi0=AU-hx|H-bMBr-RFffD56ghEg7 z7Z*M;K1hZ_asZM_A&}&UWHcnBOq^0Onc5abm6SriB=U(p@VDvSIUpNN?4Ly}63B&z zeR;+##^`_h%g!R1uy235@x%N~>E>S6XllY|IWOJb-pYHrWW-Z?Gs6J)a|9b$;VqTF z^AU@@qQBr;Z)*%Sd-^4DG3Ixu{2jJSPEHvHw?C(|ovL6_=`E3BFD}Z}5j>XGNT6)R zK1qEacHVXE(Z3Kk@pq`I9mh*f;~Cel_1edIJ%W8cUMZS>rR%+Jan$#b*Jw|pL+=GT zd5hdwG@JeP)yW{St|{sgWnIiVGT>4TwqO9;M91w*ZljE!rLmYCGperJ@oH4+Tr{us zev0>cD%GKTWPk4i=@KVTXT(<;+|Nwh6GHy)Bb_qI{1yADkn!g-E`dg?bQ9wKLP1Vd zWb^d>*2wrMnIAz$82Sle|EOC7d5Cx|Sq+R`q*0~lJDWx)_2v<2VdBSQM#3D(Gdev+ z0LhU&=MjqSAQ%%u@CJ__dE=A7rAV^dPZfTI&fLd1+26YU06lwYhX=iebwoD6b8nW; zLcaMxMwk`pK~IJAxrv7=mPb1B_SN2%_(#}_ZxpUW_;KU&Fpu7y$6#+b?sxhvPEW9E zP)jFRZd3!Vmv)5F*bq)3Bwh!8-FQH4-Abk}yTa?Q(O-*INi#4BAqDH4mH(b2hXwz; zrKD1kpF@i`3;9`jrS$t1@6mBtNWYs_S>#!mHDC+ifXEv`9pI8DpQXql+G8f-q ziw*Z+6Kle2Y%ZP}!nYAiyFd99_Ae{(P2k-!tR#LLoW_1{m3v@m=z{_i@_M`?W{;05d<`i~GS=br@O!|LjFrH^%m^p?Sy8gW zb)-oAZOnJRwQy_XDCt;xslazX3neSQf%Oqav|dq|f(Vi#-WfB*XC0o093|1|DCPg| zZy|5RKQKSSihfZPqdO;NJ2=uLDB+}=nIkvk`7oKwZ*c~ow51fBv&Fq zqkEl|$E}T>VtbzIfsW?pe~Mfb#ElfyR!+BU{}n6qRM&S%HUD$wq#$e@tFU@|D+xK7t@-7<{-w)*?A^iMus@3~BDDlBZ{GZLk?6Amz+vuveRN2XZ7 zu|mx>9PnMj( zO^I~TcQXaWR##{co^Jo zQk&*+i9NWz`ckf6yC{TGtRXd%*PpNcq+-5Ye%TKT)C}pr$BZR-`7rvNRKDOOeExiR zSM^BW^Fys>Dmwg^!5xvUZa1kPJMZ!j#P?2{_wz@B1P<2^IFC_>&PPKB^T&)qR0od@ zlnmU#etBE>#M_P|MqIszkFVOM@1ystK^k_Bi{FTS`1b9++y9(*zwdqDA#oK;@pkjt zIII{k^R9QC0+ZVHjw4`7dz7z-Pj+xdL-H2*kf{l|DgRY8?f)qa&gRa})>RZCSsdFq>e zCl|Z8iuCoLbxGF_v@~jRM&C@n87Z468|9zk|II(X>$4&|jLdh?7=N|6#eA-I_PILK zL*py%D-Z3xw_zFmAfp}Zux0@fw0YtCve zf^Bg)oX3?!+ysRKPn~}e5>&0#wb2CD>~?=pCN5*P-^QY*RPz&O7zrtn3wHIA=P&C>G(~F7l94!* zCQ_VD6Qt#UQYhM>6iPHGh4K}YLcsy0P-a0X6eK8xk`79t&=4jydI;u-Yj%VDE?$t| z6~{|MQ0)t<(>8&u94^Ep+uH}*)b+UWF1RT@)$;#D=aYRv%~}G{0N1MN-<@MudJvPW zZyC2q>iOaYKw+M0Sx}fK3>4cK!I98P@uMj z7Zj+a>6Om%iNmGD(`B@~W0&k0%H>uziL8a-O zpB0y{V=vsGypqK6@9s4FdoFCVn;tlzK5fX)rOO6bio^$^cG*7{-l<->eMRxk0lS^g zPqTNkSH+1T%4UDEjaA* z#+W{iH`JxBI}0XG^2yip>M!sB=5XBwoAq>Tl2vAOe_)Td$=be;jn-Kf{plIoeuS?~ z6TJy{>Oq6tEvAH=D@^gWppIw$9o+^{y;y$U(kCRL;3f)W0b21HkWeCP=|>Q?%!2Kp z!l*AO{_%kuRQ$O908|9QSAgIHYJt#{8j^?~d=7+WSkwgnX1pK1c&iy8?}tMY3;KA0 znk4g}K1l_5T?1uHxlpD#2Z#tImQL`R3;66La7Io+Dq5) zg13dsfKJ7}17we00ynM4fHb=xFF{fmlHjiJ!+z!kc^Q(tkd%ca6C_)xR62a|Cu#7Z zjS||5plxQ}1e`)+7qkT=#=RiAA;3i(`!`CG7asmR2y_SY;-Qw;q+t_zF#o~~wIsn% z^*`CM+vlA@je3^8{OUjso(}FCZDe_MiK}fiPO5q)dVZVO=*G|P5z3y}Xih`@7xvyd zDv#z_7ezwQKyZQvcPF?L+}#~s+#Ny)?(QCfh2S1MxVyWB5Znnt?+m}a?{~JXd)B(^ z{CBeQKGalK*EG|^ywly)PrcW~slRmP{_qV=fCx2rUmhh?@ro>@yV!dw^=L$~B9FRz zOZ6eMeDc`iXUBKx^)IlI))+_HYVknm*GnMui%z=E7|0@L1H`7*nK&iChXYpUhP3sl z;?14H--iI9W>z@3Qc2a^iew-GG6fKuioq}zM`I4G&LIM;b2>HL(qGbm)j201&}@Mr zCO)j1Tc*pzDF}#oH3lMHLxG4_LJA<_^;6KGi4YL+>I+1?F318Auf#yaE3i5T#vKZR zt8-e1Z_$mavw?_LP9WmdmNI@Ah&v4Ig#Zz+@<7BZClK+vAl%h$A^=3Z@&XaB^+3ey z91!uUB@aZrMgS47GC;&D{qHStG;wPlR&N@W;jl@ucpV^dXT%JKHLL`nW(C!e&uSoZ zXT%JQ$)!@kFUfyC;Ph@zE$D`fmx__q7*|W4SyXyZ7G!f_8~r zqFuLLo?Yc#;$6rt-LB{^%C6@wOZ7P6#^K)Kq3w~?*p>Cb(eYyp50Gg*o?;ttY3c^yhte?1Kt^WU6x!1YNu;EYgd5xhFSJL z_MVH@;@slQ;y~&Ht35<77~;`sxx2_~|7(|{yQTTM@rcGg{c;t)N}}m&Yu&opB{I7r zP7#8Nwlab8t104X9UJMO3W_pYq4jd$qqY=af5n=OHSEdP*_0K1uRJNai_g z;%^FDzwsAesyEXeB}b{0rA4f>F0u}>F0f9V6>K9)@<}eCd%PeTC9?mUd!GCA&ra^p zdU6L@2RYZkyYqK{%RancV{}N+976uNcg_v0Ac+5^Z3&GDi0j-hy_h>8@z7Ywe zG~ZDGh^)!sMo_EcVIYR}0KhLxLDvS_7JORN1R>Q91Q_l?nmZFH>NnBTd*uQ{>;nwdJigwV+b|wtkd_p1Zs?P=sI>=wZpc9ThMsqI(i$k z?=aDen~{E*Iz|z#wr%_7l4Y456a}6|ax`jdb6}kQMWX>2rvu_k#|YKya3}?*Awl9F z{xXY9oX$gsrqEesNk_KiRU_^-=volIB?N}rmBebgYvSpry=lwq4*6UOjaM7}gUzrv z{TBMr_uI7*Q8Y9MC>zBCyf8PkHO^2%;u;D4LPHw0{^NqT*%0UBVbgT{BUQOq{^KmO z%l+y5ho*A%*UCj)FefZ+#GZ+J1{=`Rt3P~;`1~b`@VyA9kA#V)%Y_-I<$Z)y>)T>W zhSr8%yVttatWF@!_9rIIkQ1|J>l34969j_Fqv+iWW<@ zil$3uisnm}ipEPuiVz(KMH3whMKc{6MI#;4SPLCHKX0P48lkpFjV04GjfDYP_F=o8 z#B_7ct-%o$f-^Hnc(f;5?SceyGGFu`n4M(~(X!f3Cee zJ;TVpCb6IL#)8~!II12!)4XpXY?LkEt_PB?%xO|PB1KTG4GD@aU}0a8u+Mk{A!izG zg^PLn-yUIsoq16UQB0)fg#)==g zfS!pNaRK26l(poqMW_sYw()_mEOteB$Gh_@gi`RNUuKp-svfwE;$ zeY6t$^pM2Y^pYxcYsipYP)2$gph~O;j;7cQ_suy)N9DkB=_Q1B?1%(;kfIsjh!!l@ z0ad-A0sp7WZ;(T%^F29+Pg=aDaIa-8zOZ$alR^JnNq2Rhd`QBpPhq7_}E!_w_ zu0sIDFHpx78MM#Z08ku61GTN7i1^~B@eu9Qp~-85`z@CviqXLR@f@rqbUTzG)Ee-~ z0X{mPn4#YNz)j$*BH2JXgr#9?31Y9p-9R{m9)MmMW+fl&CZ6q)Gs3NOIUW{E$G6KY zA+1U*S&LztT|_Th`hg1k$t|ZFpxK%=<1YMg<*LfrQ!pY@l{b1dee}b+NY`Ioj_U|V zZq^-LHCcbawVTQ4Tir!^#j=;&{2|n|`trDIul<gNRf3pf0 zYWn8heB8ZDKUr=czr*)!{DA8#>C5K}>?ZS7^(FUZ{(JkE_)q-w&g$Bwl`d z5AA=3*QiePPt;GO0j3y<6O|LW6Ri`Ylj*hNHTSgwu0y+HH*dk~`@V~cUHTlVaiVea zan|ZxgYEQ_^q*d%>=V<|(`$)XK6c&YRwPy(6YZtGA~rMj5dznwcBKuXndQ;bFKuA! zDoh+!Rp_Vq_l0KGON7)rNX^VLU@Z4Adq_?=e3N06Y+^`#_f4R5is}SUXV&uQbU+Z2liYpZF4A{S`(+XQrk z{cJV}n(;oHrGsWkpx6xoPhyM;7~ATAC&^5y20RxP0_rL&#Ao#gsK$9#2S2N!L3PGB zsQ&e=ZhBTfJINRY)sSa(`m-8ruWiP&@1kdQ$+H^iS^eyr>RBEBtcC&A_|Lxkp4HXQ zYLsX7vu~D`l*05bs*wtFtD-8zS{rSkLf4@VaQ!p?e-%-XQ?^}&OQ*m&^Vm!@XmZ}x!q+#a3h_7u4N*MooaF!$`?->mN}!ScWR2d3nVF>hIcdvqaa`8&jlr46ysX>`iSTNO#J`?tI_%d32@ zO{xlQduR3M+;IFw1i^d%wwD!3q2XHeR(Y z0fl?ZhktZblStHZUG!`ss=kt=LzHC|B{v5y^NRBw&Ac%|KnDQ`PBgpa(k*?5eU95K zZCL*ah*NgcaC}hXZWbG$92B#W=vA*hCP>3iPXbLEeNZQlH{i)q=DMC$RSl zQoW#HLIuRELaG*IOn4(1DT=BW&=97lhAVTk=?7W0g##Tg7X`q35Trm52Ea-Y1W6EN zK@bB$9t3d!O5RFr4kUp$L=ET+1vpC)c;-YhKu-a>Mg-0zM+@q~OEe9(QdKTWp`GI$ zO?!BAe9_BZE@iH%na?+nB#`S1)3^eYu+Q|X$eBD=^s~*EXPXksu>L%*FK97%ypLNGu&?u&GKxLsC5TtcIEs)g|n>W(fzHg1=6W@Ju)>T52Y8R?qUa6siT zx75t#ao6JN$&X#^QOHsBhrBgae6xVRC+3Up?NlX&3oc{S$Ot)g?i`yxxNzI zv^$XZVs!AIKS<{HJG-B|P#yQ+H$3ORY~3t5*E=P=I6SjGFFPH%kUNVyN4b4kYJ(<1 zBLb!&2yqGf34I7N3F!$h2vrI52?K$cc5j|$?j>%On6&%>V{WX!n15r>D|bkS*Hbzu zIw7CQ- z%FI0EstF9y_?Wv~>Cv{iuoKNce9>jqS%br4I(dPT;sIq4-w2x%&pM?CkVH_p^d@?x z!F>Cj5*pRMb;eI|jvc#`e#=FatRhbD6}jn>l}a~t4#`j6PE(sySu>0BI83JNI+xha zGL2M=r*>fZc%a3oj^|Xzr1tyV`;%gyfDT=&69>DR=awbp>%@87mF8Ekfm`|&wva-4 zJuge*uS#Ys6NO#rp^JG)lEe}rbU#}^e4?oQcxmM>PAmw=gj;zeQ`F~4t}15msYKAA zUk$g?{9ANK=cUBGThaW5bNcbl8##|1bvchMu5{}yt~C4IJ-Np74{}`F^XcEV=hMDz zX##7mmB5-SGqC1rXwr<+G2r^{qyL`FJ^%F14NsBmS*;xIwgs@}stByP=9=*03Jtn) zehk=?yXT(XyJ0O-JEj#DB7G;lAB#?$yqI4rU$XQ`#9aH~+h#nROdCyi zN=RkcIgk^KHq@erLzb7MsB7(PgAx|!I8|D0=?Q2J8oDGRQW+cLx6ErfyIO4fBs^2) zhw<>3NU$WE^&cam6cWx;x5Ju-4I{{ZG5N8^q_x}!bDJEW?}EzQNI*$~Cpn`3XiLcI z@t2*AS7j(S22{S?Mu3aju%w+cG&7L zUoUz~sz(&LJM+nF$wPxR!I*`%R(-;1AFpL@lRxL2PCdsv<)ESNAU8u{D_P8aTPr^R z`~;GZ207v6e$0x)+)9P53^8xp`LQKm8|FljhcPSmp!cMv_JPn7ubSGJ#Oi2ZKq#r8 zPaI2L%+$C&P%>=l^mArMgOJC~iz6nhnI8izOku4wAdVofV&d9HC>suRdNH@dxCKa& zARvP}WKg;Q>tC3Sw57s>hYz6LC|K$OLNqtbfwO*J+=nJb5V&FxT2?S6gY+wQtf1a0 z!hJVKnM!RrciirC7VmrS+r&N&=lGKriU*Bri6Qmpn^Fz*I{I+w8zJus8H^#FhS(x+wEZv}oTG zT2-AtcTa*pwuFt?sG0Z=z*Wp;(TqP1@U(KJG4;C@$vTlt_kK^^6J60PPc2%BlWcL9f@4%p`zhn z;B|53Pw2a8P3Mk>J^H5c$26>Rrv1IuaViovcQ*?D*nKrlB0nEBQ1z1Ht5Kmj*?aGxN<^l{o zenWL#63piAP0_mpW55RqK12>L#ikySH zfy@7T19ydF1Gm-dli}$KU=$LS$XDb2$H|1sx}>>5{_M-S>|Ik2dW*>VuX_48fN+AaAw zGynS4htBEWO?x~iJUtpvb&Ft;#obfv=+yU~v0(tJGF%pd4G;(v#!m&#O)JNOJsyt9qe6 z`w)KTah%%(Buy`C8T0M-o%5Y&6F-dK{Z1W5bS~_{3~bO|vTG8rcYIjA$~!2oaA*?T z1tyqX^&N?vjvRsMWk-3ZXvenS`v?15-yE@9BJ>P^sC3C4+@U{7%(M=VX!4Jhj$=+h zdQdl1*K22Y*P`r{M7qg!B4A*;f0MH967#ZOzS>l1Yhe>ulzw}C&`mVX=gr5s z=@KgTSbI4lFR{)Z{ z7Sv8bTh-RdWza^)8=&Kk`Q0e`5LgUo{?r?3DsEd1?1clV2B-n50UnTQfD)h@U2Jl2DkyLftYxJYJdiy8i^(NGKfZF0MKsA6G2T%7Y22c&G0#pO;@c`98B0x2O3Q!F!O9NB`}D+N#uqytm~ z@&MHUXF`>>?OT9qAP1ltAOffc>H(^Oxj2AoKpvpBzy_!-WB_UldgtR32XekrErqDV zGLtt>q@J`+(4L4+f}X5S#GdF*P_1zbXa>S7g#5YOxcspTP~((yoi1U%8;d;#rwk@& zo>bK@b41DliZNR{r^EC&N_vnykyufqE7RUb)%wv>VVK&No4~OCnxpH(1VzGU5$Pkc ziw(AE7;B>jYXlx3l81w004R2Y+B1C6F66m30w@|#_O0mjzBL&sS8tVzYO0S&eKsR| zE_(}>UG${smU_m3E?_}#XAEFj4i#9Y3YPtzvh}~k0d%}zOTJ*Tjy;zDmI7PJ`+ECu zJ>t5D`>yc|5vaD51=UNh$zPUQ%17aqeF?y0)e`4nHK~eV009LAHj^GBY+4YcK|lnd zuqUjOP9_XJP#p^ss2m1DRXA|i1M0NE(k~#8fglQk99T^R1jgrT=s*n`3JDYqWntjN zWVzspKLHR7N^tM|+k)}R0y2KAiK1wT$QwD3zAXJrRn_=9P+bXgLH8@>4o|cz`dfJV z6G=2tRE@P%;>#C8Ukw(9bz^J4l1~PUGlutTwTc)bYioIt-0BQ;4f$Y_Bh#OVM=_MO zQnS`nofG!}%9iOr_QQsksJ_ZU#yk3ZA_(0>xu4rG|BQPX`jlopZBaek z)i8XMHq%mzm#Y0P@&(Koixqi5kpPShrK*6=r=16JYTs60q$9^{iol6IW0b4XCIj0DDZ(TR3PR1fD?@sPsSt!Vw5| zAe4iU36$RbCW5(Nl0136F)!#H3e|Bv$@k)>K6Z`tN2Tv2D)h&rd=G?E8)~tkySRt%51)KfeOuZ_+b0d|G?$T|bh15f zp6)!mGKgZW8?AK9FP3D=Wil&AXQ-^i=Sbe^Mp~k2sg^O9nH(5CZ3$g=R10!+)UC1l z+2pVZv8=NhHm8W5rW2U z)fa`_r`h*rTXnnOtiox+q8`CJ`KH+Vo{8Hn+ zr*eP<&gX&sq2Mv*5&41gp$Z_WiTl{tF1udjFr&FI3(Vqk_+|;JkbGlrYdqf1a2L7D zzizr_UV>lBTq<2stSheXFE1{WtZ!R-c_3)hSg%SyabDl9!&ORqU0zR>M9_4`#X~cF z#@p}r;D#?;MYxMy8&Xq-_;eB)4isl16e=hE0@11 z+6=*XHT-_`_KxclE)S1lUz!TWOh7Xs3JgXfK7<)6 z{zeo`nOHv~6OFxK4O+Uf6pcMQKoA&`ME4GgrMP4v5&2Cjm^Bf2uOoWrMVbfi37vQM zmqoOEh5S;C31PLrlGK%%MCLcKV9>TLtu7;m67AA`PW~yRQ**H%B+Z$Jp;2vF7XEUUwIv$mF^1ZOi0#|K3Km2G>b-O!hsV4}tTXBH$IF z&)S-IOu2n!yy?M=Zhy7g{yWFRG$1=Wr%c;BLW06Ix|nDc2g+Ddt99*)8Y?6<|qsIRx&F}jAt$0OUc$ZC>LaF93iaem0`vv-2|g7 zUpMvp$0kVcm&ZSo;`LT7?nIj{9G*+C*t&alzq$V2Y6F63hyYXNC*xRTGFt@xkWnT@ zuy`H>u{WG8Z-0dtv2<6Ydb|UGE6jL)c-Ug$>ii|!p|=+-o_pI{!q89bwtikwV2LSE zQeg(bE&Cyt_XFNFL0db@U36Tzm?KYjU;cck@%Cg(lyS%8!D!X`?<O9>=RMEz&qo65Uf;_Bc z8B6MXtOZnw&B~)FGUa8w-s}c8B&O978n2lV8rHgCWduw1{MQrmQ80q?QO*LHc#kR} z-{Uu#&BLNm{Ak5&jqp&g4&MBN7AMc&Smq6}^PBupwazrhcJED59RixoD&NylRYz

a;!HND2P4E#fgFeZ-Wgwc@H9%D!NjwVj&32q%#rCsu#4h=z;2Gako&s3p$% zE3$Pn{w)+d(4O^mvPJe)fRPul)zCh6FbT}wRgJR)(z(=+W z;D3?!S(F1s46-rSyvp{pb>cKv+g--EN%$OinR(y?ZJt`Ph{kv=O4#Sqf1-F)I5+d@oOdJ` zQg_JZD11!#z~#m8*Yk>LwR-FB8*Pv`J`;IadS%dD@gRLCdZ*+g z=3`(3##Gg-FTs?{WtQnzzM2oQlxvZzHCgWyjP=FiBj&^B!)pCC1wcAm(RGEj4ehj+{ zkd$~RaEU*^qgS>{ybxL=iGp99K~mG%Sz#=g$)6%~u=L`?JNaI+^R-}Sgxq>q;TsbU zDnTEF$Gll*tH3&W;%z^gQtZzH>m((5$<5<8CHuk%1lSdcIz>f8W`-Z!6~4(JQnFog z+S!$0L`0mmch05IUW)aSh z)t&}B3HH>HKdOs@of7X8{POL{lFXHG9^{yvlqKAE%zg4(vg z^*MpshANJYAlaa%PgQY7CV4ZTJMY2X8fUD}Og`Y+x=2NI*Zj)El?L+JSwo|d>8QXW-Eo3(V-86j5!MMP}WVEPYDHk4@a8Rj?)`6!xvnigDX5D8Rt~ zSpe%A7MZL>-`|irb0zaN&cH`KN?o+LnN~$q`pn}Z&j++*AXdIH@vUD%uxzfYGnIz-?na==5^|5M^# zsagePp5&F`cG0=xb(~%YFi|d}wqz#eGkPgms9y0Q{JNEdjro zsKzqGE`L6!X#rDcELyp7TH=0wk@b#SafvgNs%Y?`p;WFyTe1?BPo3X~OBK;@*JaI1 zHPQH}`cxG(N-V5g8^cL`#J|0{4VAx(g4%nT>v458zmhQ06v$#DAnjq$P>jmE`4?jz z=t(irWg`uW6snR^D(|UDA*%6WCq&B>i$>&6mBcZCM~I;eA;D%Fw#A}T$x}^n9Dq&* zC0QXDOB|>qK9g@m8tl}dN*b)RM^ixbop9fhZ_F)ek`s&fn^664ASvC{am7 zJO6F$gRh@Qm4vH5f3jD>B)Xa|@Ra;(tJ0e9ZLijv@5xEGrp!lxbwZPU72%<#kiSI~ zT#GtHIVbO+)aYc#s3t$69zy&oqUf&;e_W|DO$SYxXx`uD$eaYM@(y0Hz5c;T7N6NpH zo)57$C)b{R6`?sW`_A)&1-${4O?6ckTd%B{xr3gN>=_x44e5D$1nz*cnJqikc!wtw zJJJ5zCC%I-`>MAr@Tm@Yxh)Pr7 za*2-q(2H(f_A?_mCH zD1Dv9kEvp;TW-TitskQFWLOc!()rniv62o0TmwQweG5Fo>;VXm>Q>9VDnGYko~mJ< zr(=fb$+ZnuWn6GiD4hWn{KlkP2#o=m&(yt9Z=_j}pnio$>t{TnKBOxV$4m0R-tEmt zrD$r6tC!HgudffMj_%|+5`ib8%<(ZS(>Nm4@TXTq>QGxmR&m;=@sPPDE}(boXiDe%=k@;sW-(hbBM${HD#etLlB4o}@!rMFdImD_2V< z_4_!z$b(VYnVh;{L67FI=^9P926}sRYh;>}x^v3>jG9KHREezggnFwp*~-&{FD71U z2jXPb`Ogi}F|?TxS_YT(z)Y2Y3K_=Pr&>vgQp9J`r;xR*N39c%=^QuJ4^;na&-T*U za1pbV>bn$*Wuv?7BpLKO*y332BExW(J-8Z|W7LB#N+M6RDGFdj+{Kc}4vrnNvg(zzWaTA1O))H6V z=$&X%$tLC}z$UCF#P=-rP=_}LmOkW%TVN((m=5zUK5Liu!F%~ zdtE12mqe$(Jbw;zZgmdTro4V217C03(EO?af}Q(<6O(WcHV+OAXJ8 zS?Bav^vb}${=dSr*U`W34Xo|-ZXS}I&sSN?V~{MY6DtuDcc-cU8Wnfts+?URVjfoJ z7fW15A}rIPXmBk}4&N*OosY{E<1P-iZ?! zR&Mcl4snqm`2Wb4miF8{VVN_t%D-2}`=rYtX3?VoT~9_fry2deP&8QS>W?~>v@J~d z3!;2fCu%`quZ5B^?OH11`Cw$qW3$nW!Y_QAchG5yvz;!xsVh^!8QOT`<4FJTD{%RqRM)Nc*Pqxz$_)2WGg%~_=%(X} z&k%i4;$4Lc5}EGT>k^bO+b`A_E6g?i-`r1s*9`D}OY}bSihrkeccte`_U`7_n-+>1 z7(c0TH)XRo$sz({aOhoABqc^+2Xa2pk-OO6C+aL%)(aam=;eLzT`*QC#0w#b0@x?g zlRS@QQK>>4JUk&71_LdhgTFMh+vC#H@^+K#D04~+jK+2U@EDyaq2YCJ6sPuj9YQ-C z$RbDmg=LXbTz{j;>|WY-wrHCzC#<|EoUdb$ML4Gc`F9!u{uHIkCkx`~e6qGzdsu^A z)2Q%7=z~9|IbqG;tDKI|?^a2{qkc$|BnBms7A5iWn`9Yvrr#ijVCd8>i}>K} z^LgRC6CafN#Taq%)|OoTgC9 zC6uNktc4wR&B6D4Fy#R z6chjBz{=j$+}YmP*3jM9*~-|&*4%~3+Qq^C+3(C!rNQoh_3N9UDBCUky7wetJ@2Pp zuR)ttp%MZy!&S2!S0b+~FTpjMmP|)WX8EjHONN-}uRp&=m(5}txe`6qPmB;bqbj_! z2*>NyJcvADDxzZ)$z`oZwc^zn6K`Jf>(%x=Gs1u7yTzc0zwD<6p61U7Y?g&V_ZVMba^4YdY^|d~D`N zLAPaP_A=3v3C!hLsG4jcn;g)4k=mhr^EUNR5odEKwv)#iu{@$QuEA&qzcJcygjg!! z%+u_p#iEls+jxuMfS0Lsso-2}fzHeixgqYwUp+?aD;$SeZDNnV zmvH~|PInQ5e5HOujxx|!Rlo=5pWd-BHL)}NS64HcLM)zpMd36}_rL3v;ZDR)EGWX0 zEgN+98w`|1>SR_JOMQQ_`FjKBpKiX^Ojp;CInE(b3@@txLNsJiKSpfCcbPrZ`zY+2 z77OsCu9&oZMz@C@J|Dw1z)H;?`5oI1Gf)wi$M|m(?CaO2X`wobLW3= z>_LWiTZF&COOq7~Zfch$G3{68LC1~y*{DK>sIs&5ycd`jRLqQ$YqgjSba zxox~T^n?1R#}kBKs5=$F1*5)%f|5;zg2Ml&$L$=<+<>Qqp@W;NqnqnL4~xsw|F*-A z^gHdBxnB!#2|sq8dTo-e8lkoIIwdkF%`bjmCdNVbPqCB?rog92wpY4bPgOB_S0@dm z&!LXVjl+@WjwMvi`UAmBe{k|VEfRt#=O|73t=~C$PPBB~8hSD8;dYs_$^PasXUiFP zOPq>=i2D@iP>k<6*px>}CY3hi=U=5zeM~dE^6q#l!A*6qY#l$(cyNk`FtSOvR(@DauIS6S?p-lPkDGsAIulBmNe3i z!)7N6ec#7GFPx~yIzM`Hg~|LzAmGT86kGXS6jQ~wx*`zqSyZ3VKs3&b;FA#N?RrfK_S_bFKcSYd{(`>3yxZJ0bBPam{yBE0fjKsxKJR)j zkL`IO|K$BbDx2DgEl&fax5gK)3&~O9%HS7YwYmf|@?Hzb~lT z{F7m*8#P?M(&&rUK-TySBPXjSZrzI*Rv)C8YOj3(cA7M07J|>rN-uSOT7Ipre>FnN z$wDMq;Vr6fcaC*y19+|fg@&P3Ta55FvslU~{)atO{EueO$1j*#wo^Jz6C?!oxR>xh zHLhFpGwbwcX2~Pkbjt5F%0tEZwy=$t-Ozv~lwf3Lvy)LYV3Aq1+!WiH6+5I#W5J8R3 z5kU1syekHKAqsco`ai7sR1*?DiIm1tr12kSNDkLF~lDliJns3Ax=)PA{MCpnW7RJ{|(NHUIl zn4yt$5klDzow3s0pj;VE5q+EA{s{li zHw^enDomD!t_8ePD8WNP;r`ce7~tLKpRbqy;a#*o*-){I1*>;m{vOqAJm|*_`Rz-~ zD8$whJ zqE_Q~%euVF?3*~>h#RdIxksKC(8`3pU@OHNsyb|qoOzHfU@M)(V@kbUSRJJQtmn;> zk~MNYKM`5Aia5NROUbupww_7onJDH^vn%f&XnJ~8Rd;0_)`C5BA#gH}+2*};87^#X z|2-j=N1s)#BS-14RvN;DcW#AAm54y+v9xbSV}y2vH9iYoce6>-rVuL5J=+W9lw!Tt zMb>a+l9(-@|46dyYz3O}zs&y~6uQ*g<&S<;%ZUuJNt zVpR2Nl38p|Xrzk=)df&h!Jr++A8-=Wbxm94GpmY(SpfLWq zj4qB=_HK^io?WA;VX?eHfh(k(@cc@_vkEMJh1Br4zdH5=t&JEY!e?tI)*jL*k?5M2{wN?`&zsRLrXLa{hj zDJzklmlqh=ulq3J^`Ki!KBu2B-L>kBX*XKQ)rR((G@GoapdrtV$}BB7i@HCHB=KDXcT*@|B+_;xyyna8l7qpKM@Rs9nC!Kqg`;>WvTgflTXM zOq_lEm|anX)%E8o<%sjM{gN~tr-2;8%6pDL^-(+C7$Ud6@#*cuN%@6oW0bpz=+cd1 z*#Lz300W=NLOM?VQrwg+m%x0^Z@eEh+79?CD-|rVy;GiCb5(*}15Cmzi#;lIhjnqs zOp(=7omO8H)?xo`sqgTtKXxhc<|^Bdq%#;D_S$JBNn!8AYS>l3Fcyv`ag|zq$P5g! zP}_bd?`oEKFZAH&;4mPv(ZA_Ft18GtTyxQIJiX^_V4&s){mr_RA*$Fd06dMI zfIss8~>!+_8CgWVY*4qRFIyt_&q1@~#?R;fNXDSLQsnnQw0U7-CqOpk`j3R+3O(RCc5N(;MLE%iz$*Z~%DZ`T#wG z`OmY$*1^KU%HDzroD+DS4fr31U2U-dFkHT%^9bR$FbpL<{xVk8930=V>MKmycMh*O|C+V|p_ze2^xGwV|_!H@kSE81ZmS%LwVmV(5) ztWKu8BFl%$SEzp)&F}ux1C-e}pH3MO3QAb$KYS1U?@wJF5!g7aaGv}4-=PI{%s_t# zII0s-{z0N*v3lEFty}5Rn@96PW~)L=_KS?wgYd@FM|Lp*DFOHS80NP6MCQ4%$nNw_ zM{YC0$8GwTPwtPS^*=?(BC<~wC1J_G54_&r4M;^CC;Ktxr4rUADE%$M1YtB^4f64G zigwQxk<#J)XLH)fG@??o^p^=I+*6`EuMM4>HV#vRhRYlg%wMW_Ze0XBx>4Ddcxj9z zE8KB+QL|0VBCyd1k9ls5V&2sCTNbYFa1V^B1-B;A@kQG!*2yTwZ4xp6HD_OX?NKpX z9~C5lh}-&UlF6Lxi^vi}!Cy8u?|MvE+LPtnKVnqj=E`)8VkG*%LJ_IQ53}UpU*R#; z<7hW!;3ctelN8C|2(6rKseYuNrqsE=Y7b<1o9(?(UG@y(AD|F;Fp<1bRRy`Hf8(HeV;NV*;jFT zB|XEQba>3RX|YuTIN@Jht?;GfosRtHT?$!s76yC&-ua`85V(80b2b@0@d^nLsO)7> z%R+Z8{M9bJMUNm>Tf+&?Sn$Sts<#*qGFzM`ikleu_A7NUxpy@~1Qp(;%@)$3;3w`; zWpQ5O-wDFE|Lvj|p=$S@w;MF)uEL?j`9rYz$%zJbL}0vN%yX z6fMnU>r3{1HLOwCG~^fzONvM$5lF)a6QLKRB7Bp7fsE@}(_LJtP0p+nEmx8x`*D=W}+4Fj>0uu7i?h1f!b(c9H5t`22<)NCfk0%f?$ z&Q`@f!?IH!lTC*~5yjt0Rp1R2BadEm0vaeEHCU!bw3{BGS7}PR!Ad?#KC9Dy-VrC> za8_grP~YiSFg!G|Ni6(DexI)t%_UPcL%tbnSGtwV-GQI;MCSyp%nEp-oM?o_tLCMe zR(mNqvRf#$15LHC$WVM9YEu-&l+(s66@cI^)g9uR-IpqyADdb?C9WS#($+!(>JxTH z@!f(9aL$5v9(I4-JD0&S&Du#WK+#sfvZ>)LHtWReMFsE9sSI4PmYo^U6xSJ^ z+*JsAQM|vD!g}aD>X=Ds4qA?Q_9w%W+1GLI>22zIA?6!_?Tq>}-zFtam}v@Mi58yz6GT_?$S` zSsc-o0NmY2DVqccsHvK{)LEfB2hI9~Yjya!K1qceZD*M!Q8?u{#`^EXNopVwWYLjFa2n~SIT{iPh z8%6~uKekXl_@$gljNJqei&r%oQsTI2?;7 znu4BDZcquR?a?Hy5O}$Cw79{#RQF9z>xebbExxf#PME~*hXWhERRrhCR9sHcUg76*q>dNcJBZZ#==rl&n~goZkB-eeLRziVF<-9 z`30x43=5zoJ?)|Mm(BdV)m?ng?Vrz*KEB{0Eyo{}kZ|Hht-FYR;0O-0)oLhUKD~kV zv=H>lccLIXblT0v&dnG-X0mQLzBbjmJI^O2ZS0>^rWsvU=r*0g71sLcYq=P6#FV)6 zSp%>JS8Qr~oUP-)r274JO!rDx9E0m2H^g6yfuAI)|WG;wvgcD12{UNgMQ|W8K zP$fkgj8bcR?dng=QwOsK_+jiSiEj#MR5P5*J133>#rHfXW?rOdQQ!PuAlcnclc;qf40fWT}Mqk?cTEE>e? zJUM%s=<^6MG4}lo09isP1m9Flq{8;0PqFeK&H(RwHuwYo&r^{Hudizr65LZCKBIj4 zD#!}@eu4b;3oFr7z+V?G3yLe=Af?ZuoL=TzsX8G&xPDMF%~M@TI$wT)6C2WE*k;ut z*5yHJ>RkV17ZfiRSqz?&|4JSZhZD1z>qlQ1a}YZx?_NupZ56g8Y^h38BLxKSKIglw zRLQnmbNdp!-|W?{lxrpr{4o7(6J6r>`S;&DV&gHmh*DM|mP4t7u8uCh*$4|;nm$lc zhyBP;K3o>u%LRpCqcjl&z{8A@L!7G^;&_ku$TzKoG${yPnS903wKBWnx_#(YzQW$| zxL)vfJj`zDUwXo~F4X#V(@c~hb)^2SfKkM9Z0r_g#a0DrQW0D3X}^gW}ekdyAR~I`#2Uv$ViFgoVK1jQnmY(wcQhI=l&*U=YGd9 zc{fcwb+;u6ka>!4n#sY?!)wjX8to}@NeizpdzM4)n*TU+m$#H3zIT1eD(#)RwZoKk zw)@iYp0xf|q#Um{lYh%s|L4zpkQ9#SO0YLW1zQmJOu8*`L0h_4o3@&|3N29dG=?n^IC;_+hMHl zgrosUxVA7v$ZR$oWUap?fg56xU%w2O=(do_U{?-Ss%`|pqhPQxCnjk+a;ev5hm3O) zu0M9257aFX)GfD92vh`5u&mzN+z#L+#n(!Hg7qUr+iS#uA+{C@m=5A$bOpAeTk7o{ z11_~{=^B@N$S*7VT!8iTi|8_&d=~04S36C!Sg&`U~Ge*CXu@Gk%YtA$MVD z@YJJ+HxLf&^v;>ZeAEV_I>%U|SENl0lm|F8sT(3|SGz*<1Aoj_V4xFV(T-Fzs$IP{ zA|@KXdVU2p5KyG0kOC0IuZds-7~&yf`zmoDA!0-;VIh~L&^u))+oDJP@#O3TOnr{! zXi2Us(H=g;aRcE3KRvBfLN@~zVSYhsF{;V1ciJX5#@2R!EA;d!4JMI8k(}!WV3rY@ zXQLDoke1|t7vmF`WaCly48m}JBIx|K#=Ik8`-yZTyntSf>C}^5W`K0$2YPM*dK4f}mjcC;ZGiL6 z!xQEoB);!RNRhGLc~D1wNAkqE05SmBbovD&p2ME<&O@B=I}dICrM@zSGGy;O{2HV- z2_B~S!-G?-5hqB`v;@jgFifj$d^bO(cPwkSHsuIuIDi9gQ53z49y6N+R+l24Uv#Gn zfpXz1wk{8dfq*Az3Dn zg)yeZI6s?9BVhi4V5v8t)6l${*&9EPWq$Bh_I z$0+Nbe*Wg4TDEjQo)+S6Skf2}_q+QurnB;1m>niP_J%`iUfi7Hsdf#VWq-R9c%=Mv zwx*Wyu4yp-^6QsfYfs(f;7fDwMt3g4e9+MHWmlE(*80KFBpQ4|$1CUcLucyHUHwt0 z0u;i?Z$}kNXfn}`uh*=Z+)2zxji+UYC}v+nNs7+y6enIPrx$A84qhlBiQ!ot6lnRT za8dN*_}7)Q$TmjJszB28O;4mi`wOWP`Se5r$Mf)K&6NG)#-fBGr`y2EfQz1SKkp0a z<_EAft<={s%d1rTxU}WpyU#;x^1DBTqCNKYBP$)@hP%N^V%JF~O84~CH%Rcfy zruM&PW<6_1D}%Rf2^~Fam%nFIX1Q>^|6(?so#Qh{6~cr%OYv-4nI_Da6GA0%qWawH zlh7~e7t&1?mY0_u_|XrD87P&T=jBVNn(_$g<%jCD_z~tt85GIEX{GIGrInANW?_sV z$koaU_;`L+xxBboJs9{YTzF9Ri_+JbSS3%5vclqU4O=A)^T|RCLt^4OZ>7U8TTdoR zSxSe=#o;_l1x`^}Cd*iC2OC<=O7_y1ea%k?FCpiuLT`b~@dFQ?bU^>|j~P zpOnXl(ii=O?7M_xBF5uH4|7&T%@2m{T@K@*`?J-mmZ6f%|B<;g5QBraoD^H(kaeYJBy7LD1opG5AF0_=u!|2ybrxH zAsw_I<41zLe5Z2xkY+~Eg_$1xJo?%a=uw}asiszhXPR0UzO68%u>}KYdOS2pz6}k7 z9(n8vV;Abl3@juC%Z87d=AJaEo3M}Xaz4ffcAImf6{!tjqwapuRCC67(~Sp>qbuTG zE{RfGPhCU|`f(~<@Ok(fdmfObV9ahZpAEg5`8hpI44CnAUD$cJAT!_1rVf7Ea?pq= zuufZC{Vs$up@^&IK3lv1V9%^ZL|49O>!K@5_y|aWBjGYut>1CxMy-QQDtD*Y@eHqb zz~+J8Ph||A+Iro_0Q3TN)kWfu^w_2L1$sZwrNn$Am)|P47-aoEmaFkamJ$}*Csmj* zZ%tSs;QlMipLQyBeUi)}{Xz8zlMI90J#`}zg%BXb>_c?}<{`*!O!Xq>sq;-G^wL$J zri(}!VoUrVPmVDoZXwb1m!vL&z;dftPg@f|=9^%76T0YP&mB6F6zMU~ZHiJ-=^}9K zP@n6fa~RQ7t(V8B+9JkN+7QHJ+Azd_v|;$pa_-Wyv(LoT!p>DA5dTQ=`VU5rjkj#+ zLb0|<@hw|QGx|5OCHBAnzjyvswgmW+{wG^%&9NFDH*!iSudy0CFk5tJp{tqRZ$4Ts zwK}v&Y#1BzcDQ2 zsMy>4k?P}oKa&Jmj*y=#67D?gZrHm|J8!pIwoc>dm+CLI>jzieaAp@5hl#w#J<2Iv zuW^j_Bp)hQ!5cGjh+6cSI;@h{ucI1i^nu9e?Huc|$YgIJR3Qy8ZOK&O4@_oK&uvgH z{_0i7?V1_WgGb1{rmw;lNwz>KvH3{1uSbTU*S+$C0E+PhzY5piq&}SgXyBt;Lx^W% zK;CT_Ut>sSnI6V?E|17jry6amti=Fh^9jb14WvE6Ck(!nCZD+E`|rRA zlszCh`zEK6LD)5C&<$-Bg80-;rD`}yauLcySKMY-6tz_Hyg-_{KPlw#BO$d^y%Waxq49JdVoxq#M`mW$LtKg zi1LA6_Vg~zBw*O|-YABK4NMJe?>hnbRag|0-zeWvpoYGqXw$=s`f+Sqg)YuGOEF=s!=axxOGyahhC#}LGct|$X4=sx@xq( zi2&(4^}~Jd)bI9TahheHVKz@6V=}JN#gbf^!%YdL^Vo?l>p5X7>#tL9QIB< z!yoFCdfy*?WOH_c-n-+}B+*=HODrm1q(D^m<-kDwUYulH^(D8v#6lgv$tQ5spw?h zzTVXs@6LXG)H0?G_pIM?%?YA`zqSX5O%gAQ2~1rZaF^6hVSK%`e7UAHV|1JF{AGvY z*}FKC&t6yb)zVBM?LTq(gqZ3L_IGXM*PBXItIOW5coUk@Z?%zsL*D&QPh#tvZu~D2 z62r+V1b@O$kn3#{Yh8>SkkXpmPWzj4Ir{d)Y)$dH{=0&ar`l6tvDF~2142<7E`#|* za4rsrH`b`T(wcbt)TEp7jgUd>7!#O7^&O3rBW(K2s-SCoC?^U{(%E&da%uIhmSoH- zMZKvRtR|!FpC#4ep-+mDKNyKSP5{5M({8{~uS}$f+vM;S%_WhT9yB_$0U@_`SBCZ| zn(lfs1#kE6aD`Ek#w>LF1HMC>? zd)oe&BG+6_F&L}=+};VA5SbLHOJ;|JMypQv0ko(xBn%W49+UK^urLj^lH$iC^%1Md zYG_MSJv#Cr0DKjugkKV-iHQMxTrz?}sJs?&eyLwyh*1nYEg*?cgOiH&8taP={SpO=rode+3E#ZV85qLtmPc3 z#tf;(QGn%>!2;=$-PCo-Wii$7uuvT7l;8OD?&%O*<0bfnQn%c&H$WKxPktgSKd@Y% zr`!qM0Jzf}Loribu^N3%qu@a->%R%=$#yU@gYq zOn-0~{J{b9j)UNZ@yO3|^47NcQ@wD7A~RxUApYTyCJ=08dJq=~w~|R%13+<*ps3LW zcW{gSgFtr3K^4&u=dTe-7kVF&Vbb>z;T2UDA&GEL<^2fH$R1uA;K}%4{F@&LOX4l_ z2SUs{1kyBG{|rVO6g3z}MqL&zH-~IbN99UA&5bnN;wu&dz0o_;Rrenogb{oupCD2Q z7XkLTHSYCU0kDEY< zS=f3GD=u!&-1+NkahWMljID;5*1MNyzi2`p+hr$yyHnN%x)+t)l79Ss6Xd10bFn(j zlsniwM)Rqvy!Z|M?}umdyZW&ntq%qSf}iHaZFBB~F0cEXPnT@TnkaydeSwLG?As$O z<|DUZDfVj_x8nqB=gl`3^D)KGBsvdIu6NZv#XPY)b_1u7sSU~O>J33O^)y*`#NL!9 zd)>Y-qdR@x^6k{htFPw;i&8ZRCQ+t{bO_3&idKVb7CdB5Slre_k!Eo>Wh%c=gA?p& zH4>r|<0b0!l(QCH2PhualUYqO^9mTeZQ8;QM^fi&xr#4ye=J)8H~J$d{8~MU(awj{ zy6a;4b>ND?omHPy7Og%H89$L7Jbcw~_dOU+MXE8}$bgV?TBHY#wbu`LU0QnPPdpWZ zr3uyB|8|v%aX%0L)%0ilLF}r#HI2yYak?s`YBCmsyGpb-VDpiVbfoKs*H49UA zqwcHIWUDUvIGR zrNKaQ^G|nZTvYTA1i$Q`xp^D8%5L?AzqAAn$NNh4=VWJ|cqmM+G)%G{H*7Fj{tCb7 zX=o!!Jos5qFmdg6VC^JMhX9L61yifn@4om0IoALa`j>f_(q%PboQfZJNSj@zvc%4|Y<#ZZVfElT`BlZ4Ch64Jg8s{JNo{Gj97pBeGoYntfELLP~;j;Gb# zYEVvGxkF%Q8NMa=?UFRHoh25m4qqi+-V}YK5RHhDXBelyxy~G;ohbD5bd;p=j5mSS zNI+43EOMj^73jS>#~$PxQ8<`Ah@_V5vPz&AJsyrdu_rfKzt_?xD8K_`rHTy6X&=!*XxLC5)bX7Jw%y73Jwqa-zTt+W&k<>pcPf|0!Gv}xWn zHZAUo>gGiVVFZIF$M}>41R`iG1nF7>RjyyAL>q!h-{Zf-6Oqw~TS;hEWdhn zyxa7<{$X*Q1lV1gs*{l3M`Dh(PGI^9qKxTr}{u|S7AtAQv7 zCc|Q=QO$gc9oQp5?b&J#e7cj zLB}aChknz1co}E-IAax-F(ZqnMX#yDG9i05qJlN*p)E|DHS(biGK!@holN$#Q5E(8 zlU12&U@m5jOlc=lMAWA?&WLXfA={h*NHKa?2tSUMt5BgBc_nGP_~En|+$u53a6WU~ z=uTSdF*)h$*6wv9u&&Xg>+;a+uHxz8jO(9d=+TV-U=g$E#~O`5!?DH2!|8*(0vu@R z@yP(}(p7`wl3f~9!%iuiAcK1T#?!(GCzrtk*ZeK}{u6 zCT@ZRQG}8KgLBeE5pVRsZcm}6+_Lui@!=%V!>e$>8$#%h1TUZUK};ztExzH<+=TDsh8w(XLk>xAP3D5BaEP67L6;`&24Ta}|_7KJq&N z0(32)?@q>F0JcLdIis8I-wBBGCLQDSPl*nB4-NJnTAgxk3zhs7{hj>qUiEar7OB#H z+X#2X((Z2&uF~)1dud*6GK!&vzmqQ;V#pa%Pto@tyP)?iwp_zrmv${b-Fxgzr1#jj z?+;%iPTP5TnuWKp5w+G_YRe^_cNmZySI?W0m}yeVj!wXu3|9kC?=w1if03~#Hg*J_zYWPN@JH9e0U=3u~oUO;wGo4>vl zAA0GTOQ9*`O0>cYK^zC(_XtPU9URP621M4U@2uHx$y(ma<1^xU_ZYi*GVW?x?(HMC zieyfoy2|#qJuc-0wymWpdmk&`^7xl6tOA+1<>XT{2|x*m_I=`}W5}Gi7Ts9WxlHJHG2= zUPQk}eb@lF@oTsJPl>z#Athg+#svPsjrgu>Xr!?-x!-)U`X&E`t}(STbufMF zSp*mx{ylsBOI_ossBnwbd7dWsDJX-pB!WmZ53eRHguzD%dQPvuFfRm~O;~Yw@>^&a zc1$isa@P-UBc9i;eL~`Zeyv z{^jHD<%qrg={-4xVB^My2&QomU>Q@@Q%-EX^P^4L8mu@&GIYyWrdChR(kPbW0lT}= z8ph~Dhc5dIM9ppUSf(X;yY5YU=kdK)Ff8VrXONgPk4nf3a}C9o&m&%2mr~ZXLAs3- zrmeHPXiS7Z4!%uL>+5oI;WB9;sgn`6g14dTLJpgcx_H!x;CK|i zOH&|BE|8J;e0LwUa1h*HL3#beKKnF$>w{W9jOzk(7!B5i$0mSYocv1Q+x|_L44V(4 zHM)9AcdbYlnj3&!D2^cmg-5DOe;@$P8!2h*mwWd3=z2vou2dt)K&2WLGyxg8SB*Kz zhQ1sLIn*g-vW#1aGL{NE-sL^)u?n)538kF<&366PWN|<@%cb%o+B4D{iO|`){BI=E zfyn+~dHqnIQ-UHiA=}BU*!syrFfL9IgDW{WO8bMh;4VER&*Zh#*)_TUz~o?_E=g)L z+)*3ua&VN2kIEDTjUfI?Dj0$qbfzF#kuGfNJ=I@QmFT}G$Gjn-D!}XZY8eDkQmgPC)2|g7&`lUUUnio2=l*jcmj#{0<-hu1!CP)u^GxEq!>o1qD_|zyB(4B z$H!|#AF(ip_R^$iSQ;RFz5kTek-n|LE{bqS?5ua#_P?z;dg3E%5V9wEA1_a3 zZ?Y;<37+K*1s3Gp`sZ%L-3?314H^{@b&G?;@jY;o2*Sw`~?*r(Mz_kpi~OFIIe*EME(y|9Cdk``^hmtOJ-!iI@lJ>%fkI9DnM;mXT> zzZ~Bml|o$SNXI&2wc|xvr;26rtmE+P!!oNUayTq9L4#ql!>dHqbFsyp)&p#K>mu|F zZT(Tk`cggB*A@b5zgqgiUOZ-x(!zT7<5cI_U>uo8#Hj5N8LX8`7G{^|Z`sq#>u2(o zYv)bkW4L~`(?P}!ne3GwuqL;Xp$**Y&!tJXut}+}m@f4FwlfaeDJk(NnXqT~r>c};Icj~V!oCJZ&)TxRHY7P0JX+JYYE8^D+zm#eAX;#3B|&-|A1jsOZ?ug zz}lIw{($Fq|3R<1t@6!U*`KxE zLasPsHHBUMBDuv(=7ib?&5ZgpnK*?TgCSi#3)r41X!EZsv8QDxO;)FjT++3^(*RFS6nU&SOi7s0Jfel z!>6ra!nG=%2?YiTo*t~D3Z5=#n$pU(PB*``kE`>u#(VeXtrp%(4$i7phZ!W4c-7A1 z%4;{!;@CNLD0dN<5FD$O&>2iy8fw}pXy85iTE-nN=#>d^QY~rZwwkax7VZYe=Tj_< z)+4j&42O11QS#9n;K^Oq;PlSVNW8tQM^WD{?lZGgPnPBOC|T&(_HZzK5P9fS`Y(^! zaWzN0ux+&91L(v2UA=54$(+f&yOqXC_{`$k{4N)emL@AvymcaX2kRjU+< zFY#*n_B&qVpHB~0dkBw1gf3KWFz}VWq5c2!_qnwA9}D2`o6gVD#*%h#+VlGD^S^Dh z{$oP&-)%RS>}<<}faRt44$u6!iyih;B%^^KyZteWO7J}-79q?-Qcr^T%PLDn?<5?3 zQW7E>2RkzdOK@nS!OqVI(!>wO%Dxe-Gc1BJgA+aRUxtTd$Hh#TCRsiw_#O(yO2~{2 z3C-#0>gpPV5r_VSr5zekg8heb-}{3|B5f}Bzdc0pzayeK{|yoS^<6|mthcS>3D4#I z4D@Ss*vc>G^^smugX{nKQ{iXWIuUOUMb&wMr5U@#>HyA{@{z#3q?ySa9vhWhP1q(! z#clqWZ|i7`E^7`E;8>55)3lF<(%AOvd|FSfq{^VGmxzJ&+qR{JoY01Q(my|!6`D0bTefrk;ENo~v9uy<(}X#LLuddC=`3km@OLjUjh$5{SOLI0(I{(t>r zP17hLL>E%vzOaGF@X+@;Z?2&A5QR#?F2TY=-72s^NQ9UW)WygZ7=vL__bvEVwE4X(UBhY3lJ=`4?>mb zdzFEHlxUyRy=w8}LcdmDTU8e?3BgsLRi#B+he`^pU;LgVNk&s4E^LtQ(O~U+ zX5{}_)qiYYLRQriS5GZ5kZJRE%e9jB@l?Y^96=b-otfZ9hy#il<3>0s(t!QQH!5vV z8VHYvPtKxCQEN*&t;! z@(Is%Vih`&l&qsFS`g8!lfo@ZCW_#}IZ&|K;6Av2H{*oy#3z$lXS{NYpbZk4w8v5V z2$d5|k%IV`z2x*KKHi`B(Qzr2INUBVSd}P?M}Oj9kiW-w@ssu~liLv??>3@b5bf^~ zGx4cv|A~G8fa9m1?{Y1?pfF#DQ-u7kWCKI(6o+Pm40%lCd4B(FsT!pP1r9C&kNb8k zuml@!Air!ZnGL4fF-iEwrzfQ7!$=0>Od$gz+yMM81O6j_Dqd@wcKVV>(QJh4A z8JWSIgwt%8;p;_8J~E@#3&E15fNA8=#!3f_$z7mgA>zF6;6RuyT?Vs>2TZ6%# zlgErHu& zNX#^0vmE?>Uh%m%F5EIpeOcu0!PFoMvWXK)ec~ARM5}QRbl0VRLPm+aCjFto^c?^! zMm|)oLYsdQ+Q}}Zx1ARLebwI<(5GeJ-hX+nq?0m-+g;)tP)j2zXUY{$+ew6 zo8Oq4CGBnZDLM~jOLS0cc(4d5cts6|9mk~ehvOyQ(2Xcu^|yOh!fC2WvpLDylt_nj z&V~7~nl1eqG8VA(>Kb?Ln%-pl>4(>ECm9Wpz~A?0k%I4&U_{ZiPXO=52gXtf=9OQt zcbo`0f3WXf&^+gIlmqKEotV8`E{cbV%{@v>d3md|#o$_Pod%f70P5;m=yIgZ5!y8@ zZ`2_09)5Juq*a!&oNiVo*nkn%VSrorK2zQ`t@}u^XfOE=sOvT z3`ePlr-=L(tu5Iv{X=d1zE(E`9}44td3!*sAZ#Tax}83Gy?{QH{C{gDdzbbug%Lpa zw_{|e7(qd({<&mnX$Y{=0a#f%zR7zBLrWV&JHVS;_n%}w@P9V|A18UMjs@cnOdt(a z+;Gpk-(P8Fqz+g>-Ro!!kL$+IY`(GH>Kl+~v5+S=YGyQ|SQe(Nxf#kZ)moh@IqSR^Q( zrewyGu;|oSQ)c<5LVg#GEf}>FutTLCXD#BlT(Z<#O#oZ7s@iU5Ztglyv6enMwonW# zsdtiOty&DlaV6_tev|O`Qy_z2sW*Bm>oFd+V>f@~^akc z*!Vtl7E5)u_{n80YePW+FwNR%#l7qWdGvt5%Z!@&Lf>jZ-U>iZXU5@YfokW*s2}y` z3GO=CINSTk$%-7M1wug=Fpb`|i{3Mzt7{0o%!YlV3KOjcIiZa}(c7u97Cf!LvCP>h z4ZB3v8AYR8k#Kg0xPD)SHr^wHvEJ2WGbzf+izqW1?2Oi#@)`sSyHPA<6FyQof(C5)h``;Psi9=~OWXNZ~Cv;X85kjvFFC` zr1iM+%5%fUet4@x1c7B|2JcaxXHR^MYx9t-Sa_&A{>&KxKK?PK;{52Sw8ELMmT5gC zYbFIwU!*Krl?-2}=gl?MIdP>u9NbH?O65IK@#}_cCw_?UUOu~ZFZJ*}xWc_~WwL1T zX@8?zQMNS`#7QWw%dlUFZSX+H5W96)O<)CVo~B?AaD;1}RE{#Z%IE6}KHj|)TdYM% z)f_V{uTF1R`5nSeI5q=&b~mC{XD5Q$@9(cY>5q(-OX8RnC7(m7kJH`xzg^2b1Y7pt zAU{%hNeq|U5BK3LYTSBry%tkUyfPG}E^Q=mMY4t8RGf0QPZwiBdkK|@U1@R{U(Sw8 zwbWUqtXHUSoVr^+1;lv?{G`j6uT>C}nRysCWokZ{Z92WCFOlKX07$l{XcUjv6QCDF zt{~5IyAS$q_lTupEK-U5GS+x*)i-;|Z_|v8*H~oG^ZXq0*2pQw;C%bjw<=2vYpjL> z!ks5jdB%u8q_*X{XB)2^QPOyEd)~4bk%dlMNh9vj&MR%ba$j<$f4Bj4;x2X5P~C9q zpsUDB<^F8VoczTe#bhFUCbH5>RmvT}118awgMEvK`W*9SJB^xh z<{f{?0>A)mo1Xb)JeSD4QtE&b6;2RUFxZc+dI}y#6}RL>3hwq3Gz>*6nPdIp3F{D# zf%1CE1&w>T@k5%i;o=|5M z&{n!UP;(_l%Cb@5V>O|U6*rI$z5=cFOlGAT@gtc z*_1VP(Mn&FGT|1ggCl()^oI$J2Ld^}Ce1b5dcc^YKLidQn*y_*x-L zz~jL)D^EgA?hcLh9?RMwB1eCkctQeDfU!?}!PVsLI5D2O+p?jD2%{Z-u`+({-YO#p8GeZ*I54AVznHRT%HV{cuNy&-zH-2i1dxa4A#iH$lBu* zBtvyPp8ATBy?RC(lN`t1jY$Qnl;gMTaZ^`8u`tmVjt0}~L+zfYgJC^&3U=+^Nn4{l zGBQH~1ibSUb3;wRL(N6Ru5N=IP=2(AL5aETA1|xWCtR$(u5KCu3*qgxucxovUL>44 z*8FFS#i#f3_fmJ{!hVLNs$&25>;H1_pZYrhGyLnI(!b6MdN&^w-FuBDznKq~{vGoH z+rP1Q@=aR95wm||8a=1fK-6|_sD6`szgETug2%9?5)6%}w8o@C=@^&#TlI__OFmq4 zs6^8DQiI;>A7hMw7-{<9Zt1UIlyNag^@OWaD?i|cVm6tGfx{!Ktbe)JM%Oc2j_fB} zd-dBr%lthL1|2^)v-hEi@M9BL1~26o1HTVRI@C;g3qKFpx#IH{nCC6ctt4wKC2Ee} z)_R?WGOgra774M-E%RL#)n?C-mZtdn`tDJLJ&tEW7c~?10n!#KRe`O{IUq|Fz=t+2 zKh&kD;6WPg{gu<;6$=`mf}JF%y#%#^?vj=|b*X^kd;i_NfGa-j$jjpaJ~CP$t0u_;~ zkF4$CrxZ?0JqnaCp(Au(2dm|kaq9WNYE1#oi0~Er7oz@TqyLfLbmbBBFQ|g-obN|I zadH)8Z8l)&$D~UeoHKk9Zn~&uS;QLam@|8WMw~FSvT;_NV3*D@^qg=?6W=2l!7ju8 z1n>J3yyhngLTBm9Pw=2@Y1u^p0cuWJzA?7Ped6Z5v&DJiX1P7{XmpT6M_W<@9r)1t*jc`qh<^V#0cTC7z=4T>Oah^B_vBlqnq_Xfx)a~uMuUv<(Ko+E$a z+S%`IjL>BaaeOwQ>a+$N(t?+u??4o#9sqFIIz%n&th6<;{G1T*6|s0W$OnkA+MJ-_ z+9dBZEPQ#3P50tc+sRbunqd)?EB6e!A4I~qCeysmsE9|51Ng9mM~<^jsEAK=2*9Mq z{X+wX1QeXmg2qq08zH2{RdRO#vU-LAqNYz`?w{y91|a=8`Qp~PEvgC1=5 zOF)hH*0SeJt6J5Do2%7!7x@(G>b>RkJps%$$Bwn(+Bd@)FS_(6+nY3lU5wrFCkvp` zMH>Tu{k@4C-gP=6Rxo0NQuv!<4Og-h@$>eg+E0b06tI&4?Tml7b2{LOpN3dN>h(;YL8WM9 zn*GDbs!N|3g}vaPypG=X#@t#Cty;XYytNUtc2AyvgJHz}{P`Ki%a8EGM~4r>LZnEa zIm_bpQw>ojfKS;5iIyi3$MtKeh8m0`^=^rDw*5|zq^60-NZ&e*cg3HF>R33E*+=+J zs8cAu*mzwX{+`Ippcw7DA+L9<`TVhm-RC&oHIuNveh=q2j?uaCgt(iXI&fIk-)22P zHQC>C;bOacRG(#}TF3QPDEQ8M>-=r&csmXCbD|KBB2--Po7)zah^~^Lcqi_y`?i1i zYbt<2F({U-5=xAoFtQR>Y+2+000q~PMC)TImqU07pn-!Yajb-ZWFWQAL4#Zs-{~Z$ zM5L$zki^pw*HwZ_o>H*r^2O7VPXq9-x@tdGV>f5-fL?GqbkA77?dhVDGZ2mBfRl^H z8crh2N)7eceCqcMuI=Tj*kmPCI5q`w33@T2wRV`TP!2T+wT(}RGSDS_U}UI-N1=~2ckCVL+YYl`>5 zc=2b6?(+Pm3FQ2( zIsl%_A^Y)+)3R1??>=jqo2ZxGyg0rSZO(%Wik=hPzUCg$=e-$Mdt0-V_wn@B7!BBz~_pyKSOWC)i2D$~>;WI#k;pF+AO- z^M+KouNQNpMw+?HT7OMv7uSg`thQP3x{mKxV%tp|nw3gkpNVdLUJP!=-tzI%Y$v1~%v*06 zS=Kh){Ovj4v1F_D;QYD7x=Cyg(j`DI(f837I+F7Kfhw z$8-8B%E{(H*!B(yy_)XQ?6mZy?gn}?a;j48&mQy_x(i3)5iHq zsqKg9%c9Y)*gQD6o2cjXkXBT(zy6|QtoJL%v+ICUq{@};rH1#TfE(BPf3COueI4EL z&bgQU+q3*$m1YxSLwi5`zWl8!{lAsh|L$XA`tR$}Q$nzQjHsRGE$hzTGeq+1V65FJ zKO*`H4J0@Bn3w<$bvKJp$ud;;_Bu?ga{3%LM9W; zy~HToooq&8`ryit>|YFBMVTwVT1BTLs_(f)=)Ji^W5OwN&iF_5 z^iIP^R6FhDHyYIc&onUq_cTmYA^0(V>Oap2a3;)vH!V@x+S}~j0Z#_Q!^SZ?;8N^v z8S&L+aC&;ZU~A%^2s>vg$c5$zLF|!%X!)?DtO^WrDG|!eB1ul*ejSr9%JX&1|7BBW z{UjTo?sNK*`9;$1-+l5hA;EQbdJ>$S!-blx^&aG$hGs zL5yV*X&BqcPFb^^5=9&lN5y>a%NgDoW#)X>cYR#0YyP_L=l6S_d0y}H{C@XcI1CY% z1;e#J6W~X2Cm#ht1D$+8&|8N3tG(cj*NcS2Vx5#&Hspx5lxFMJeg`uVHL15}-0fktyU5&D2 z7eH1V$_WeK7CNuEXJ7sGw-?1oZpLm>+So|LBNzY)%sX0aOoubwfRCUM~hDn55RhcOcG9?rNPPm0%(0@>Vw9idpTBNSLicDIpR?!2yStI0x! zWM+)$Np6SFDqC~_wPrd9up=}cSVw0SB>u>v^Af~w_H69#$#|lU{Zf5Pi2KKThP~Y1 zBO0E3v$@V=ug&Ry1AnxV9cT*SaqO!*gJq1@$?4HzJmajZGv!|+VAr}GL+Vb z?n_mDFu#9h&sn=zg!+>D)&rl;3hFbudY^v%DMpe-dMSiDRoym!SR}_ zQIbQgb^fN8ZLqfw-BOM?;4>5)XL`lJ?$~An9yy!y@h3Pg2A7=*u9$c<$z8UbimdPZ zXXqsl8a^rJ*Z#e(JiAhXOJ&MHQ>DI!H8QLx=yUkv;^B|GVjA4;)JmUCO_ z0qS@TQBubPX_5V99gpQdI#BzMP6o4YlgfM%czs*+_8Z$Ll#UyeNA0+=ZDjAG2BU<^ zYU?X|gxSnY(2r0RA^IjJ-sftfc1+(1e_`SMbXOU-=sta!Q#Tbi?U(!uUp4(_uQ@We z6Yn$Q^Y@{?`Tb5zF~_pc?$x4I{fm8!J}`JpAY3VTrslm(Vq^D%)~Y52zgmS{Y!kYo z=?^zR;sB+ep5s}#FCySsvxD^mn-5zQ%bwSzD*A6`P3`(S@%!9&`a;yzpr(_P0-G8HY&Mo=9PEOP2TzzLEe@8^)kflDx~d8$ z(w@2P?qR*K!Bad~)h7+hk}I)TgOsm=#oEdZt7RnyprpE-!2F_F@_OfEBxpt|Z!Uk{^-p&cU3b$tf-iF{`1PXTaS{xO+ z6nKhj4sN=+%n~PPEie)MDhsHv2@Eo_-d%L0Mn;Act%@Icup6!BBbUN#c8`fa@k%Sx zA^v@`7P33|1v>zZDD2Ih)-=Ei7s^`hFa|?AjyiBpAtvWW)$ziFoKSW6v}?gu7PVWE z2kGgCo|QO@E$v4{!+x_=i84yu3AC~9ivx4PUVp+age_Z(rU;w=29Sgb70?F9qQjiR zdcb0cM~3yxJu8V6#=d)a9cnhdwu@$ANM4=8^%Hi$ z>ukDt;=mQNyz#tP&hv{d&CXtr7NRvIH#2UZk?vY3S$yg4UL{r6rFW=Z`YFa`?8m`T z6Q7yz`itV8EcG52ILk4m0sc$hLy~zymOh-FpWtXoE!}>=XAmJuH|IF3TM+QE{SlpV zi&hr@R4LE1{tg$%;-&FtFig_}_9sO-!RnlbOS20{&*9Js?rN>kvHs()^FH4?fGls` zW&Cg#tl8K6v;4(k&I5J4T?)M1+=`!GPk)IHJ)Hcq>%CS>@71BM=`GXYqE1y#wl)#! z?34ZM)?T+$(eECQ#%%c-e$1DHR^)8JtGnI~aoB)McZ&}V6(+QP{?v*da9L<~tQ~o% zxHHdngsXY0RJ3wA`nKm23Fnw}=I-f_Qm7>LYdie#{vHo=A55N%ZCzN@Nk461W1tj( zAJ+7<={eK_@lV+=YLa9D*;nMRd>@%B9mEf zNq5R>zfnL3MkGT@YUTgil3MUNvv`FA?FZa>yrksLLym$w4??{tOIh659xa^{d*sCA zgpR^>0vNb%2OhDoy&r_~G<(gJsi~&J%&TuN=PLc6HcJ03mFVL(D=dduiFBF%l0~%2 zqj<~X7H~QphC#)c+?8_CnU?YAErsP%C4EEQ35kkaPeU!edEC4+E#0K`QUm_1d~Yo) z)o0#TQ*UF6mU#ZE9$j0HZmQ?NTsBkgnY7l0`wS>Mn}`Za4#GR?-Ax8v70s2LOAK?o zyZZCTu$=`UD}jqz7==Mg^L5l-3F<`YK{v36Cbrh_uQ`3W zT2#+hE2oYj>bzj*FqdZDP6yW=nLny|cq{3zp?Jci#gF7v3o!YZpnS_^*%{;QJbDH(l6R(ggIxP9Y5>`r!c-|e9#C)IGtnGzS zV=YH&T@(z^kEwaR4dlL<*d6}+?HyvB?>5(}h=SZ<5yeW8Mo2(KrZU_Gq8W9@ZVJ{64H@XprTf#jjH1iy-r~_JN zLcg?_a+b-TX{<8vK(M)^Xe3bJICx>pInaF39aRVj_FTqt>uGP>1@vBSuklT-_*)3Y zQU~`9GeKl>ea$fm5#)*&KlKhCniUQX<3P<;-s+*zYBvvyR!Ok?6mBeD88EBMj>u=d z+EJr6p^@HypRcU#H+3)tHj!ZZe^A%guoNAX>doKT)MKT99y)0AKDl~ujd>{EnDa!IYprM0}qXAR!m#)=*Ww?l; zcnvjEBd2aY{~}8y7`@bT^tAW+^3v~mOuS-@Hf=9Sdzb(DMTxBEB^il- zoE|b)q#JKKr!SG0_R^IvK|n~4r~9~nMW|O@q8D?zpU9>UsnpbfRmnIs+}#UPv>)o8Ti^RV6IHeFSsU)#cP230pZaEkIaqVQA$HDO0RxU_fZ7 zi+(!b6^`}(k5G=-yQ>3U=LQL2gKm%;V6V4sgkrU`+-7xJXwV% za{nQZyWXh^~NJm@Ow`o;7}V90GNVVBsTAW0vG440+U*K zY?P2+=}xaeQ&E9mcjM=DYbw;>H~|&vpC;f}8q`p*q%|;tA~gW{Q#IZ!}{T`GedFhuFgo`gA3NpJH7zOd28k8awPeMUD zBma(w_`(WGlmK|n6A6Tq5)rPiD2s^rb_Yt-OihM}aMwc_5%JXtl&E(T86v_(3V9;% zTSI&?u|fpCP!$D@(2ya5Ja;H~h7upSK_l{DAR+qIZb0es2IC?=2!qC@zm Date: Thu, 4 Aug 2022 12:31:33 +0300 Subject: [PATCH 184/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 7de80bf5..f60b71ca 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -105,17 +105,17 @@ jobs: name: simulation-logs path: local/rest_api_gcbm/tests/Moja_Debug.log - - name: Setup CML - uses: iterative/setup-cml@v1 + # - name: Setup CML + # uses: iterative/setup-cml@v1 - - name: Send the report - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - pip install matplotlib - pip install pandas - python local/rest_api_gcbm/cml_report/annual_summaries.py - echo "# GCBM Model" > report.md - echo "## Total Biomass Curve" >> report.md - cml-publish output/total_biomass_mt.png --md >> report.md - cml-send-comment report.md \ No newline at end of file + # - name: Send the report + # env: + # repo_token: ${{ secrets.GITHUB_TOKEN }} + # run: | + # pip install matplotlib + # pip install pandas + # python local/rest_api_gcbm/cml_report/annual_summaries.py + # echo "# GCBM Model" > report.md + # echo "## Total Biomass Curve" >> report.md + # cml-publish output/total_biomass_mt.png --md >> report.md + # cml-send-comment report.md \ No newline at end of file From b373392c60d64156a0f50b9817fcb095b7d77916 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 12:32:41 +0300 Subject: [PATCH 185/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index f60b71ca..2f84edc0 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -87,6 +87,7 @@ jobs: - name: Build container run: | + cd local/rest_api_gcbm docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . docker run -d --name gcbm --rm -p 8080:8080 gcbm-api From 3a35fdf56794afbbfd25d79e1888642744606d8b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 12:37:16 +0300 Subject: [PATCH 186/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- local/rest_api_gcbm/Dockerfile.cml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/local/rest_api_gcbm/Dockerfile.cml b/local/rest_api_gcbm/Dockerfile.cml index c53e9501..a7774c17 100644 --- a/local/rest_api_gcbm/Dockerfile.cml +++ b/local/rest_api_gcbm/Dockerfile.cml @@ -1,6 +1,13 @@ FROM ghcr.io/moja-global/flint.gcbm:master # FROM ghcr.io/moja-global/rest_api_gcbm@sha256:4c23b9874109b274247c26e3a01f8bdeecf26cda1afc8b5941234530c47c0012 +WORKDIR /app + +RUN pip install --upgrade pip + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + RUN apt-get update RUN apt-get install -y python3-dev \ && cd /usr/local/bin \ From 562b11d139d9ed533fa573c4fb5fd66ad348c634 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 12:41:05 +0300 Subject: [PATCH 187/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 2f84edc0..f706bb53 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -93,7 +93,7 @@ jobs: - name: Process Input run: | - docker exec -it gcbm python cml_report/process_input.py + docker exec -i gcbm python cml_report/process_input.py - name: Run Simulation run: | From af2504665a4c25b2507f77d3389077789b1b6d0e Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 12:51:20 +0300 Subject: [PATCH 188/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index f706bb53..8c2ea707 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -97,8 +97,8 @@ jobs: - name: Run Simulation run: | - docker exec -i gcbm -w tests/config /opt/gcbm.moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json - docker cp gcbm:/tests/output/logs/Moja_Debug.log local/rest_api_gcbm/tests + docker exec -i -w /app/tests/config gcbm /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + docker cp gcbm:/app/tests/output/logs/Moja_Debug.log local/rest_api_gcbm/tests - name: Upload Logs as artifact uses: actions/upload-artifact@v3 From 69f700cb922efe1dde27224c5c50f1acc1904f2c Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 13:05:46 +0300 Subject: [PATCH 189/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 41 ++++++++++--------- .../cml_report/annual_summaries.py | 4 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8c2ea707..ebc6772d 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -79,12 +79,7 @@ jobs: # name: simulation-logs # path: local/tests/*.txt - # - name: Compile Results - # run: | - # ls -l output - # docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///output/run4/simulation_output.db --output_db sqlite:///output/run4/compiled_simulation_output.db - # docker cp -L gcbm-api:/app/output/run4/compiled_simulation_output.db output - + - name: Build container run: | cd local/rest_api_gcbm @@ -105,18 +100,24 @@ jobs: with: name: simulation-logs path: local/rest_api_gcbm/tests/Moja_Debug.log - - # - name: Setup CML - # uses: iterative/setup-cml@v1 + + - name: Compile Results + run: | + ls -l output + docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///tests/output/simulation_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db + docker cp -L gcbm-api:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests - # - name: Send the report - # env: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # run: | - # pip install matplotlib - # pip install pandas - # python local/rest_api_gcbm/cml_report/annual_summaries.py - # echo "# GCBM Model" > report.md - # echo "## Total Biomass Curve" >> report.md - # cml-publish output/total_biomass_mt.png --md >> report.md - # cml-send-comment report.md \ No newline at end of file + - name: Setup CML + uses: iterative/setup-cml@v1 + + - name: Send the report + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + pip install matplotlib + pip install pandas + python local/rest_api_gcbm/cml_report/annual_summaries.py + echo "# GCBM Model" > report.md + echo "## Total Biomass Curve" >> report.md + cml-publish output/total_biomass_mt.png --md >> report.md + cml-send-comment report.md \ No newline at end of file diff --git a/local/rest_api_gcbm/cml_report/annual_summaries.py b/local/rest_api_gcbm/cml_report/annual_summaries.py index e40b2523..bbe73f45 100644 --- a/local/rest_api_gcbm/cml_report/annual_summaries.py +++ b/local/rest_api_gcbm/cml_report/annual_summaries.py @@ -1,7 +1,7 @@ import sqlite3 import pandas as pd -conn = sqlite3.connect("output/compiled_simulation_output.db") +conn = sqlite3.connect("local/rest_api_gcbm/tests/output/compiled_simulation_output.db") query = f""" SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt @@ -16,4 +16,4 @@ df = pd.read_sql_query(query, conn) ax = df.plot.line("year") # x-axis -ax.figure.savefig("output/total_biomass_mt.png", dpi=300) +ax.figure.savefig("local/rest_api_gcbm/tests/output/total_biomass_mt.png", dpi=300) From 92b2678204ef4787d95c287032bc0c459e974e6b Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 13:16:31 +0300 Subject: [PATCH 190/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index ebc6772d..72173a82 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -103,7 +103,6 @@ jobs: - name: Compile Results run: | - ls -l output docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///tests/output/simulation_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db docker cp -L gcbm-api:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests From 03832a328015ecf59d9e2fff9d65d4ceaf39291a Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 13:29:05 +0300 Subject: [PATCH 191/196] Test CML Action with linux-demo.zip as configuration Signed-off-by: radis toubalidis --- .github/workflows/cml-report.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 72173a82..1dee4023 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -103,8 +103,8 @@ jobs: - name: Compile Results run: | - docker exec -i gcbm-api python GCBM.CompileResults/compileresults.py sqlite:///tests/output/simulation_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db - docker cp -L gcbm-api:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests + docker exec -i gcbm python GCBM.CompileResults/compileresults.py sqlite:///tests/output/simulation_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db + docker cp -L gcbm:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests - name: Setup CML uses: iterative/setup-cml@v1 From bd28f5bef044fa4c8b1bd2eec7ffc454e8320f22 Mon Sep 17 00:00:00 2001 From: radis toubalidis Date: Thu, 4 Aug 2022 15:48:40 +0300 Subject: [PATCH 192/196] test dataset tracking action --- .github/workflows/cml-report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 1dee4023..8cc53857 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -103,7 +103,7 @@ jobs: - name: Compile Results run: | - docker exec -i gcbm python GCBM.CompileResults/compileresults.py sqlite:///tests/output/simulation_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db + docker exec -i gcbm python GCBM.CompileResults/compileresults.py sqlite:///tests/output/gcbm_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db docker cp -L gcbm:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests - name: Setup CML From d57a22947af0d765fe8eaf8ba44ebf3f5c9e6170 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Sat, 6 Aug 2022 23:26:23 +0530 Subject: [PATCH 193/196] remove useless files --- local/rest_api_gcbm/Dockerfile.cml | 21 - .../cml_report/annual_summaries.py | 19 - .../rest_api_gcbm/cml_report/process_input.py | 12 - .../cml_report/process_output.py | 6 - local/rest_api_gcbm/cml_report/run_gcbm.py | 52 -- local/rest_api_gcbm/template/gcbm_config.cfg | 7 - .../template/internal_variables.json | 34 - local/rest_api_gcbm/template/localdomain.json | 31 - local/rest_api_gcbm/template/logging.conf | 17 - local/rest_api_gcbm/template/modules_cbm.json | 59 -- .../template/modules_output.json | 816 ------------------ local/rest_api_gcbm/template/pools_cbm.json | 34 - .../template/provider_config.json | 21 - local/rest_api_gcbm/template/spinup.json | 56 -- local/rest_api_gcbm/template/variables.json | 257 ------ 15 files changed, 1442 deletions(-) delete mode 100644 local/rest_api_gcbm/Dockerfile.cml delete mode 100644 local/rest_api_gcbm/cml_report/annual_summaries.py delete mode 100644 local/rest_api_gcbm/cml_report/process_input.py delete mode 100644 local/rest_api_gcbm/cml_report/process_output.py delete mode 100644 local/rest_api_gcbm/cml_report/run_gcbm.py delete mode 100644 local/rest_api_gcbm/template/gcbm_config.cfg delete mode 100644 local/rest_api_gcbm/template/internal_variables.json delete mode 100644 local/rest_api_gcbm/template/localdomain.json delete mode 100644 local/rest_api_gcbm/template/logging.conf delete mode 100644 local/rest_api_gcbm/template/modules_cbm.json delete mode 100644 local/rest_api_gcbm/template/modules_output.json delete mode 100644 local/rest_api_gcbm/template/pools_cbm.json delete mode 100644 local/rest_api_gcbm/template/provider_config.json delete mode 100644 local/rest_api_gcbm/template/spinup.json delete mode 100644 local/rest_api_gcbm/template/variables.json diff --git a/local/rest_api_gcbm/Dockerfile.cml b/local/rest_api_gcbm/Dockerfile.cml deleted file mode 100644 index a7774c17..00000000 --- a/local/rest_api_gcbm/Dockerfile.cml +++ /dev/null @@ -1,21 +0,0 @@ -FROM ghcr.io/moja-global/flint.gcbm:master -# FROM ghcr.io/moja-global/rest_api_gcbm@sha256:4c23b9874109b274247c26e3a01f8bdeecf26cda1afc8b5941234530c47c0012 - -WORKDIR /app - -RUN pip install --upgrade pip - -COPY requirements.txt ./ -RUN pip install --no-cache-dir -r requirements.txt - -RUN apt-get update -RUN apt-get install -y python3-dev \ - && cd /usr/local/bin \ - && ln -s /usr/bin/python3 python -RUN python --version - -RUN git clone https://github.com/moja-global/GCBM.CompileResults.git - -COPY . . - -CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] diff --git a/local/rest_api_gcbm/cml_report/annual_summaries.py b/local/rest_api_gcbm/cml_report/annual_summaries.py deleted file mode 100644 index bbe73f45..00000000 --- a/local/rest_api_gcbm/cml_report/annual_summaries.py +++ /dev/null @@ -1,19 +0,0 @@ -import sqlite3 -import pandas as pd - -conn = sqlite3.connect("local/rest_api_gcbm/tests/output/compiled_simulation_output.db") - -query = f""" - SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt - FROM (SELECT DISTINCT year FROM v_age_indicators ORDER BY year) AS years - LEFT JOIN v_pool_indicators i - ON years.year = i.year - WHERE i.indicator = 'Total Biomass' - AND (years.year BETWEEN 2010 AND 2020) - GROUP BY years.year - ORDER BY years.year - """ - -df = pd.read_sql_query(query, conn) -ax = df.plot.line("year") # x-axis -ax.figure.savefig("local/rest_api_gcbm/tests/output/total_biomass_mt.png", dpi=300) diff --git a/local/rest_api_gcbm/cml_report/process_input.py b/local/rest_api_gcbm/cml_report/process_input.py deleted file mode 100644 index 519669f5..00000000 --- a/local/rest_api_gcbm/cml_report/process_input.py +++ /dev/null @@ -1,12 +0,0 @@ -import zipfile -import os - -# Unzip file -zip = os.path.join("tests","linux-demo.zip") -with zipfile.ZipFile(zip, "r") as zip_ref: - zip_ref.extractall("tests") - -# template = os.path.join("local", "rest_api_gcbm", "templates.zip") -# extract_to = os.path.join("local", "rest_api_gcbm", "cml_report") -# with zipfile.ZipFile(template, "r") as zip_ref: -# zip_ref.extractall(extract_to) diff --git a/local/rest_api_gcbm/cml_report/process_output.py b/local/rest_api_gcbm/cml_report/process_output.py deleted file mode 100644 index 642e1b78..00000000 --- a/local/rest_api_gcbm/cml_report/process_output.py +++ /dev/null @@ -1,6 +0,0 @@ -import os -import zipfile - -zip = "run4.zip" -with zipfile.ZipFile(zip, "r") as zip_ref: - zip_ref.extractall("output") diff --git a/local/rest_api_gcbm/cml_report/run_gcbm.py b/local/rest_api_gcbm/cml_report/run_gcbm.py deleted file mode 100644 index 1b2a366d..00000000 --- a/local/rest_api_gcbm/cml_report/run_gcbm.py +++ /dev/null @@ -1,52 +0,0 @@ -import os -import requests -from threading import Timer -import time -import json - -HOME = "http://localhost:8080/gcbm" -DONE = False - - -def run_gcbm(): - url = f"{HOME}/dynamic" - req_data = {"title": "run4"} - res = requests.post(url, data=req_data) - return res.text - - -def status(): - url = f"{HOME}/status" - req_data = {"title": "run4"} - res = requests.post(url, data=req_data) - return json.loads(res.text) - - -def display(): - global DONE - sim_status = status() - if sim_status["finished"] == "In Progress": - print(os.system("docker logs gcbm-api --until=30s")) - else: - DONE = True - - -class CheckSimulation(Timer): - def run(self): - while not self.finished.wait(self.interval): - self.function(*self.args, **self.kwargs) - print("Threading Done") - - -run_sim = run_gcbm() -print(run_sim) - -timer = CheckSimulation(30, display) -print("Starting simulation.") -timer.start() -time.sleep(300) -if not DONE: - time.sleep(300) - -print("Simulation Ending.") -timer.cancel() diff --git a/local/rest_api_gcbm/template/gcbm_config.cfg b/local/rest_api_gcbm/template/gcbm_config.cfg deleted file mode 100644 index e6640ac9..00000000 --- a/local/rest_api_gcbm/template/gcbm_config.cfg +++ /dev/null @@ -1,7 +0,0 @@ -config=localdomain.json -config=pools_cbm.json -config=modules_cbm.json -config=modules_output.json -config=spinup.json -config=variables.json -config=internal_variables.json diff --git a/local/rest_api_gcbm/template/internal_variables.json b/local/rest_api_gcbm/template/internal_variables.json deleted file mode 100644 index d9f71537..00000000 --- a/local/rest_api_gcbm/template/internal_variables.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Variables": { - "spatialLocationInfo": { - "flintdata": { - "type": "SpatialLocationInfo", - "library": "internal.flint", - "settings": {} - } - }, - "simulateLandUnit": true, - "is_decaying": true, - "spinup_moss_only": false, - "run_peatland": false, - "peatlandId": -1, - "is_forest": true, - "run_moss": false, - "run_delay": false, - "landUnitBuildSuccess": true, - "regen_delay": 0, - "age": 0, - "tileIndex": 0, - "blockIndex": 0, - "cellIndex": 0, - "LandUnitId": -1, - "landUnitArea": 0, - "classifier_set": {}, - "localDomainId": 0, - "LocalDomainId": 1, - "age_class": 0, - "historic_land_class": "FL", - "current_land_class": "FL", - "unfccc_land_class": "UNFCCC_FL_R_FL" - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/localdomain.json b/local/rest_api_gcbm/template/localdomain.json deleted file mode 100644 index 5bb04f33..00000000 --- a/local/rest_api_gcbm/template/localdomain.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Libraries": { - "moja.modules.cbm": "external", - "moja.modules.gdal": "external" - }, - "LocalDomain": { - "start_date": "2010/01/01", - "end_date": "2021/01/01", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "simulateLandUnit": "simulateLandUnit", - "sequencer_library": "moja.modules.cbm", - "sequencer": "CBMSequencer", - "timing": "annual", - "type": "spatial_tiled", - "landscape": { - "provider": "RasterTiled", - "num_threads": 4, - "tiles": [ - { - "x": -106, - "y": 55, - "index": 12674 - } - ], - "x_pixels": 4000, - "y_pixels": 4000, - "tile_size_x": 1.0, - "tile_size_y": 1.0 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/logging.conf b/local/rest_api_gcbm/template/logging.conf deleted file mode 100644 index 2da5fec5..00000000 --- a/local/rest_api_gcbm/template/logging.conf +++ /dev/null @@ -1,17 +0,0 @@ -[Core] -DisableLogging=false - -[Sinks.console] -Destination=Console -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= info" - -[Sinks.file] -Destination=TextFile -FileName="output/simulation.log" -Asynchronous=false -AutoFlush=true -Format="<%TimeStamp%> (%Severity%) - %Message%" -Filter="%Severity% >= debug" diff --git a/local/rest_api_gcbm/template/modules_cbm.json b/local/rest_api_gcbm/template/modules_cbm.json deleted file mode 100644 index 0b237195..00000000 --- a/local/rest_api_gcbm/template/modules_cbm.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "Modules": { - "CBMBuildLandUnitModule": { - "order": 1, - "library": "moja.modules.cbm" - }, - "CBMSequencer": { - "order": 2, - "library": "moja.modules.cbm" - }, - "CBMDisturbanceListener": { - "enabled": true, - "order": 3, - "library": "moja.modules.cbm", - "settings": { - "vars": [ - - ] - } - }, - "CBMDisturbanceEventModule": { - "enabled": true, - "order": 4, - "library": "moja.modules.cbm" - }, - "CBMTransitionRulesModule": { - "enabled": true, - "order": 5, - "library": "moja.modules.cbm" - }, - "CBMLandClassTransitionModule": { - "enabled": true, - "order": 6, - "library": "moja.modules.cbm" - }, - "CBMGrowthModule": { - "enabled": true, - "order": 7, - "library": "moja.modules.cbm" - }, - "CBMDecayModule": { - "enabled": true, - "order": 8, - "library": "moja.modules.cbm", - "settings": { - "extra_decay_removals": false - } - }, - "CBMAgeIndicators": { - "enabled": true, - "order": 9, - "library": "moja.modules.cbm" - }, - "TransactionManagerAfterSubmitModule": { - "order": 10, - "library": "internal.flint" - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/modules_output.json b/local/rest_api_gcbm/template/modules_output.json deleted file mode 100644 index cad01b28..00000000 --- a/local/rest_api_gcbm/template/modules_output.json +++ /dev/null @@ -1,816 +0,0 @@ -{ - "Modules": { - "WriteVariableGeotiff": { - "enabled": true, - "order": 11, - "library": "moja.modules.gdal", - "settings": { - "items": [ - { - "data_name": "Age", - "enabled": true, - "variable_data_type": "Int16", - "on_notification": "OutputStep", - "variable_name": "age" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther" - ], - "data_name": "AG_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Total_Ecosystem_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "data_name": "Total_Biomass_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "data_name": "Dead_Organic_Matter_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "pool_name": [ - "BelowGroundVeryFastSoil", - "BelowGroundSlowSoil" - ], - "data_name": "Soil_C", - "enabled": true, - "variable_data_type": "float", - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - "data_name": "NPP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ], - "flux_source": "annual_process" - } - ], - "data_name": "NEP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "flux_source": "annual_process", - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "Decomp_Releases", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - } - ], - "data_name": "NBP", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - } - ], - "data_name": "Delta_Total_Ecosystem", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "from": [ - "Atmosphere" - ] - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO" - ] - }, - { - "subtract": true, - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "Products" - ], - "flux_source": "disturbance" - }, - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "subtract": true, - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - } - ], - "data_name": "Delta_Total_Biomass", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "subtract": true, - "to": [ - "CO2", - "CH4", - "CO", - "Products" - ] - } - ], - "data_name": "Delta_Total_DOM", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ] - }, - "data_name": "Total_Biomass_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_DOM_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO2" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO2_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CO_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "to": [ - "CH4" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Total_CH4_Emissions", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": [ - { - "to": [ - "CO2", - "CH4", - "CO" - ], - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ], - "to": [ - "Products" - ] - } - ], - "data_name": "Ecosystem_Removals", - "enabled": true, - "on_notification": "OutputStep" - }, - { - "variable_data_type": "float", - "flux": { - "flux_source": "disturbance", - "from": [ - "SoftwoodMerch", - "SoftwoodFoliage", - "SoftwoodOther", - "SoftwoodCoarseRoots", - "SoftwoodFineRoots", - "HardwoodMerch", - "HardwoodFoliage", - "HardwoodOther", - "HardwoodCoarseRoots", - "HardwoodFineRoots" - ], - "to": [ - "AboveGroundVeryFastSoil", - "BelowGroundVeryFastSoil", - "AboveGroundFastSoil", - "BelowGroundFastSoil", - "MediumSoil", - "AboveGroundSlowSoil", - "BelowGroundSlowSoil", - "SoftwoodStemSnag", - "SoftwoodBranchSnag", - "HardwoodStemSnag", - "HardwoodBranchSnag" - ] - }, - "data_name": "Bio_To_DOM_From_Disturbances", - "enabled": true, - "on_notification": "OutputStep" - } - ], - "output_path": "output" - } - }, - "CBMAggregatorLandUnitData": { - "enabled": true, - "order": 12, - "library": "moja.modules.cbm", - "settings": { - "reporting_classifier_set": "reporting_classifiers" - } - }, - "CBMAggregatorSQLiteWriter": { - "enabled": true, - "order": 13, - "library": "moja.modules.cbm", - "settings": { - "databasename": "output/simulation_output.db" - } - } - } -} diff --git a/local/rest_api_gcbm/template/pools_cbm.json b/local/rest_api_gcbm/template/pools_cbm.json deleted file mode 100644 index 35979d38..00000000 --- a/local/rest_api_gcbm/template/pools_cbm.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Pools": { - "AboveGroundFastSoil": 0.0, - "AboveGroundSlowSoil": 0.0, - "AboveGroundVeryFastSoil": 0.0, - "Atmosphere": 0.0, - "BelowGroundFastSoil": 0.0, - "BelowGroundSlowSoil": 0.0, - "BelowGroundVeryFastSoil": 0.0, - "BlackCarbon": 0.0, - "CH4": 0.0, - "CO": 0.0, - "CO2": 0.0, - "DissolvedOrganicCarbon": 0.0, - "HardwoodBranchSnag": 0.0, - "HardwoodCoarseRoots": 0.0, - "HardwoodFineRoots": 0.0, - "HardwoodFoliage": 0.0, - "HardwoodMerch": 0.0, - "HardwoodOther": 0.0, - "HardwoodStemSnag": 0.0, - "MediumSoil": 0.0, - "NO2": 0.0, - "Peat": 0.0, - "Products": 0.0, - "SoftwoodBranchSnag": 0.0, - "SoftwoodCoarseRoots": 0.0, - "SoftwoodFineRoots": 0.0, - "SoftwoodFoliage": 0.0, - "SoftwoodMerch": 0.0, - "SoftwoodOther": 0.0, - "SoftwoodStemSnag": 0.0 - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/provider_config.json b/local/rest_api_gcbm/template/provider_config.json deleted file mode 100644 index 43343960..00000000 --- a/local/rest_api_gcbm/template/provider_config.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Providers": { - "SQLite": { - "path": "../input_database/gcbm_input.db", - "type": "SQLite" - }, - "RasterTiled": { - "layers": [ - - ], - "blockLonSize": 0, - "tileLatSize": 0, - "tileLonSize": 0, - "cellLatSize": 0, - "cellLonSize": 0, - "blockLatSize": 0, - "type": "RasterTiledGDAL", - "library": "moja.modules.gdal" - } - } -} diff --git a/local/rest_api_gcbm/template/spinup.json b/local/rest_api_gcbm/template/spinup.json deleted file mode 100644 index 1365b141..00000000 --- a/local/rest_api_gcbm/template/spinup.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "Spinup": { - "enabled": true, - "sequencer_library": "moja.modules.cbm", - "simulateLandUnit": "simulateLandUnit", - "landUnitBuildSuccess": "landUnitBuildSuccess", - "sequencer": "CBMSpinupSequencer" - }, - "SpinupVariables": { - "delay": 0, - "minimum_rotation": 10, - "run_delay": false - }, - "Variables": { - "spinup_parameters": { - "transform": { - "queryString": "SELECT s.return_interval AS return_interval, s.max_rotations AS max_rotations, dt.name AS historic_disturbance_type, dt.name AS last_pass_disturbance_type, s.mean_annual_temperature AS mean_annual_temperature, 0 as delay FROM spinup_parameter s INNER JOIN disturbance_type dt ON s.historic_disturbance_type_id = dt.id INNER JOIN spatial_unit spu ON spu.spinup_parameter_id = s.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - } - }, - "SpinupModules": { - "CBMSpinupSequencer": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 1 - }, - "CBMBuildLandUnitModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 2 - }, - "CBMGrowthModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 3 - }, - "CBMDecayModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 4 - }, - "TransactionManagerAfterSubmitModule": { - "create_new": true, - "library": "internal.flint", - "order": 5 - }, - "CBMSpinupDisturbanceModule": { - "create_new": true, - "library": "moja.modules.cbm", - "order": 6 - } - } -} \ No newline at end of file diff --git a/local/rest_api_gcbm/template/variables.json b/local/rest_api_gcbm/template/variables.json deleted file mode 100644 index f2d8bc2f..00000000 --- a/local/rest_api_gcbm/template/variables.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "Variables": { - "enable_peatland": false, - "enable_moss": false, - "admin_boundary": "British Columbia", - "eco_boundary": "Taiga Plains", - "initial_age": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "initial_age" - } - }, - "initial_historic_land_class": "FL", - "initial_current_land_class": "FL", - "age_class_range": 20, - "age_maximum": 300, - "slow_ag_to_bg_mixing_rate": 0.006, - "disturbance_matrices": { - "transform": { - "queryString": "SELECT dm.id AS disturbance_matrix_id, source_pool.name as source_pool_name, dest_pool.name as dest_pool_name, dv.proportion FROM disturbance_matrix dm INNER JOIN disturbance_matrix_value dv ON dm.id = dv.disturbance_matrix_id INNER JOIN pool source_pool ON dv.source_pool_id = source_pool.id INNER JOIN pool dest_pool ON dv.sink_pool_id = dest_pool.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "softwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Softwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "reporting_classifiers": { - "transform": { - "allow_nulls": true, - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "classifier_set" - ] - } - }, - "land_class_transitions": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, lc.code AS land_class_transition, lc.is_forest, lc.years_to_permanent FROM disturbance_type dt INNER JOIN land_class lc ON dt.transition_land_class_id = lc.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rules": { - "transform": { - "queryString": "SELECT t.id AS id, age, regen_delay, description, tt.name AS reset_type FROM transition t INNER JOIN transition_type tt ON t.transition_type_id = tt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_matches": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "TransitionRuleTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "spatial_unit_id": { - "transform": { - "queryString": "SELECT spu.id FROM spatial_unit spu INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN eco_boundary e ON spu.eco_boundary_id = e.id WHERE a.name = {var:admin_boundary} AND e.name = {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "hardwood_yield_table": { - "transform": { - "queryString": "SELECT gcv.age AS age, SUM(gcv.merchantable_volume) AS merchantable_volume FROM (SELECT CASE WHEN gc.id IS NOT NULL THEN gc.id ELSE -1 END AS growth_curve_component_id FROM growth_curve_component gc INNER JOIN species s ON s.id = gc.species_id INNER JOIN forest_type ft ON ft.id = s.forest_type_id WHERE gc.growth_curve_id = {var:growth_curve_id} AND LOWER(ft.name) LIKE LOWER('Hardwood')) AS gc INNER JOIN growth_curve_component_value gcv ON gc.growth_curve_component_id = gcv.growth_curve_component_id GROUP BY gcv.age", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "turnover_rates": { - "transform": { - "queryString": "SELECT COALESCE(sw_turnover.foliage, 0) AS sw_foliage_turnover, COALESCE(hw_turnover.foliage, 0) AS hw_foliage_turnover, COALESCE(sw_turnover.stem, 0) AS sw_stem_turnover, COALESCE(hw_turnover.stem, 0) AS hw_stem_turnover, COALESCE(sw_turnover.branch, 0) AS sw_branch_turnover, COALESCE(hw_turnover.branch, 0) AS hw_branch_turnover, COALESCE(sw_turnover.branch_snag_split, 0) AS sw_other_to_branch_snag_split, COALESCE(hw_turnover.branch_snag_split, 0) AS hw_other_to_branch_snag_split, COALESCE(sw_turnover.stem_snag, 0) AS sw_stem_snag_turnover, COALESCE(hw_turnover.stem_snag, 0) AS hw_stem_snag_turnover, COALESCE(sw_turnover.branch_snag, 0) AS sw_branch_snag_turnover, COALESCE(hw_turnover.branch_snag, 0) AS hw_branch_snag_turnover, COALESCE(sw_turnover.coarse_ag_split, 0) AS sw_coarse_root_split, COALESCE(hw_turnover.coarse_ag_split, 0) AS hw_coarse_root_split, COALESCE(sw_turnover.coarse_root, 0) AS sw_coarse_root_turnover, COALESCE(hw_turnover.coarse_root, 0) AS hw_coarse_root_turnover, COALESCE(sw_turnover.fine_ag_split, 0) AS sw_fine_root_ag_split, COALESCE(hw_turnover.fine_ag_split, 0) AS hw_fine_root_ag_split, COALESCE(sw_turnover.fine_root, 0) AS sw_fine_root_turnover, COALESCE(hw_turnover.fine_root, 0) AS hw_fine_root_turnover FROM growth_curve gc LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Softwood' ORDER BY gcc.id LIMIT 1 ) AS sw_turnover ON gc.id = sw_turnover.growth_curve_id LEFT JOIN ( SELECT growth_curve_id, foliage, stem, branch, branch_snag_split, stem_snag, branch_snag, coarse_ag_split, coarse_root, fine_ag_split, fine_root FROM turnover_parameter_association tpa INNER JOIN eco_boundary e ON tpa.eco_boundary_id = e.id INNER JOIN genus g ON tpa.genus_id = g.id INNER JOIN species s ON s.genus_id = g.id INNER JOIN forest_type f ON s.forest_type_id = f.id INNER JOIN growth_curve_component gcc ON gcc.species_id = s.id INNER JOIN turnover_parameter t ON tpa.turnover_parameter_id = t.id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND e.name = {var:eco_boundary} AND f.name = 'Hardwood' ORDER BY gcc.id LIMIT 1 ) AS hw_turnover ON gc.id = hw_turnover.growth_curve_id WHERE gc.id = {var:growth_curve_id}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbance_type_codes": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dt.code AS disturbance_type_code FROM disturbance_type dt", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "transition_rule_classifiers": { - "transform": { - "queryString": "SELECT t.id, c.name AS classifier_name, cv.value AS classifier_value FROM transition t INNER JOIN transition_classifier_value tcv ON t.id = tcv.transition_id INNER JOIN classifier_value cv ON tcv.classifier_value_id = cv.id INNER JOIN classifier c ON cv.classifier_id = c.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "initial_classifier_set": { - "transform": { - "type": "CompositeTransform", - "library": "internal.flint", - "vars": [ - "Classifier2", - "Classifier1" - ] - } - }, - "disturbance_matrix_associations": { - "transform": { - "queryString": "SELECT dt.name AS disturbance_type, dma.spatial_unit_id, dma.disturbance_matrix_id FROM disturbance_matrix_association dma INNER JOIN disturbance_type dt ON dma.disturbance_type_id = dt.id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "other_to_branch_snag_split": { - "transform": { - "queryString": "SELECT t.branch_snag_split AS slow_mixing_rate FROM eco_boundary e INNER JOIN turnover_parameter t ON e.turnover_parameter_id = t.id WHERE e.name LIKE {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "growth_curve_id": { - "transform": { - "classifier_set_var": "classifier_set", - "type": "GrowthCurveTransform", - "library": "moja.modules.cbm", - "provider": "SQLite" - } - }, - "volume_to_biomass_parameters": { - "transform": { - "queryString": "SELECT ft.name AS forest_type, f.a as a, f.b as b, f.a_nonmerch as a_non_merch, f.b_nonmerch as b_non_merch, f.k_nonmerch as k_non_merch, f.cap_nonmerch as cap_non_merch, f.a_sap as a_sap, f.b_sap as b_sap, f.k_sap as k_sap, f.cap_sap as cap_sap, f.a1 as a1, f.a2 as a2, f.a3 as a3, f.b1 as b1, f.b2 as b2, f.b3 as b3, f.c1 as c1, f.c2 as c2, f.c3 as c3, f.min_volume as min_volume, f.max_volume as max_volume, f.low_stemwood_prop as low_stemwood_prop, f.high_stemwood_prop as high_stemwood_prop, f.low_stembark_prop as low_stembark_prop, f.high_stembark_prop as high_stembark_prop, f.low_branches_prop AS low_branches_prop, f.high_branches_prop as high_branches_prop, f.low_foliage_prop AS low_foliage_prop, f.high_foliage_prop AS high_foliage_prop, sp.sw_top_proportion AS softwood_top_prop, sp.sw_stump_proportion AS softwood_stump_prop, sp.hw_top_proportion AS hardwood_top_prop, sp.hw_stump_proportion AS hardwood_stump_prop, rp.hw_a AS hw_a, rp.hw_b AS hw_b, rp.sw_a AS sw_a, rp.frp_a AS frp_a, rp.frp_b AS frp_b, rp.frp_c AS frp_c FROM vol_to_bio_factor_association fa INNER JOIN vol_to_bio_factor f ON f.id = fa.vol_to_bio_factor_id INNER JOIN species s ON fa.species_id = s.id INNER JOIN growth_curve_component gcc ON s.id = gcc.species_id INNER JOIN forest_type ft ON s.forest_type_id = ft.id INNER JOIN spatial_unit spu ON fa.spatial_unit_id = spu.id INNER JOIN admin_boundary a ON spu.admin_boundary_id = a.id INNER JOIN stump_parameter sp ON a.stump_parameter_id = sp.id INNER JOIN root_parameter rp ON rp.id = fa.root_parameter_id WHERE gcc.growth_curve_id = {var:growth_curve_id} AND spu.id = {var:spatial_unit_id} ORDER BY gcc.id DESC", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "spu": { - "transform": { - "queryString": "select s.id AS spu_id from spatial_unit s inner join admin_boundary a on s.admin_boundary_id = a.id inner join eco_boundary e on s.eco_boundary_id = e.id where a.name like {var:admin_boundary} and e.name like {var:eco_boundary}", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "land_class_data": { - "transform": { - "queryString": "SELECT code AS land_class, is_forest, years_to_permanent FROM land_class lc", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "mean_annual_temperature": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "mean_annual_temperature" - } - }, - "decay_parameters": { - "transform": { - "queryString": "SELECT p.name AS pool, dp.base_decay_rate AS organic_matter_decay_rate, dp.prop_to_atmosphere AS prop_to_atmosphere, dp.q10 AS q10, dp.reference_temp AS reference_temp, dp.max_rate AS max_decay_rate_soft FROM decay_parameter dp INNER JOIN dom_pool dom ON dp.dom_pool_id = dom.id INNER JOIN pool p ON p.id = dom.pool_id", - "type": "SQLQueryTransform", - "library": "internal.flint", - "provider": "SQLite" - } - }, - "disturbances_2012": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2012" - } - }, - "disturbances_2011": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2011" - } - }, - "disturbances_2015": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2015" - } - }, - "disturbances_2014": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2014" - } - }, - "disturbances_2018": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2018" - } - }, - "disturbances_2016": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2016" - } - }, - "Classifier2": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier2" - } - }, - "Classifier1": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "Classifier1" - } - }, - "disturbances_2013": { - "transform": { - "library": "internal.flint", - "type": "LocationIdxFromFlintDataTransform", - "provider": "RasterTiled", - "data_id": "disturbances_2013" - } - } - } -} \ No newline at end of file From f6865780f149d67130a3d45a4521591d961921e9 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Sat, 6 Aug 2022 23:37:42 +0530 Subject: [PATCH 194/196] remove more useless files --- local/tests/simulation_status.py | 39 -------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 local/tests/simulation_status.py diff --git a/local/tests/simulation_status.py b/local/tests/simulation_status.py deleted file mode 100644 index 1c57a93b..00000000 --- a/local/tests/simulation_status.py +++ /dev/null @@ -1,39 +0,0 @@ -""" -Author: @Namyalg -""" -import os - - -def get_container_id(): - """ - Return the container id corresponding to the image gcbm-api - """ - container_id = "" - os.system("docker ps >> simulation.txt") - with open("simulation.txt") as file_handle: - lines = file_handle.readlines() - for line in lines: - if "gcbm-api" in line: - container_id = line.split()[0] - os.system("rm simulation.txt") - return container_id - - -def get_simulation_status(): - """ - If the container gcbm-api is running, the associated logs are returned - """ - container_id = get_container_id() - logs_file_name = container_id + ".txt" - if container_id != "": - logs_cmd = "docker logs " + container_id + " > " + logs_file_name + " 2>&1" - os.system(logs_cmd) - logs = [] - with open(logs_file_name) as file_handle: - logs = file_handle.readlines() - # os.system('rm ' + logs_file_name) - return {"container_running": True, "logs": logs} - return {"container_running": False} - - -print(get_simulation_status()) From ab364e30c62212ccefbe33f6460973adcf03148b Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Sat, 6 Aug 2022 23:42:32 +0530 Subject: [PATCH 195/196] after all a new workflow --- .github/workflows/cml-report.yml | 163 ++++++++---------------- local/rest_api_gcbm/annual_summaries.py | 19 +++ 2 files changed, 71 insertions(+), 111 deletions(-) create mode 100644 local/rest_api_gcbm/annual_summaries.py diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 8cc53857..5cba818f 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,4 +1,4 @@ -name: CML Report +name: Generate CML Report on: pull_request: # types: [ labeled ] @@ -6,117 +6,58 @@ on: - master jobs: - sim-summary: - # if: ${{ github.event.label.name == ['run-simulation','GCBM'] }} - name: CML Simulation + generate_cml_report: runs-on: ubuntu-latest + defaults: + run: + shell: bash + container: + image: ghcr.io/moja-global/rest_api_gcbm:master + ports: + - "8080:8080" steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - name: Setup python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - # - name: Build API - # run: | - # python local/rest_api_gcbm/cml_report/process_input.py - # cd local/rest_api_gcbm - # docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - # docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api - - # - name: Get Public IP - # id: ip - # uses: haythem/public-ip@v1.2 - - # - name: Print public IP - # run: | - # echo ${{ steps.ip.outputs.ipv4 }} - - # - name: Check ports - # run: | - # sudo netstat -tunlp - - # - name: Create New Sim - # run: | - # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new + - name: Checkout repository + uses: actions/checkout@v3 + + - uses: actions/setup-node@v3 + with: + node-version: 16 + + - name: Run the Simulation + run: | + apt-get update && apt-get install unzip -y + pushd local/rest_api_gcbm/tests/ + unzip linux-demo.zip + cd config/ + /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json + popd + cd local/rest_api_gcbm && mkdir GCBM.CompileResults + + - name: Checkout the Repository + uses: actions/checkout@v3 + with: + repository: moja-global/GCBM.CompileResults + path: local/rest_api_gcbm/GCBM.CompileResults + + - name: Compile the Results + run: | + cd local/rest_api_gcbm + python3 GCBM.CompileResults/compileresults.py sqlite:///tests/output/gcbm_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db + + - name: Install dependencies + run: pip3 install pandas matplotlib - # - name: Upload Files - # run: | - # cd GCBM/GCBM_New_Demo_Run - # curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \ - # -F disturbances='@disturbances/disturbances_2012_moja.tiff' \ - # -F disturbances='@disturbances/disturbances_2013_moja.tiff' \ - # -F disturbances='@disturbances/disturbances_2014_moja.tiff' \ - # -F disturbances='@disturbances/disturbances_2015_moja.tiff' \ - # -F disturbances='@disturbances/disturbances_2016_moja.tiff' \ - # -F disturbances='@disturbances/disturbances_2018_moja.tiff' \ - # -F classifiers='@classifiers/Classifier1_moja.tiff' \ - # -F classifiers='@classifiers/Classifier2_moja.tiff' \ - # -F db='@db/gcbm_input.db' \ - # -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \ - # -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \ - # -F title="run4" \ - # http://localhost:8080/gcbm/upload - - # - name: Run Simulation - # run: | - # pip install requests - # python local/rest_api_gcbm/cml_report/run_gcbm.py - - # - name: Retrive Logs and Download Results - # run: | - # cd local/tests - # python simulation_status.py - # cd ../.. - # curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip - # python local/rest_api_gcbm/cml_report/process_output.py - - # - name: Upload Logs as artifact - # uses: actions/upload-artifact@v3 - # with: - # name: simulation-logs - # path: local/tests/*.txt - - - - name: Build container - run: | - cd local/rest_api_gcbm - docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api . - docker run -d --name gcbm --rm -p 8080:8080 gcbm-api - - - name: Process Input - run: | - docker exec -i gcbm python cml_report/process_input.py - - - name: Run Simulation - run: | - docker exec -i -w /app/tests/config gcbm /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json - docker cp gcbm:/app/tests/output/logs/Moja_Debug.log local/rest_api_gcbm/tests - - - name: Upload Logs as artifact - uses: actions/upload-artifact@v3 - with: - name: simulation-logs - path: local/rest_api_gcbm/tests/Moja_Debug.log - - - name: Compile Results - run: | - docker exec -i gcbm python GCBM.CompileResults/compileresults.py sqlite:///tests/output/gcbm_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db - docker cp -L gcbm:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests - - - name: Setup CML - uses: iterative/setup-cml@v1 - - - name: Send the report - env: - repo_token: ${{ secrets.GITHUB_TOKEN }} - run: | - pip install matplotlib - pip install pandas - python local/rest_api_gcbm/cml_report/annual_summaries.py - echo "# GCBM Model" > report.md - echo "## Total Biomass Curve" >> report.md - cml-publish output/total_biomass_mt.png --md >> report.md - cml-send-comment report.md \ No newline at end of file + - name: Setup CML + uses: iterative/setup-cml@v1 + + - name: Send the report + env: + repo_token: ${{ secrets.GITHUB_TOKEN }} + run: | + cd local/rest_api_gcbm + python3 annual_summaries.py + echo "# GCBM Model" > report.md + echo "## Total Biomass Curve" >> report.md + cml-publish tests/output/total_biomass_mt.png --md >> report.md + cml-send-comment report.md diff --git a/local/rest_api_gcbm/annual_summaries.py b/local/rest_api_gcbm/annual_summaries.py new file mode 100644 index 00000000..a8e4aa83 --- /dev/null +++ b/local/rest_api_gcbm/annual_summaries.py @@ -0,0 +1,19 @@ +import sqlite3 +import pandas as pd + +conn = sqlite3.connect("tests/output/compiled_simulation_output.db") + +query = f""" + SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt + FROM (SELECT DISTINCT year FROM v_age_indicators ORDER BY year) AS years + LEFT JOIN v_pool_indicators i + ON years.year = i.year + WHERE i.indicator = 'Total Biomass' + AND (years.year BETWEEN 2010 AND 2020) + GROUP BY years.year + ORDER BY years.year + """ + +df = pd.read_sql_query(query, conn) +ax = df.plot.line("year") +ax.figure.savefig("tests/output/total_biomass_mt.png", dpi=300) From 81953ef3a8ff91825a3cc0350e521cbb341b0239 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Sat, 13 Aug 2022 21:51:03 +0530 Subject: [PATCH 196/196] label pr workflow --- .github/workflows/cml-report.yml | 3 ++- .gitignore | 1 - local/rest_api_gcbm/requirements.txt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cml-report.yml b/.github/workflows/cml-report.yml index 5cba818f..eda03c9a 100644 --- a/.github/workflows/cml-report.yml +++ b/.github/workflows/cml-report.yml @@ -1,12 +1,13 @@ name: Generate CML Report on: pull_request: - # types: [ labeled ] + types: [ labeled ] branches: - master jobs: generate_cml_report: + if: ${{ github.event.label.name == ['run-simulation'] }} runs-on: ubuntu-latest defaults: run: diff --git a/.gitignore b/.gitignore index 18dd9500..1e5815ba 100644 --- a/.gitignore +++ b/.gitignore @@ -173,4 +173,3 @@ terraform.rc # Add GCBM Demo runs GCBM_Demo_Run/ GCBM_New_Demo_Run/ -local/rest_api_gcbm/cml_report/templates \ No newline at end of file diff --git a/local/rest_api_gcbm/requirements.txt b/local/rest_api_gcbm/requirements.txt index 270092fb..f0220ce0 100644 --- a/local/rest_api_gcbm/requirements.txt +++ b/local/rest_api_gcbm/requirements.txt @@ -10,6 +10,6 @@ flask-cors==3.0.10 simplejson==3.17.6 sqlalchemy==1.4.32 psutil==5.9.0 -pandas==1.4.2 -matplotlib==3.5.2 -rasterio \ No newline at end of file +pandas +matplotlib +rasterio