From ebbd1a5abc8db461d5ea8936dc9eb61e79676e7c Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 6 Aug 2017 18:51:39 +0200 Subject: [PATCH 01/47] Add support for ncclimo Climatology now includes functions to support ncclimo (and update climatology bounds based on a list of available input files). streamfunctionMOC has been updated ot use ncclimo to compute the annual climatology of velocity. --- mpas_analysis/ocean/streamfunction_moc.py | 78 ++++----- mpas_analysis/shared/climatology/__init__.py | 3 +- .../shared/climatology/climatology.py | 148 +++++++++++++++++- 3 files changed, 177 insertions(+), 52 deletions(-) diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 8c1608e07..b842d3e92 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -17,8 +17,9 @@ from ..shared.timekeeping.utility import get_simulation_start_time, \ days_to_datetime -from ..shared.climatology.climatology import update_start_end_year, \ - cache_climatologies +from ..shared.climatology.climatology \ + import update_start_end_year_from_file_names, \ + compute_climatologies_with_ncclimo from ..shared.analysis_task import AnalysisTask @@ -172,7 +173,7 @@ def run(self): # {{{ # sectionName, dictClimo, # dictTseries) else: - self._cache_velocity_climatologies() + self._compute_velocity_climatologies() self._compute_moc_climo_postprocess() dsMOCTimeSeries = self._compute_moc_time_series_postprocess() @@ -250,44 +251,39 @@ def _load_mesh(self): # {{{ refTopDepth, refLayerThickness # }}} - def _cache_velocity_climatologies(self): # {{{ + def _compute_velocity_climatologies(self): # {{{ '''compute yearly velocity climatologies and cache them''' - variableList = ['avgNormalVelocity', - 'avgVertVelocityTop'] + variableList = ['timeMonthly_avg_normalVelocity', + 'timeMonthly_avg_vertVelocityTop'] config = self.config - outputDirectory = build_config_full_path(config, 'output', - 'mpasClimatologySubdirectory') + outputRoot = build_config_full_path(config, 'output', + 'mpasClimatologySubdirectory') - make_directories(outputDirectory) + outputDirectory = '{}/meanVelocity'.format(outputRoot) - chunking = config.getExpression(self.sectionName, 'maxChunkSize') - ds = open_multifile_dataset( - fileNames=self.inputFilesClimo, - calendar=self.calendar, - config=config, - simulationStartTime=self.simulationStartTime, - timeVariableName='Time', - variableList=variableList, - variableMap=self.variableMap, - startDate=self.startDateClimo, - endDate=self.endDateClimo, - chunking=chunking) + changed, self.startYearClimo, self.endYearClimo = \ + update_start_end_year_from_file_names(self.inputFilesClimo, + config, self.calendar) - # update the start and end year in config based on the real extend of - # ds - update_start_end_year(ds, config, self.calendar) - self.startYearClimo = config.getint('climatology', 'startYear') - self.endYearClimo = config.getint('climatology', 'endYear') + self.velClimoFile = \ + '{}/mpaso_ANN_{:04d}01_{:04d}12_climo.nc'.format( + outputDirectory, self.startYearClimo, + self.endYearClimo) - cachePrefix = '{}/meanVelocity'.format(outputDirectory) + if not os.path.exists(self.velClimoFile): + make_directories(outputDirectory) - # compute and cache the velocity climatology - cache_climatologies(ds, monthDictionary['ANN'], - config, cachePrefix, self.calendar, - printProgress=True) + compute_climatologies_with_ncclimo( + inDirectory=self.historyDirectory, + outDirectory=outputDirectory, + startYear=self.startYearClimo, + endYear=self.endYearClimo, + variableList=variableList, + modelName='mpaso', + decemberMode='sdd') # }}} def _compute_moc_climo_postprocess(self): # {{{ @@ -353,22 +349,16 @@ def _compute_moc_climo_postprocess(self): # {{{ if not os.path.exists(outputFileClimo): print ' Load data...' - cachePrefix = '{}/meanVelocity'.format(outputDirectory) - - if self.startYearClimo == self.endYearClimo: - yearString = '{:04d}'.format(self.startYearClimo) - velClimoFile = '{}_year{}.nc'.format(cachePrefix, yearString) - else: - yearString = '{:04d}-{:04d}'.format(self.startYearClimo, - self.endYearClimo) - velClimoFile = '{}_years{}.nc'.format(cachePrefix, yearString) - - annualClimatology = xr.open_dataset(velClimoFile) + annualClimatology = xr.open_dataset(self.velClimoFile) + # rename some variables for convenience + annualClimatology = annualClimatology.rename( + {'timeMonthly_avg_normalVelocity':'avgNormalVelocity', + 'timeMonthly_avg_vertVelocityTop':'avgVertVelocityTop'}) # Convert to numpy arrays # (can result in a memory error for large array size) - horizontalVel = annualClimatology.avgNormalVelocity.values - verticalVel = annualClimatology.avgVertVelocityTop.values + horizontalVel = annualClimatology.avgNormalVelocity.values[0, :, :] + verticalVel = annualClimatology.avgVertVelocityTop.values[0, :, :] velArea = verticalVel * areaCell[:, np.newaxis] # Create dictionary for MOC climatology (NB: need this form diff --git a/mpas_analysis/shared/climatology/__init__.py b/mpas_analysis/shared/climatology/__init__.py index 2442345da..1662914a8 100644 --- a/mpas_analysis/shared/climatology/__init__.py +++ b/mpas_analysis/shared/climatology/__init__.py @@ -2,4 +2,5 @@ get_mpas_climatology_file_names, get_observation_climatology_file_names, \ compute_monthly_climatology, compute_climatology, cache_climatologies, \ update_start_end_year, add_years_months_days_in_month, \ - remap_and_write_climatology + remap_and_write_climatology, compute_climatologies_with_ncclimo, \ + update_start_end_year_from_file_names diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index c15364722..119d338f0 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -14,12 +14,16 @@ import os import numpy import warnings +from distutils.spawn import find_executable +import sys +import subprocess from ..constants import constants from ..timekeeping.utility import days_to_datetime -from ..io.utility import build_config_full_path, make_directories, fingerprint_generator +from ..io.utility import build_config_full_path, make_directories, \ + fingerprint_generator from ..interpolation import Remapper from ..grid import LatLonGridDescriptor, ProjectionGridDescriptor @@ -230,6 +234,75 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, # }}} +def compute_climatologies_with_ncclimo(inDirectory, outDirectory, + startYear, endYear, + variableList, modelName, + decemberMode='scd'): # {{{ + ''' + Uses ncclimo to compute monthly, seasonal (DJF, MAM, JJA, SON) and annual + climatologies. + + Parameters + ---------- + inDirectory : str + The run directory containing timeSeriesStatsMonthly output + + outDirectory : str + The output directory where climatologies will be written + + + startYear, endYear : int + The start and end years of the climatology + + variableList : list of str + A list of variables to include in the climatology + + modeName : ['mpaso', 'mpascice'] + The name of the component for which the climatology is to be computed + + decemberMode : ['scd', 'sdd'] + Whether years start in December (scd - seasonally continuous December) + or January (sdd - seasonally discontinuous December). If the former, + the data set begins with December of the year before startYear and ends + with November of endYear. Otherwise, goes from January of startYear to + December of endYear. + + Raises + ------ + OSError + If ``ncclimo`` is not in the system path. + + Author + ------ + Xylar Asay-Davis + ''' + + if find_executable('ncclimo') is None: + raise OSError('ncclimo not found. Make sure the latest nco ' + 'package is installed: \n' + 'conda install nco\n' + 'Note: this presumes use of the conda-forge ' + 'channel.') + + args = ['ncclimo', + '-a', decemberMode, + '-m', modelName, + '-v', ','.join(variableList), + '-s', '{:04d}'.format(startYear), + '-e', '{:04d}'.format(endYear), + '-i', inDirectory, + '-o', outDirectory] + + print 'running: {}'.format(' '.join(args)) + + # make sure any output is flushed before we add output from the + # subprocess + sys.stdout.flush() + sys.stderr.flush() + + subprocess.check_call(args) # }}} + + def get_observation_climatology_file_names(config, fieldName, monthNames, componentName, remapper): # {{{ """ @@ -500,8 +573,8 @@ def cache_climatologies(ds, monthValues, config, cachePrefix, calendar, def update_start_end_year(ds, config, calendar): # {{{ """ - Given a monthly climatology, compute a seasonal climatology weighted by - the number of days in each month (on the no-leap-year calendar). + Update the start and end years for climatologies based on the + years actually present in the given data set. Parameters ---------- @@ -525,10 +598,6 @@ def update_start_end_year(ds, config, calendar): # {{{ Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 03/25/2017 """ requestedStartYear = config.getint('climatology', 'startYear') requestedEndYear = config.getint('climatology', 'endYear') @@ -552,6 +621,71 @@ def update_start_end_year(ds, config, calendar): # {{{ return changed, startYear, endYear # }}} +def update_start_end_year_from_file_names(inputFiles, config, calendar): # {{{ + """ + Update the start and end years for climatologies based on the + years actually available in the list of files. + + Parameters + ---------- + inputFiles : list of str + A list of file names ending with dates (before the '.nc' extension) + + config : instance of MpasAnalysisConfigParser + Contains configuration options + + calendar : {'gregorian', 'gregorian_noleap'} + The name of one of the calendars supported by MPAS cores + + Returns + ------- + changed : bool + Whether the start and end years were changed + + startYear, endYear : int + The start and end years of the data set + + Authors + ------- + Xylar Asay-Davis + + """ + requestedStartYear = config.getint('climatology', 'startYear') + requestedEndYear = config.getint('climatology', 'endYear') + + dates = sorted([fileName[-13:-6] for fileName in inputFiles]) + years = [int(date[0:4]) for date in dates] + months = [int(date[5:7]) for date in dates] + + # search for the start of the first full year + firstIndex = 0 + while(firstIndex < len(years) and months[firstIndex] != 1): + firstIndex += 1 + startYear = years[firstIndex] + + # search for the end of the last full year + lastIndex = len(years)-1 + while(lastIndex >= 0 and months[lastIndex] != 12): + lastIndex -= 1 + endYear = years[lastIndex] + + changed = False + if startYear != requestedStartYear or endYear != requestedEndYear: + message = "climatology start and/or end year different from " \ + "requested\n" \ + "requestd: {:04d}-{:04d}\n" \ + "actual: {:04d}-{:04d}\n".format(requestedStartYear, + requestedEndYear, + startYear, + endYear) + warnings.warn(message) + config.set('climatology', 'startYear', str(startYear)) + config.set('climatology', 'endYear', str(endYear)) + changed = True + + return changed, startYear, endYear # }}} + + def add_years_months_days_in_month(ds, calendar=None): # {{{ ''' Add ``year``, ``month`` and ``daysInMonth`` as data arrays in ``ds``. From 16affbe9388ab83576d6454c42d555291fa18264 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 8 Aug 2017 10:21:56 +0200 Subject: [PATCH 02/47] Add option ncclimoParallelMode; default is serial This merge adds a config option ncclimoParallelMode in the execute section. The default is "serial", but it can also be set to "bck" on machines with enough RAM to handle the 12 background processes for computing monthly climatologies simultaneously. This should be tested on different machines and for different run sizes, and the machine-specific config files should be updated accordingly. --- config.default | 5 +++++ mpas_analysis/ocean/streamfunction_moc.py | 8 ++++---- mpas_analysis/shared/climatology/climatology.py | 8 +++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/config.default b/config.default index 5005b627d..dccae23df 100644 --- a/config.default +++ b/config.default @@ -43,6 +43,11 @@ parallelTaskCount = 1 # Default is no prefix (run_analysis.py is executed directly) commandPrefix = +# the parallelism mode in ncclimo ("serial" or "bck") +# Set this to "bck" if running on a machine that can handle 12 simultaneous +# processes, one for each monthly climatology. +ncclimoParallelMode = serial + [input] ## options related to reading in the results to be analyzed diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index b842d3e92..934bc18ab 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -4,8 +4,7 @@ import os from functools import partial -from ..shared.constants.constants import m3ps_to_Sv, \ - monthDictionary +from ..shared.constants.constants import m3ps_to_Sv from ..shared.plot.plotting import plot_vertical_section,\ timeseries_analysis_plot, setup_colormap @@ -277,6 +276,7 @@ def _compute_velocity_climatologies(self): # {{{ make_directories(outputDirectory) compute_climatologies_with_ncclimo( + config=config, inDirectory=self.historyDirectory, outDirectory=outputDirectory, startYear=self.startYearClimo, @@ -352,8 +352,8 @@ def _compute_moc_climo_postprocess(self): # {{{ annualClimatology = xr.open_dataset(self.velClimoFile) # rename some variables for convenience annualClimatology = annualClimatology.rename( - {'timeMonthly_avg_normalVelocity':'avgNormalVelocity', - 'timeMonthly_avg_vertVelocityTop':'avgVertVelocityTop'}) + {'timeMonthly_avg_normalVelocity': 'avgNormalVelocity', + 'timeMonthly_avg_vertVelocityTop': 'avgVertVelocityTop'}) # Convert to numpy arrays # (can result in a memory error for large array size) diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index 119d338f0..b825b0abf 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -234,7 +234,7 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, # }}} -def compute_climatologies_with_ncclimo(inDirectory, outDirectory, +def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, startYear, endYear, variableList, modelName, decemberMode='scd'): # {{{ @@ -244,6 +244,9 @@ def compute_climatologies_with_ncclimo(inDirectory, outDirectory, Parameters ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + inDirectory : str The run directory containing timeSeriesStatsMonthly output @@ -284,9 +287,12 @@ def compute_climatologies_with_ncclimo(inDirectory, outDirectory, 'Note: this presumes use of the conda-forge ' 'channel.') + parallelMode = config.get('execute', 'ncclimoParallelMode') + args = ['ncclimo', '-a', decemberMode, '-m', modelName, + '-p', parallelMode, '-v', ','.join(variableList), '-s', '{:04d}'.format(startYear), '-e', '{:04d}'.format(endYear), From a2cf851ba25cc368d9d924fa6d356d14d25f2ba6 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 11 Aug 2017 18:31:44 +0200 Subject: [PATCH 03/47] Clarify a comment in config.default --- config.default | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config.default b/config.default index dccae23df..3f3fd971e 100644 --- a/config.default +++ b/config.default @@ -41,11 +41,11 @@ parallelTaskCount = 1 # Prefix on the commnd line before a parallel task (e.g. 'srun -n 1 python') # Default is no prefix (run_analysis.py is executed directly) -commandPrefix = +commandPrefix = # the parallelism mode in ncclimo ("serial" or "bck") -# Set this to "bck" if running on a machine that can handle 12 simultaneous -# processes, one for each monthly climatology. +# Set this to "bck" (background parallelism) if running on a machine that can +# handle 12 simultaneous processes, one for each monthly climatology. ncclimoParallelMode = serial [input] @@ -257,11 +257,11 @@ baseDirectory = /dir/to/ocean/reference # directory where ocean reference simulation results are stored baseDirectory = /dir/to/ocean/reference - + [seaIceObservations] ## options related to sea ice observations with which the results will be ## compared - + # directory where sea ice observations are stored baseDirectory = /dir/to/seaice/observations areaNH = IceArea_timeseries/iceAreaNH_climo.nc @@ -404,7 +404,7 @@ regionMaskFiles = /path/to/MOCregional/mapping/file # is handled automatically. If the MOC calculation encounters memory problems, # consider setting maxChunkSize to a number significantly lower than nEdges # in your MPAS mesh so that the calculation will be divided into smaller -# pieces. +# pieces. # Note, need to use maxChunkSize for the 18to6 # maxChunkSize = 1000 From 2a87dd1f032ed9e6cba4d939f223952f83e57a2c Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 11:52:42 +0200 Subject: [PATCH 04/47] Remove unneeded calendar arg This arg is not needed in update_start_end_year_from_file_names --- mpas_analysis/ocean/streamfunction_moc.py | 2 +- mpas_analysis/shared/climatology/climatology.py | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 934bc18ab..c1e036a04 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -265,7 +265,7 @@ def _compute_velocity_climatologies(self): # {{{ changed, self.startYearClimo, self.endYearClimo = \ update_start_end_year_from_file_names(self.inputFilesClimo, - config, self.calendar) + config) self.velClimoFile = \ '{}/mpaso_ANN_{:04d}01_{:04d}12_climo.nc'.format( diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index b825b0abf..327d7260a 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -627,7 +627,7 @@ def update_start_end_year(ds, config, calendar): # {{{ return changed, startYear, endYear # }}} -def update_start_end_year_from_file_names(inputFiles, config, calendar): # {{{ +def update_start_end_year_from_file_names(inputFiles, config): # {{{ """ Update the start and end years for climatologies based on the years actually available in the list of files. @@ -640,9 +640,6 @@ def update_start_end_year_from_file_names(inputFiles, config, calendar): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options - calendar : {'gregorian', 'gregorian_noleap'} - The name of one of the calendars supported by MPAS cores - Returns ------- changed : bool From 898cbcf66ac0b67478bd17b093be545e5395c97a Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sat, 12 Aug 2017 17:19:16 +0200 Subject: [PATCH 05/47] Suppress some ncremap output --- mpas_analysis/shared/interpolation/remapper.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mpas_analysis/shared/interpolation/remapper.py b/mpas_analysis/shared/interpolation/remapper.py index 8a4c9c979..f130f1b00 100644 --- a/mpas_analysis/shared/interpolation/remapper.py +++ b/mpas_analysis/shared/interpolation/remapper.py @@ -256,6 +256,7 @@ def remap_file(self, inFileName, outFileName, args = ['ncremap', '-i', inFileName, '-m', self.mappingFileName, + '--vrb=1', '-o', outFileName] if isinstance(self.sourceDescriptor, LatLonGridDescriptor): From 4e1162ece3b22ca6f2d1db56a8126c795103e91e Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sat, 12 Aug 2017 18:18:15 +0200 Subject: [PATCH 06/47] Add write_netcdf function with finite _FillValue With this merge, xarray data sets can be written out with finite _FillValue using the shared.io.write_netcdf function. By default, the fill values are the defaults from the netCDF4 package. All climatologies have been updated to use write_netcdf. ncremap is now called with the --renormalize flag so that only non fill values are used in the resulting output. --- mpas_analysis/ocean/climatology_map.py | 3 +- .../shared/climatology/climatology.py | 12 +++-- .../shared/interpolation/remapper.py | 23 ++++++-- mpas_analysis/shared/io/__init__.py | 1 + mpas_analysis/shared/io/write_netcdf.py | 54 +++++++++++++++++++ 5 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 mpas_analysis/shared/io/write_netcdf.py diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 728ebd12f..9f7d7bef7 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -21,6 +21,7 @@ from ..shared.constants import constants from ..shared.io.utility import build_config_full_path +from ..shared.io import write_netcdf from ..shared.generalized_reader.generalized_reader \ import open_multifile_dataset @@ -237,7 +238,7 @@ def run(self): # {{{ if not obsRemapperBuilt: seasonalClimatology.load() seasonalClimatology.close() - seasonalClimatology.to_netcdf(climatologyFileName) + write_netcdf(seasonalClimatology, climatologyFileName) # make the remapper for the climatology obsDescriptor = LatLonGridDescriptor() obsDescriptor.read(fileName=climatologyFileName, diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index c15364722..3306e6d92 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -19,7 +19,9 @@ from ..timekeeping.utility import days_to_datetime -from ..io.utility import build_config_full_path, make_directories, fingerprint_generator +from ..io.utility import build_config_full_path, make_directories, \ + fingerprint_generator +from ..io import write_netcdf from ..interpolation import Remapper from ..grid import LatLonGridDescriptor, ProjectionGridDescriptor @@ -679,7 +681,7 @@ def remap_and_write_climatology(config, climatologyDataSet, else: if useNcremap: if not os.path.exists(climatologyFileName): - climatologyDataSet.to_netcdf(climatologyFileName) + write_netcdf(climatologyDataSet, climatologyFileName) remapper.remap_file(inFileName=climatologyFileName, outFileName=regriddedFileName, overwrite=True) @@ -690,7 +692,7 @@ def remap_and_write_climatology(config, climatologyDataSet, remappedClimatology = remapper.remap(climatologyDataSet, renormalizationThreshold) - remappedClimatology.to_netcdf(regriddedFileName) + write_netcdf(remappedClimatology, regriddedFileName) return remappedClimatology # }}} @@ -882,7 +884,7 @@ def _cache_individual_climatologies(ds, cacheInfo, printProgress, climatology.attrs['totalMonths'] = monthCount climatology.attrs['fingerprintClimo'] = fingerprint_generator() - climatology.to_netcdf(outputFileClimo) + write_netcdf(climatology, outputFileClimo) climatology.close() # }}} @@ -965,7 +967,7 @@ def _cache_aggregated_climatology(startYearClimo, endYearClimo, cachePrefix, climatology.attrs['totalMonths'] = totalMonths climatology.attrs['fingerprintClimo'] = fingerprint_generator() - climatology.to_netcdf(outputFileClimo) + write_netcdf(climatology, outputFileClimo) return climatology # }}} diff --git a/mpas_analysis/shared/interpolation/remapper.py b/mpas_analysis/shared/interpolation/remapper.py index f130f1b00..6f45eccad 100644 --- a/mpas_analysis/shared/interpolation/remapper.py +++ b/mpas_analysis/shared/interpolation/remapper.py @@ -184,8 +184,8 @@ def build_mapping_file(self, method='bilinear', # }}} - def remap_file(self, inFileName, outFileName, - variableList=None, overwrite=False): # {{{ + def remap_file(self, inFileName, outFileName, variableList=None, + overwrite=False, renormalize=None): # {{{ ''' Given a source file defining either an MPAS mesh or a lat-lon grid and a destination file or set of arrays defining a lat-lon grid, constructs @@ -209,6 +209,9 @@ def remap_file(self, inFileName, outFileName, exists. If `False`, and the destination file is already present, the function does nothing and returns immediately + renormalize : float, optional + A threshold to use to renormalize the data + Raises ------ OSError @@ -259,10 +262,19 @@ def remap_file(self, inFileName, outFileName, '--vrb=1', '-o', outFileName] + regridArgs = [] + + if renormalize is not None: + regridArgs.append('--renormalize={}'.format(renormalize)) + if isinstance(self.sourceDescriptor, LatLonGridDescriptor): - args.extend(['-R', '--rgr lat_nm={} --rgr lon_nm={}'.format( - self.sourceDescriptor.latVarName, - self.sourceDescriptor.lonVarName)]) + regridArgs.extend(['--rgr lat_nm={}'.format( + self.sourceDescriptor.latVarName), + '--rgr lon_nm={}'.format( + self.sourceDescriptor.lonVarName)]) + + if len(regridArgs) > 0: + args.extend(['-R', ' '.join(regridArgs)]) if isinstance(self.sourceDescriptor, MpasMeshDescriptor): # Note: using the -C (climatology) flag for now because otherwise @@ -273,6 +285,7 @@ def remap_file(self, inFileName, outFileName, if variableList is not None: args.extend(['-v', ','.join(variableList)]) + # make sure any output is flushed before we add output from the # subprocess sys.stdout.flush() diff --git a/mpas_analysis/shared/io/__init__.py b/mpas_analysis/shared/io/__init__.py index 0571c93b9..72eb702eb 100644 --- a/mpas_analysis/shared/io/__init__.py +++ b/mpas_analysis/shared/io/__init__.py @@ -1,2 +1,3 @@ from .namelist_streams_interface import NameList, StreamsFile from .utility import paths +from .write_netcdf import write_netcdf \ No newline at end of file diff --git a/mpas_analysis/shared/io/write_netcdf.py b/mpas_analysis/shared/io/write_netcdf.py new file mode 100644 index 000000000..d56401615 --- /dev/null +++ b/mpas_analysis/shared/io/write_netcdf.py @@ -0,0 +1,54 @@ +''' +Functions for writing data sets + +Functions +--------- +write_netcdf - write an xarray data set to a NetCDF file using finite fill + values + +Author +------ +Xylar Asay-Davis + +''' + +import netCDF4 +import numpy + + +def write_netcdf(ds, fileName, fillValues=netCDF4.default_fillvals): # {{{ + ''' + Write an xarray data set to a NetCDF file using finite fill values + + Parameters + ---------- + ds : xarray.Dataset object + The xarray data set to be written to a file + + fileName : str + The fileName to write the data set to + + fillValues : dict + A dictionary of fill values for each supported data type. By default, + this is the dictionary used by the netCDF4 package. Key entries should + be of the form 'f8' (for float64), 'i4' (for int32), etc. + + Author + ------ + Xylar Asay-Davis + + ''' + encodingDict = {} + for variableName in ds: + dtype = ds[variableName].dtype + for fillType in fillValues: + if dtype == numpy.dtype(fillType): + encodingDict[variableName] = \ + {'_FillValue': fillValues[fillType]} + break + + ds.to_netcdf(fileName, encoding=encodingDict) + + # }}} + +# vim: ai ts=4 sts=4 et sw=4 ft=python From 7d6062fbf8733345235b79edf2c54b2d323c62a3 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sat, 12 Aug 2017 18:51:28 +0200 Subject: [PATCH 07/47] Suppress non-error output from ESMF_RegridWeightGen --- mpas_analysis/shared/interpolation/remapper.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mpas_analysis/shared/interpolation/remapper.py b/mpas_analysis/shared/interpolation/remapper.py index 6f45eccad..ef5b87baa 100644 --- a/mpas_analysis/shared/interpolation/remapper.py +++ b/mpas_analysis/shared/interpolation/remapper.py @@ -176,7 +176,11 @@ def build_mapping_file(self, method='bilinear', # subprocess sys.stdout.flush() sys.stderr.flush() - subprocess.check_call(args) + + # throw out the standard output from ESMF_RegridWeightGen, as it's + # rather verbose but keep stderr + DEVNULL = open(os.devnull, 'wb') + subprocess.check_call(args, stdout=DEVNULL) # remove the temporary SCRIP files os.remove(self.sourceDescriptor.scripFileName) From f98ab42e420b0669e5862698275722e1155975da Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 12:55:36 +0200 Subject: [PATCH 08/47] Rename regrid to remap everywhere for consistency --- config.default | 36 +++++------ mpas_analysis/ocean/climatology_map.py | 16 ++--- mpas_analysis/sea_ice/climatology_map.py | 40 ++++++------ .../shared/climatology/climatology.py | 62 +++++++++---------- .../shared/interpolation/remapper.py | 4 +- mpas_analysis/shared/plot/plotting.py | 2 +- mpas_analysis/test/test_analysis_task.py | 8 +-- mpas_analysis/test/test_climatology.py | 20 +++--- 8 files changed, 90 insertions(+), 98 deletions(-) diff --git a/config.default b/config.default index 5005b627d..85e752e2f 100644 --- a/config.default +++ b/config.default @@ -99,9 +99,10 @@ scratchSubdirectory = scratch plotsSubdirectory = plots logsSubdirectory = logs mpasClimatologySubdirectory = clim/mpas -mpasRegriddedClimSubdirectory = clim/mpas/regridded +mpasRemappedClimSubdirectory = clim/mpas/remapped mappingSubdirectory = mapping timeSeriesSubdirectory = timeseries +timeCacheSubdirectory = timecache # a list of analyses to generate. Valid names are: # 'timeSeriesOHC', 'timeSeriesSST', 'climatologyMapSST', @@ -153,9 +154,6 @@ comparisonLonResolution = 0.5 # the interpolation method # mpasMappingFile = /path/to/mapping/file -# overwrite files when building climatologies? -overwriteMpasClimatology = False - # interpolation order for model and observation results. Likely values are # 'bilinear', 'neareststod' (nearest neighbor) or 'conserve' mpasInterpolationMethod = bilinear @@ -230,14 +228,11 @@ interpolationMethod = bilinear # The directories where observation climatologies will be stored if they need # to be computed. If a relative path is supplied, it is relative to the output # base directory. If an absolute path is supplied, this should point to -# cached climatology files on the desired comparison grid, in which case -# overwriteObsClimatology should be False. If cached regridded files are -# supplied, there is no need to provide cached files before regridding. +# cached climatology files on the desired comparison grid. If cached remapped +# files are supplied, there is no need to provide cached files before +# remapping. climatologySubdirectory = clim/obs -regriddedClimSubdirectory = clim/obs/regridded - -# overwrite files when building climatologies? -overwriteObsClimatology = False +remappedClimSubdirectory = clim/obs/remapped [oceanReference] ## options related to ocean reference run with which the results will be @@ -290,14 +285,11 @@ interpolationMethod = bilinear # The directories where observation climatologies will be stored if they need # to be computed. If a relative path is supplied, it is relative to the output # base directory. If an absolute path is supplied, this should point to -# cached climatology files on the desired comparison grid, in which case -# overwriteObsClimatology should be False. If cached regridded files are -# supplied, there is no need to provide cached files before regridding. +# cached climatology files on the desired comparison grid. If cached remapped +# files are supplied, there is no need to provide cached files before +# remapping. climatologySubdirectory = clim/obs -regriddedClimSubdirectory = clim/obs/regridded - -# overwrite files when building climatologies? -overwriteObsClimatology = False +remappedClimSubdirectory = clim/obs/remapped [seaIceReference] ## options related to sea ice reference run with which the results will be @@ -450,7 +442,7 @@ titleFontSize = 18 polarPlot = False [climatologyMapSST] -## options related to plotting horizontally regridded climatologies of +## options related to plotting horizontally remapped climatologies of ## sea surface temperature (SST) against reference model results and ## observations @@ -473,7 +465,7 @@ colorbarLevelsDifference = [-5, -3, -2, -1, 0, 1, 2, 3, 5] comparisonTimes = ['JFM', 'JAS', 'ANN'] [climatologyMapSSS] -## options related to plotting horizontally regridded climatologies of +## options related to plotting horizontally remapped climatologies of ## sea surface salinity (SSS) against reference model results and observations # colormap for model/observations @@ -495,7 +487,7 @@ colorbarLevelsDifference = [-3, -2, -1, -0.5, 0, 0.5, 1, 2, 3] comparisonTimes = ['JFM', 'JAS', 'ANN'] [climatologyMapMLD] -## options related to plotting horizontally regridded climatologies of +## options related to plotting horizontally remapped climatologies of ## mixed layer depth (MLD) against reference model results and observations # colormap for model/observations @@ -517,7 +509,7 @@ colorbarLevelsDifference = [-150, -80, -30, -10, 0, 10, 30, 80, 150] comparisonTimes = ['JFM', 'JAS', 'ANN'] [climatologyMapSeaIceConcThick] -## options related to plotting horizontally regridded climatologies of +## options related to plotting horizontally remapped climatologies of ## sea ice concentration and thickness against reference model results and ## observations diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 9f7d7bef7..913a5da6a 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -184,7 +184,7 @@ def run(self): # {{{ for months in outputTimes: monthValues = constants.monthDictionary[months] - (climatologyFileName, climatologyPrefix, regriddedFileName) = \ + (climatologyFileName, climatologyPrefix, remappedFileName) = \ get_mpas_climatology_file_names( config=config, fieldName=fieldName, @@ -193,7 +193,7 @@ def run(self): # {{{ comparisonGridName=comparisonDescriptor.meshName) if (overwriteMpasClimatology or - not os.path.exists(regriddedFileName)): + not os.path.exists(remappedFileName)): seasonalClimatology = cache_climatologies( ds, monthValues, config, climatologyPrefix, calendar, printProgress=True) @@ -207,11 +207,11 @@ def run(self): # {{{ remappedClimatology = remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, - regriddedFileName, mpasRemapper) + remappedFileName, mpasRemapper) else: - remappedClimatology = xr.open_dataset(regriddedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) modelOutput = remappedClimatology[fieldName].values lon = remappedClimatology['lon'].values @@ -220,13 +220,13 @@ def run(self): # {{{ lonTarg, latTarg = np.meshgrid(lon, lat) # now the observations - (climatologyFileName, regriddedFileName) = \ + (climatologyFileName, remappedFileName) = \ get_observation_climatology_file_names( config=config, fieldName=fieldName, monthNames=months, componentName='ocean', remapper=origObsRemapper) if (overwriteObsClimatology or - not os.path.exists(regriddedFileName)): + not os.path.exists(remappedFileName)): if dsObs is None: # load the observations the first time @@ -265,11 +265,11 @@ def run(self): # {{{ remappedClimatology = \ remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, - regriddedFileName, obsRemapper) + remappedFileName, obsRemapper) else: - remappedClimatology = xr.open_dataset(regriddedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) observations = remappedClimatology[self.obsFieldName].values bias = modelOutput - observations diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index c91ee6c23..5eebd3cf1 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -189,7 +189,7 @@ def _compute_and_plot_concentration(self): 'JJA': ('SH', 'Summer')} obsFileNames = {} - regriddedObsFileNames = {} + remappedObsFileNames = {} obsRemappers = {} comparisonDescriptor = self.mpasRemapper.destinationDescriptor @@ -223,16 +223,16 @@ def _compute_and_plot_concentration(self): raise OSError('Obs file {} not found.'.format( obsFileName)) - (climatologyFileName, regriddedFileName) = \ + (climatologyFileName, remappedFileName) = \ get_observation_climatology_file_names( config=config, fieldName=obsFieldName, monthNames=months, componentName=self.componentName, remapper=obsRemapper) obsFileNames[key] = obsFileName - regriddedObsFileNames[key] = regriddedFileName + remappedObsFileNames[key] = remappedFileName - if not os.path.exists(regriddedFileName): + if not os.path.exists(remappedFileName): buildObsClimatologies = True for months in hemisphereSeasons: @@ -245,7 +245,7 @@ def _compute_and_plot_concentration(self): mpasMeshName = self.mpasRemapper.sourceDescriptor.meshName comparisonGridName = \ self.mpasRemapper.destinationDescriptor.meshName - (climatologyFileName, climatologyPrefix, regriddedFileName) = \ + (climatologyFileName, climatologyPrefix, remappedFileName) = \ get_mpas_climatology_file_names( config=config, fieldName=climFieldName, @@ -254,7 +254,7 @@ def _compute_and_plot_concentration(self): comparisonGridName=comparisonGridName) if (overwriteMpasClimatology or - not os.path.exists(regriddedFileName)): + not os.path.exists(remappedFileName)): seasonalClimatology = cache_climatologies( ds, monthValues, config, climatologyPrefix, calendar, printProgress=True) @@ -267,11 +267,11 @@ def _compute_and_plot_concentration(self): remappedClimatology = remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, - regriddedFileName, self.mpasRemapper) + remappedFileName, self.mpasRemapper) else: - remappedClimatology = xr.open_dataset(regriddedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) iceConcentration = remappedClimatology[field].values lon = remappedClimatology['lon'].values @@ -305,7 +305,7 @@ def _compute_and_plot_concentration(self): obsFieldName = 'AICE' key = (months, obsName) - regriddedFileName = regriddedObsFileNames[key] + remappedFileName = remappedObsFileNames[key] if buildObsClimatologies: obsFileName = obsFileNames[key] @@ -314,7 +314,7 @@ def _compute_and_plot_concentration(self): remappedClimatology = remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, - regriddedFileName, obsRemappers[key]) + remappedFileName, obsRemappers[key]) obsIceConcentration = remappedClimatology[obsFieldName].values @@ -376,12 +376,12 @@ def _compute_and_plot_thickness(self): 'seaIceObservations', 'overwriteObsClimatology', False) obsFileNames = {} - regriddedObsFileNames = {} + remappedObsFileNames = {} obsRemappers = {} comparisonDescriptor = self.mpasRemapper.destinationDescriptor - # build a list of regridded observations files + # build a list of remapped observations files buildObsClimatologies = overwriteObsClimatology for months in ['FM', 'ON']: climFieldName = 'iceThickness' @@ -408,16 +408,16 @@ def _compute_and_plot_thickness(self): 'interpolationMethod')) obsRemappers[key] = obsRemapper - (climatologyFileName, regriddedFileName) = \ + (climatologyFileName, remappedFileName) = \ get_observation_climatology_file_names( config=config, fieldName=obsFieldName, monthNames=months, componentName=self.componentName, remapper=obsRemapper) obsFileNames[key] = obsFileName - regriddedObsFileNames[key] = regriddedFileName + remappedObsFileNames[key] = remappedFileName - if not os.path.exists(regriddedFileName): + if not os.path.exists(remappedFileName): buildObsClimatologies = True for months in ['FM', 'ON']: @@ -429,7 +429,7 @@ def _compute_and_plot_thickness(self): mpasMeshName = self.mpasRemapper.sourceDescriptor.meshName comparisonGridName = \ self.mpasRemapper.destinationDescriptor.meshName - (climatologyFileName, climatologyPrefix, regriddedFileName) = \ + (climatologyFileName, climatologyPrefix, remappedFileName) = \ get_mpas_climatology_file_names( config=config, fieldName=climFieldName, @@ -451,11 +451,11 @@ def _compute_and_plot_thickness(self): remappedClimatology = remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, - regriddedFileName, self.mpasRemapper) + remappedFileName, self.mpasRemapper) else: - remappedClimatology = xr.open_dataset(regriddedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) iceThickness = remappedClimatology[field].values iceThickness = ma.masked_values(iceThickness, 0) @@ -485,7 +485,7 @@ def _compute_and_plot_thickness(self): # now the observations key = (months, hemisphere) - regriddedFileName = regriddedObsFileNames[key] + remappedFileName = remappedObsFileNames[key] if buildObsClimatologies: obsFileName = obsFileNames[key] @@ -494,7 +494,7 @@ def _compute_and_plot_thickness(self): remappedClimatology = remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, - regriddedFileName, obsRemappers[key]) + remappedFileName, obsRemappers[key]) obsIceThickness = remappedClimatology[obsFieldName].values diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index 3306e6d92..e802ed01f 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -156,7 +156,7 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, """ Given config options, the name of a field and a string identifying the months in a seasonal climatology, returns the full path for MPAS - climatology files before and after regridding. + climatology files before and after remapping. Parameters ---------- @@ -180,15 +180,15 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, ------- climatologyFileName : str The absolute path to a file where the climatology should be stored - before regridding. + before remapping. climatologyPrefix : str The prfix including absolute path for climatology cache files before - regridding. + remapping. - regriddedFileName : str + remappedFileName : str The absolute path to a file where the climatology should be stored - after regridding if ``comparisonGridName`` is supplied + after remapping if ``comparisonGridName`` is supplied Authors ------- @@ -217,17 +217,17 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, if comparisonGridName is None: return (climatologyFileName, climatologyPrefix) else: - regriddedDirectory = build_config_full_path( - config, 'output', 'mpasRegriddedClimSubdirectory') + remappedDirectory = build_config_full_path( + config, 'output', 'mpasRemappedClimSubdirectory') - make_directories(regriddedDirectory) + make_directories(remappedDirectory) - regriddedFileName = '{}/{}_{}_to_{}_{}_{}.nc'.format( - regriddedDirectory, fieldName, mpasMeshName, + remappedFileName = '{}/{}_{}_to_{}_{}_{}.nc'.format( + remappedDirectory, fieldName, mpasMeshName, comparisonGridName, monthNames, fileSuffix) return (climatologyFileName, climatologyPrefix, - regriddedFileName) + remappedFileName) # }}} @@ -237,7 +237,7 @@ def get_observation_climatology_file_names(config, fieldName, monthNames, """ Given config options, the name of a field and a string identifying the months in a seasonal climatology, returns the full path for observation - climatology files before and after regridding. + climatology files before and after remapping. Parameters ---------- @@ -259,11 +259,11 @@ def get_observation_climatology_file_names(config, fieldName, monthNames, ------- climatologyFileName : str The absolute path to a file where the climatology should be stored - before regridding. + before remapping. - regriddedFileName : str + remappedFileName : str The absolute path to a file where the climatology should be stored - after regridding. + after remapping. Authors ------- @@ -281,9 +281,9 @@ def get_observation_climatology_file_names(config, fieldName, monthNames, relativePathOption='climatologySubdirectory', relativePathSection=obsSection) - regriddedDirectory = build_config_full_path( + remappedDirectory = build_config_full_path( config=config, section='output', - relativePathOption='regriddedClimSubdirectory', + relativePathOption='remappedClimSubdirectory', relativePathSection=obsSection) obsGridName = remapper.sourceDescriptor.meshName @@ -291,17 +291,17 @@ def get_observation_climatology_file_names(config, fieldName, monthNames, climatologyFileName = '{}/{}_{}_{}.nc'.format( climatologyDirectory, fieldName, obsGridName, monthNames) - regriddedFileName = '{}/{}_{}_to_{}_{}.nc'.format( - regriddedDirectory, fieldName, obsGridName, comparisonGridName, + remappedFileName = '{}/{}_{}_to_{}_{}.nc'.format( + remappedDirectory, fieldName, obsGridName, comparisonGridName, monthNames) make_directories(climatologyDirectory) if not _matches_comparison(remapper.sourceDescriptor, remapper.destinationDescriptor): - make_directories(regriddedDirectory) + make_directories(remappedDirectory) - return (climatologyFileName, regriddedFileName) # }}} + return (climatologyFileName, remappedFileName) # }}} def compute_monthly_climatology(ds, calendar=None, maskVaries=True): # {{{ @@ -625,17 +625,17 @@ def add_years_months_days_in_month(ds, calendar=None): # {{{ def remap_and_write_climatology(config, climatologyDataSet, - climatologyFileName, regriddedFileName, + climatologyFileName, remappedFileName, remapper): # {{{ """ Given a field in a climatology data set, use the ``remapper`` to regrid horizontal dimensions of all fields, write the results to an output file, - and return the regridded data set. + and return the remapped data set. - Note that ``climatologyFileName`` and ``regriddedFileName`` will be + Note that ``climatologyFileName`` and ``remappedFileName`` will be overwritten if they exist, so if this behavior is not desired, the calling code should skip this call if the files exist and simply load the contents - of ``regriddedFileName``. + of ``remappedFileName``. Parameters ---------- @@ -650,10 +650,10 @@ def remap_and_write_climatology(config, climatologyDataSet, climatologyFileName : str The name of the output file to which the data set should be written - before regridding (if using ncremap). + before remapping (if using ncremap). - regriddedFileName : str - The name of the output file to which the regridded data set should + remappedFileName : str + The name of the output file to which the remapped data set should be written. remapper : ``Remapper`` object @@ -683,16 +683,16 @@ def remap_and_write_climatology(config, climatologyDataSet, if not os.path.exists(climatologyFileName): write_netcdf(climatologyDataSet, climatologyFileName) remapper.remap_file(inFileName=climatologyFileName, - outFileName=regriddedFileName, + outFileName=remappedFileName, overwrite=True) - remappedClimatology = xr.open_dataset(regriddedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) else: renormalizationThreshold = config.getfloat( 'climatology', 'renormalizationThreshold') remappedClimatology = remapper.remap(climatologyDataSet, renormalizationThreshold) - write_netcdf(remappedClimatology, regriddedFileName) + write_netcdf(remappedClimatology, remappedFileName) return remappedClimatology # }}} diff --git a/mpas_analysis/shared/interpolation/remapper.py b/mpas_analysis/shared/interpolation/remapper.py index ef5b87baa..140645883 100644 --- a/mpas_analysis/shared/interpolation/remapper.py +++ b/mpas_analysis/shared/interpolation/remapper.py @@ -456,7 +456,7 @@ def _check_drop(self, dataArray): # {{{ def _remap_data_array(self, dataArray, renormalizationThreshold): # {{{ ''' - Regrids a single xarray data array + Remap a single xarray data array Author ------ @@ -531,7 +531,7 @@ def _remap_data_array(self, dataArray, renormalizationThreshold): # {{{ def _remap_numpy_array(self, inField, remapAxes, renormalizationThreshold): # {{{ ''' - Regrids a single numpy array + Remap a single numpy array Author ------ diff --git a/mpas_analysis/shared/plot/plotting.py b/mpas_analysis/shared/plot/plotting.py index 5914348a1..9e029e9cd 100644 --- a/mpas_analysis/shared/plot/plotting.py +++ b/mpas_analysis/shared/plot/plotting.py @@ -1,7 +1,7 @@ """ Plotting utilities, including routines for plotting: * time series (and comparing with reference data sets) - * regridded horizontal fields (and comparing with reference data sets) + * remapped horizontal fields (and comparing with reference data sets) * vertical sections on native grid * NINO34 time series and spectra diff --git a/mpas_analysis/test/test_analysis_task.py b/mpas_analysis/test/test_analysis_task.py index 2a823329a..71524b1cd 100644 --- a/mpas_analysis/test/test_analysis_task.py +++ b/mpas_analysis/test/test_analysis_task.py @@ -31,13 +31,13 @@ def doTest(generate, expectedResults): # Comments from config.template about how generate works: # # a list of analyses to generate. Valid names are: - # 'timeSeriesOHC', 'timeSeriesSST', 'regriddedSST', - # 'regriddedSSS', 'regriddedMLD', 'timeSeriesSeaIceAreaVol', - # 'regriddedSeaIceConcThick' + # 'timeSeriesOHC', 'timeSeriesSST', 'climatologyMapSST', + # 'climatologyMapSSS', 'climatologyMapMLD', 'timeSeriesSeaIceAreaVol', + # 'climatologyMapSeaIceConcThick' # the following shortcuts exist: # 'all' -- all analyses will be run # 'all_timeSeries' -- all time-series analyses will be run - # 'all_regriddedHorizontal' -- all analyses involving regridded + # 'all_horizontalMap' -- all analyses involving remapped # horizontal fields will be run # 'all_ocean' -- all ocean analyses will be run # 'all_seaIce' -- all sea-ice analyses will be run diff --git a/mpas_analysis/test/test_climatology.py b/mpas_analysis/test/test_climatology.py index 55754d567..c1bcd6628 100644 --- a/mpas_analysis/test/test_climatology.py +++ b/mpas_analysis/test/test_climatology.py @@ -50,8 +50,8 @@ def setup_config(self, autocloseFileLimitFraction=0.5, config.set('output', 'baseDirectory', self.test_dir) config.set('output', 'mappingSubdirectory', '.') config.set('output', 'mpasClimatologySubdirectory', 'clim/mpas') - config.set('output', 'mpasRegriddedClimSubdirectory', - 'clim/mpas/regrid') + config.set('output', 'mpasRemappedClimSubdirectory', + 'clim/mpas/remap') config.add_section('climatology') config.set('climatology', 'startYear', '2') @@ -66,8 +66,8 @@ def setup_config(self, autocloseFileLimitFraction=0.5, config.add_section('oceanObservations') config.set('oceanObservations', 'interpolationMethod', 'bilinear') config.set('oceanObservations', 'climatologySubdirectory', 'clim/obs') - config.set('oceanObservations', 'regriddedClimSubdirectory', - 'clim/obs/regrid') + config.set('oceanObservations', 'remappedClimSubdirectory', + 'clim/obs/remap') return config @@ -191,7 +191,7 @@ def test_get_mpas_climatology_file_names(self): remapper = self.setup_mpas_remapper(config) - (climatologyFileName, climatologyPrefix, regriddedFileName) = \ + (climatologyFileName, climatologyPrefix, remappedFileName) = \ get_mpas_climatology_file_names( config, fieldName, monthNames, remapper.sourceDescriptor.meshName, @@ -204,10 +204,10 @@ def test_get_mpas_climatology_file_names(self): 'JFM'.format(self.test_dir) self.assertEqual(climatologyPrefix, expectedClimatologyPrefix) - expectedRegriddedFileName = '{}/clim/mpas/regrid/sst_QU240_to_' \ + expectedRemappedFileName = '{}/clim/mpas/remap/sst_QU240_to_' \ '0.5x0.5degree_JFM_' \ 'year0002.nc'.format(self.test_dir) - self.assertEqual(regriddedFileName, expectedRegriddedFileName) + self.assertEqual(remappedFileName, expectedRemappedFileName) def test_get_observation_climatology_file_names(self): config = self.setup_config() @@ -217,17 +217,17 @@ def test_get_observation_climatology_file_names(self): remapper = self.setup_obs_remapper(config, fieldName) - (climatologyFileName, regriddedFileName) = \ + (climatologyFileName, remappedFileName) = \ get_observation_climatology_file_names( config, fieldName, monthNames, componentName, remapper) expectedClimatologyFileName = '{}/clim/obs/sst_1.0x1.0degree_' \ 'JFM.nc'.format(self.test_dir) self.assertEqual(climatologyFileName, expectedClimatologyFileName) - expectedRegriddedFileName = '{}/clim/obs/regrid/sst_1.0x1.0degree_' \ + expectedRemappedFileName = '{}/clim/obs/remap/sst_1.0x1.0degree_' \ 'to_0.5x0.5degree_' \ 'JFM.nc'.format(self.test_dir) - self.assertEqual(regriddedFileName, expectedRegriddedFileName) + self.assertEqual(remappedFileName, expectedRemappedFileName) def test_compute_climatology(self): config = self.setup_config() From 63d0b30ff831e1c7635f51c1118186266f033844 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 13:47:36 +0200 Subject: [PATCH 09/47] Remove references to unused overwrite config options Climatologies are never overwritten, and should be deleted manually instead. --- mpas_analysis/ocean/climatology_map.py | 12 ++---------- mpas_analysis/sea_ice/climatology_map.py | 20 ++++---------------- mpas_analysis/test/test_climatology.py | 2 -- 3 files changed, 6 insertions(+), 28 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 913a5da6a..8be5dadcb 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -116,12 +116,6 @@ def run(self): # {{{ mainRunName = config.get('runs', 'mainRunName') - overwriteMpasClimatology = config.getWithDefault( - 'climatology', 'overwriteMpasClimatology', False) - - overwriteObsClimatology = config.getWithDefault( - 'oceanObservations', 'overwriteObsClimatology', False) - try: restartFileName = self.runStreams.readpath('restart')[0] except ValueError: @@ -192,8 +186,7 @@ def run(self): # {{{ mpasMeshName=mpasDescriptor.meshName, comparisonGridName=comparisonDescriptor.meshName) - if (overwriteMpasClimatology or - not os.path.exists(remappedFileName)): + if not os.path.exists(remappedFileName): seasonalClimatology = cache_climatologies( ds, monthValues, config, climatologyPrefix, calendar, printProgress=True) @@ -225,8 +218,7 @@ def run(self): # {{{ config=config, fieldName=fieldName, monthNames=months, componentName='ocean', remapper=origObsRemapper) - if (overwriteObsClimatology or - not os.path.exists(remappedFileName)): + if not os.path.exists(remappedFileName): if dsObs is None: # load the observations the first time diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index 5eebd3cf1..0fa6639d2 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -175,11 +175,6 @@ def _compute_and_plot_concentration(self): mainRunName = config.get('runs', 'mainRunName') startYear = config.getint('climatology', 'startYear') endYear = config.getint('climatology', 'endYear') - overwriteMpasClimatology = config.getWithDefault( - 'climatology', 'overwriteMpasClimatology', False) - - overwriteObsClimatology = config.getWithDefault( - 'seaIceObservations', 'overwriteObsClimatology', False) subtitle = 'Ice concentration' @@ -194,7 +189,7 @@ def _compute_and_plot_concentration(self): comparisonDescriptor = self.mpasRemapper.destinationDescriptor - buildObsClimatologies = overwriteObsClimatology + buildObsClimatologies = False for months in hemisphereSeasons: hemisphere, season = hemisphereSeasons[months] climFieldName = 'iceConcentration' @@ -253,8 +248,7 @@ def _compute_and_plot_concentration(self): mpasMeshName=mpasMeshName, comparisonGridName=comparisonGridName) - if (overwriteMpasClimatology or - not os.path.exists(remappedFileName)): + if not os.path.exists(remappedFileName): seasonalClimatology = cache_climatologies( ds, monthValues, config, climatologyPrefix, calendar, printProgress=True) @@ -369,11 +363,6 @@ def _compute_and_plot_thickness(self): mainRunName = config.get('runs', 'mainRunName') startYear = config.getint('climatology', 'startYear') endYear = config.getint('climatology', 'endYear') - overwriteMpasClimatology = config.getWithDefault( - 'climatology', 'overwriteMpasClimatology', False) - - overwriteObsClimatology = config.getWithDefault( - 'seaIceObservations', 'overwriteObsClimatology', False) obsFileNames = {} remappedObsFileNames = {} @@ -382,7 +371,7 @@ def _compute_and_plot_thickness(self): comparisonDescriptor = self.mpasRemapper.destinationDescriptor # build a list of remapped observations files - buildObsClimatologies = overwriteObsClimatology + buildObsClimatologies = False for months in ['FM', 'ON']: climFieldName = 'iceThickness' for hemisphere in ['NH', 'SH']: @@ -437,8 +426,7 @@ def _compute_and_plot_thickness(self): mpasMeshName=mpasMeshName, comparisonGridName=comparisonGridName) - if (overwriteMpasClimatology or - not os.path.exists(climatologyFileName)): + if not os.path.exists(climatologyFileName): seasonalClimatology = cache_climatologies( ds, monthValues, config, climatologyPrefix, calendar, printProgress=True) diff --git a/mpas_analysis/test/test_climatology.py b/mpas_analysis/test/test_climatology.py index c1bcd6628..a96de0ae1 100644 --- a/mpas_analysis/test/test_climatology.py +++ b/mpas_analysis/test/test_climatology.py @@ -59,8 +59,6 @@ def setup_config(self, autocloseFileLimitFraction=0.5, config.set('climatology', 'comparisonLatResolution', '0.5') config.set('climatology', 'comparisonLonResolution', '0.5') - config.set('climatology', 'overwriteMapping', 'False') - config.set('climatology', 'overwriteMpasClimatology', 'False') config.set('climatology', 'mpasInterpolationMethod', 'bilinear') config.add_section('oceanObservations') From 91cda0613934c2e0e4c7dcba69ef001d99fb18d3 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 14:01:42 +0200 Subject: [PATCH 10/47] Remove "Last Modified" from all docstrings We decided that it was difficult to keep this flag updated and that, in most cases, this information is avialable through GitHub. --- .../configuration/MpasAnalysisConfigParser.py | 3 - mpas_analysis/ocean/climatology_map.py | 4 - .../shared/climatology/climatology.py | 52 ------------- mpas_analysis/shared/grid/grid.py | 76 ------------------- .../shared/interpolation/remapper.py | 36 --------- mpas_analysis/shared/io/utility.py | 13 +--- mpas_analysis/shared/plot/plotting.py | 49 ------------ .../shared/time_series/time_series.py | 9 --- .../shared/timekeeping/MpasRelativeDelta.py | 4 - mpas_analysis/shared/timekeeping/utility.py | 36 --------- .../ocean_maps.py | 4 - mpas_analysis/test/test_timekeeping.py | 4 - run_analysis.py | 5 -- 13 files changed, 2 insertions(+), 293 deletions(-) diff --git a/mpas_analysis/configuration/MpasAnalysisConfigParser.py b/mpas_analysis/configuration/MpasAnalysisConfigParser.py index e2c1b6dfb..5cb3e84c8 100644 --- a/mpas_analysis/configuration/MpasAnalysisConfigParser.py +++ b/mpas_analysis/configuration/MpasAnalysisConfigParser.py @@ -5,7 +5,6 @@ that are lists, tuples, dicts, etc (`getExpression(section, option)`). Author: Xylar Asay-Davis, Phillip J. Wolfram -Last Modified: 02/27/2017 """ import numbers @@ -29,7 +28,6 @@ def getWithDefault(self, section, option, default): is present in the config file. Author: Xylar Asay-Davis - Last Modified: 02/27/2017 """ if self.has_section(section): if self.has_option(section, option): @@ -66,7 +64,6 @@ def getExpression(self, section, option, elementType=None, of having selected numpy and / or np functionality available. Author: Xylar Asay-Davis, Phillip J. Wolfram - Last Modified: 04/10/2017 """ if self.has_section(section): if self.has_option(section, option): diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 8be5dadcb..30ccda2fc 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -93,10 +93,6 @@ def run(self): # {{{ Authors ------- Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani - - Last Modified - ------------- - 03/16/2017 """ print "\nPlotting 2-d maps of {} climatologies...".format( diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index e802ed01f..fd8313bf3 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -4,10 +4,6 @@ Authors ------- Xylar Asay-Davis - -Last Modified -------------- -04/13/2017 """ import xarray as xr @@ -45,10 +41,6 @@ def get_lat_lon_comparison_descriptor(config): # {{{ Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 """ climSection = 'climatology' @@ -112,10 +104,6 @@ def get_remapper(config, sourceDescriptor, comparisonDescriptor, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 """ if config.has_option(mappingFileSection, mappingFileOption): @@ -268,10 +256,6 @@ def get_observation_climatology_file_names(config, fieldName, monthNames, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 03/03/2017 """ obsSection = '{}Observations'.format(componentName) @@ -339,10 +323,6 @@ def compute_monthly_climatology(ds, calendar=None, maskVaries=True): # {{{ Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/08/2017 """ def compute_one_month_climatology(ds): @@ -397,10 +377,6 @@ def compute_climatology(ds, monthValues, calendar=None, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/08/2017 """ ds = add_years_months_days_in_month(ds, calendar) @@ -463,10 +439,6 @@ def cache_climatologies(ds, monthValues, config, cachePrefix, calendar, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/11/2017 ''' startYearClimo = config.getint('climatology', 'startYear') endYearClimo = config.getint('climatology', 'endYear') @@ -581,10 +553,6 @@ def add_years_months_days_in_month(ds, calendar=None): # {{{ Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/08/2017 ''' if ('year' in ds.coords and 'month' in ds.coords and @@ -668,10 +636,6 @@ def remap_and_write_climatology(config, climatologyDataSet, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 """ useNcremap = config.getboolean('climatology', 'useNcremap') @@ -705,10 +669,6 @@ def _compute_masked_mean(ds, maskVaries): # {{{ Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/08/2017 ''' def ds_to_weights(ds): # make an identical data set to ds but replacing all data arrays with @@ -791,10 +751,6 @@ def _setup_climatology_caching(ds, startYearClimo, endYearClimo, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/08/2017 ''' cacheInfo = [] @@ -858,10 +814,6 @@ def _cache_individual_climatologies(ds, cacheInfo, printProgress, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/19/2017 ''' for cacheIndex, info in enumerate(cacheInfo): @@ -899,10 +851,6 @@ def _cache_aggregated_climatology(startYearClimo, endYearClimo, cachePrefix, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/19/2017 ''' yearString, fileSuffix = _get_year_string(startYearClimo, endYearClimo) diff --git a/mpas_analysis/shared/grid/grid.py b/mpas_analysis/shared/grid/grid.py index 399c6c19e..01e055ee9 100644 --- a/mpas_analysis/shared/grid/grid.py +++ b/mpas_analysis/shared/grid/grid.py @@ -14,10 +14,6 @@ Author ------ Xylar Asay-Davis - -Last Modified -------------- -04/16/2017 ''' import netCDF4 @@ -34,10 +30,6 @@ class MeshDescriptor(object): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' def __init__(self): # {{{ @@ -49,10 +41,6 @@ def __init__(self): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' self.meshName = None # }}} @@ -70,10 +58,6 @@ def to_scrip(self, scripFileName): # {{{ Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 03/17/2017 ''' return # }}} @@ -88,10 +72,6 @@ class MpasMeshDescriptor(MeshDescriptor): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' def __init__(self, fileName, meshName=None): # {{{ @@ -112,10 +92,6 @@ def __init__(self, fileName, meshName=None): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' ds = xarray.open_dataset(fileName) @@ -153,10 +129,6 @@ def to_scrip(self, scripFileName): # {{{ Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' self.scripFileName = scripFileName @@ -222,10 +194,6 @@ class LatLonGridDescriptor(MeshDescriptor): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' def __init__(self): # {{{ ''' @@ -239,10 +207,6 @@ def __init__(self): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/05/2017 ''' self.regional = False self.meshName = None # }}} @@ -262,10 +226,6 @@ def read(self, fileName, latVarName='lat', lonVarName='lon'): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 03/17/2017 ''' ds = xarray.open_dataset(fileName) @@ -309,10 +269,6 @@ def create(self, latCorner, lonCorner, units='degrees'): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 03/17/2017 ''' self.latCorner = latCorner @@ -335,10 +291,6 @@ def to_scrip(self, scripFileName): # {{{ Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' self.scripFileName = scripFileName @@ -407,10 +359,6 @@ class ProjectionGridDescriptor(MeshDescriptor): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' def __init__(self, projection): # {{{ @@ -426,10 +374,6 @@ def __init__(self, projection): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/05/2017 ''' self.projection = projection self.latLonProjection = pyproj.Proj(proj='latlong', datum='WGS84') @@ -457,10 +401,6 @@ def read(self, fileName, meshName=None, xVarName='x', yVarName='y'): # {{{ Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' ds = xarray.open_dataset(fileName) @@ -508,10 +448,6 @@ def create(self, x, y, meshName): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 03/20/2017 ''' self.meshName = meshName @@ -538,10 +474,6 @@ def to_scrip(self, scripFileName): # {{{ Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' self.scripFileName = scripFileName @@ -594,10 +526,6 @@ def project_to_lat_lon(self, X, Y): # {{{ Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 03/20/2017 ''' Lon, Lat = pyproj.transform(self.projection, self.latLonProjection, @@ -659,10 +587,6 @@ def _create_scrip(outFile, grid_size, grid_corners, grid_rank, units, Authors ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/16/2017 ''' # Write to output file # Dimensions diff --git a/mpas_analysis/shared/interpolation/remapper.py b/mpas_analysis/shared/interpolation/remapper.py index 140645883..08cd7d1cf 100644 --- a/mpas_analysis/shared/interpolation/remapper.py +++ b/mpas_analysis/shared/interpolation/remapper.py @@ -11,10 +11,6 @@ Author ------ Xylar Asay-Davis - -Last Modified -------------- -04/13/2017 ''' import subprocess @@ -38,10 +34,6 @@ class Remapper(object): Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' def __init__(self, sourceDescriptor, destinationDescriptor, @@ -75,10 +67,6 @@ def __init__(self, sourceDescriptor, destinationDescriptor, Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' if not isinstance(sourceDescriptor, @@ -128,10 +116,6 @@ def build_mapping_file(self, method='bilinear', Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' if self.mappingFileName is None or \ @@ -228,10 +212,6 @@ def remap_file(self, inFileName, outFileName, variableList=None, Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' if self.mappingFileName is None: @@ -333,10 +313,6 @@ def remap(self, ds, renormalizationThreshold=None): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/13/2017 ''' if self.mappingFileName is None: @@ -386,10 +362,6 @@ def _load_mapping(self): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/06/2017 ''' if self.mappingLoaded: @@ -461,10 +433,6 @@ def _remap_data_array(self, dataArray, renormalizationThreshold): # {{{ Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/05/2017 ''' sourceDims = self.sourceDescriptor.dims @@ -536,10 +504,6 @@ def _remap_numpy_array(self, inField, remapAxes, Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 04/05/2017 ''' # permute the dimensions of inField so the axes to remap are first, diff --git a/mpas_analysis/shared/io/utility.py b/mpas_analysis/shared/io/utility.py index c36be1d90..c37e10979 100644 --- a/mpas_analysis/shared/io/utility.py +++ b/mpas_analysis/shared/io/utility.py @@ -2,8 +2,6 @@ IO utility functions Phillip J. Wolfram, Xylar Asay-Davis - -Last Modified: 03/23/2017 """ import glob @@ -18,7 +16,6 @@ def paths(*args): # {{{ Note, each expanded set of paths is sorted. Phillip J. Wolfram - 10/25/2016 """ paths = [] for aargs in args: @@ -29,13 +26,12 @@ def paths(*args): # {{{ def fingerprint_generator(size=12, chars=string.ascii_uppercase + string.digits): # {{{ """ - Returns a random string that can be used as a unique fingerprint + Returns a random string that can be used as a unique fingerprint Reference: http://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python - + Phillip J. Wolfram - 04/27/2017 """ return ''.join(random.choice(chars) for _ in range(size)) # }}} @@ -47,7 +43,6 @@ def make_directories(path): # {{{ Returns the path unchanged. Author: Xylar Asay-Davis - Last Modified: 02/02/2017 """ try: @@ -85,10 +80,6 @@ def build_config_full_path(config, section, relativePathOption, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 03/23/2017 """ if relativePathSection is None: relativePathSection = section diff --git a/mpas_analysis/shared/plot/plotting.py b/mpas_analysis/shared/plot/plotting.py index 9e029e9cd..910c4b150 100644 --- a/mpas_analysis/shared/plot/plotting.py +++ b/mpas_analysis/shared/plot/plotting.py @@ -8,10 +8,6 @@ Authors ------- Xylar Asay-Davis, Milena Veneziani, Luke Van Roekel - -Last Modified -------------- -04/07/2017 """ import matplotlib.pyplot as plt @@ -107,10 +103,6 @@ def nino34_spectra_plot(config, f, ninoSpectra, Author ------ Luke Van Roekel - - Last Modified - ------------- - 04/07/2017 """ fig = plt.figure(figsize=figsize, dpi=dpi) @@ -255,10 +247,6 @@ def nino34_timeseries_plot(config, nino34Index, nino34Obs, nino3430, title, Author ------ Luke Van Roekel - - Last Modified - ------------- - 04/07/2017 """ fig = plt.figure(figsize=figsize, dpi=dpi) @@ -336,10 +324,6 @@ def _plot_nino_timeseries(plt, ninoIndex, time, xlabel, ylabel, Author ------ Luke Van Roekel - - Last Modified - ------------- - 04/07/2017 ''' plt.title(panelTitle, y=1.06, **axis_font) y1 = ninoIndex @@ -412,10 +396,6 @@ def timeseries_analysis_plot(config, dsvalues, N, title, xlabel, ylabel, Authors ------- Xylar Asay-Davis, Milena Veneziani - - Last Modified - ------------- - 03/14/2017 """ plt.figure(figsize=figsize, dpi=dpi) @@ -504,10 +484,6 @@ def timeseries_analysis_plot_polar(config, dsvalues, N, title, Authors ------- Adrian K. Turner - - Last Modified - ------------- - 03/15/2017 """ plt.figure(figsize=figsize, dpi=dpi) @@ -649,10 +625,6 @@ def plot_polar_comparison( Authors ------- Xylar Asay-Davis, Milena Veneziani - - Last Modified - ------------- - 03/17/2017 """ # set up figure @@ -800,10 +772,6 @@ def plot_global_comparison( Authors ------- Xylar Asay-Davis, Milena Veneziani - - Last Modified - ------------- - 04/20/2017 """ # set up figure @@ -942,10 +910,6 @@ def plot_1D(config, xArrays, fieldArrays, errArrays, Authors ------- Mark Petersen, Milena Veneziani - - Last Modified - ------------- - 04/20/2017 """ # set up figure @@ -1081,10 +1045,6 @@ def plot_vertical_section( Authors ------- Milena Veneziani, Mark Petersen - - Last Modified - ------------- - 03/13/2017 """ # set up figure @@ -1159,10 +1119,6 @@ def setup_colormap(config, configSectionName, suffix=''): Authors ------- Xylar Asay-Davis, Milena Veneziani - - Last modified - ------------- - 03/17/2017 ''' colormap = plt.get_cmap(config.get(configSectionName, @@ -1203,10 +1159,6 @@ def _plot_size_y_axis(plt, xaxisValues, **data): Author ------ Luke Van Roekel - - Last modified - ------------- - 04/07/2017 ''' ax = plt.gca() @@ -1244,7 +1196,6 @@ def _plot_xtick_format(plt, calendar, minDays, maxDays, maxXTicks): Author ------ Xylar Asay-Davis - ''' ax = plt.gca() diff --git a/mpas_analysis/shared/time_series/time_series.py b/mpas_analysis/shared/time_series/time_series.py index a132419ad..3163abc6e 100644 --- a/mpas_analysis/shared/time_series/time_series.py +++ b/mpas_analysis/shared/time_series/time_series.py @@ -4,10 +4,6 @@ Authors ------- Xylar Asay-Davis - -Last Modified -------------- -04/08/2017 """ import xarray as xr @@ -70,11 +66,6 @@ def cache_time_series(timesInDataSet, timeSeriesCalcFunction, cacheFileName, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 04/08/2017 - ''' timesProcessed = numpy.zeros(len(timesInDataSet), bool) diff --git a/mpas_analysis/shared/timekeeping/MpasRelativeDelta.py b/mpas_analysis/shared/timekeeping/MpasRelativeDelta.py index 295b8e50e..ff1f1eb30 100644 --- a/mpas_analysis/shared/timekeeping/MpasRelativeDelta.py +++ b/mpas_analysis/shared/timekeeping/MpasRelativeDelta.py @@ -16,10 +16,6 @@ class MpasRelativeDelta(relativedelta): Author ------ Xylar Asay-Davis - - Last Modified - ------------- - 02/09/2017 """ def __init__(self, dt1=None, dt2=None, years=0, months=0, days=0, diff --git a/mpas_analysis/shared/timekeeping/utility.py b/mpas_analysis/shared/timekeeping/utility.py index 2f3c4d08c..27f2a1a07 100644 --- a/mpas_analysis/shared/timekeeping/utility.py +++ b/mpas_analysis/shared/timekeeping/utility.py @@ -4,10 +4,6 @@ Author ------ Xylar Asay-Davis - -Last Modified -------------- -02/11/2017 """ import datetime @@ -41,10 +37,6 @@ def get_simulation_start_time(streams): Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/11/2017 """ try: @@ -99,10 +91,6 @@ def string_to_datetime(dateString): # {{{ Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/04/2017 """ (year, month, day, hour, minute, second) = \ @@ -151,10 +139,6 @@ def string_to_relative_delta(dateString, calendar='gregorian'): # {{{ Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/04/2017 """ (years, months, days, hours, minutes, seconds) = \ @@ -214,10 +198,6 @@ def string_to_days_since_date(dateString, calendar='gregorian', Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/04/2017 """ isSingleString = isinstance(dateString, str) @@ -267,10 +247,6 @@ def days_to_datetime(days, calendar='gregorian', referenceDate='0001-01-01'): Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/04/2017 """ datetimes = netCDF4.num2date(days, @@ -324,10 +300,6 @@ def datetime_to_days(dates, calendar='gregorian', referenceDate='0001-01-01'): Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/11/2017 """ isSingleDate = False @@ -377,10 +349,6 @@ def date_to_days(year=1, month=1, day=1, hour=0, minute=0, second=0, Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/11/2017 """ calendar = _mpas_to_netcdf_calendar(calendar) @@ -432,10 +400,6 @@ def _parse_date_string(dateString, isInterval=False): # {{{ Author ------ Xylar Asay-Davis - - Last modified - ------------- - 02/04/2017 """ if isInterval: offset = 0 diff --git a/mpas_analysis/shared/variable_namelist_stream_maps/ocean_maps.py b/mpas_analysis/shared/variable_namelist_stream_maps/ocean_maps.py index 22b7738a4..7092b0b73 100644 --- a/mpas_analysis/shared/variable_namelist_stream_maps/ocean_maps.py +++ b/mpas_analysis/shared/variable_namelist_stream_maps/ocean_maps.py @@ -5,10 +5,6 @@ Authors ------- Xylar Asay-Davis - -Last Modified -------------- -03/29/2017 ''' oceanNamelistMap = { diff --git a/mpas_analysis/test/test_timekeeping.py b/mpas_analysis/test/test_timekeeping.py index 27161ffe8..f26738f6e 100644 --- a/mpas_analysis/test/test_timekeeping.py +++ b/mpas_analysis/test/test_timekeeping.py @@ -4,10 +4,6 @@ Author ------ Xylar Asay-Davis - -Last Modified -------------- -02/17/2017 """ import pytest diff --git a/run_analysis.py b/run_analysis.py index 2905c5b61..eaac8541c 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -30,7 +30,6 @@ def update_generate(config, generate): # {{{ Update the 'generate' config option using a string from the command line. Author: Xylar Asay-Davis - Last Modified: 03/07/2017 """ # overwrite the 'generate' in config with a string that parses to @@ -85,7 +84,6 @@ def launch_tasks(taskNames, config, configFiles): # {{{ Launch one or more tasks Author: Xylar Asay-Davis - Last Modified: 03/08/2017 """ thisFile = os.path.realpath(__file__) @@ -123,7 +121,6 @@ def wait_for_task(processes): # {{{ task name and the process that finished. Author: Xylar Asay-Davis - Last Modified: 03/08/2017 """ # first, check if any process has already finished @@ -145,7 +142,6 @@ def is_running(process): # {{{ Returns whether a given process is currently running Author: Xylar Asay-Davis - Last Modified: 03/08/2017 """ try: @@ -161,7 +157,6 @@ def build_analysis_list(config): # {{{ Build a list of analysis modules based on the 'generate' config option. Author: Xylar Asay-Davis - Last Modified: 03/07/2017 """ # choose the right rendering backend, depending on whether we're displaying From 1aced295324d3f452e0a7474fb5aed703a039e23 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 31 May 2017 20:21:27 +0200 Subject: [PATCH 11/47] Remove config paths to individual mapping files Instead, have a link to a directory with existing mapping files, and require that all mapping files follow the MPAS-Analysis naming conventions. If no mapping directory is supplied or mapping files are not found in the supplied directory, create them in the mappingSubdirectory of the output directory. --- config.default | 35 +++--------- mpas_analysis/ocean/climatology_map.py | 5 -- mpas_analysis/sea_ice/climatology_map.py | 6 --- .../shared/climatology/climatology.py | 53 ++++++++++--------- mpas_analysis/test/test_climatology.py | 46 +++++++++------- 5 files changed, 63 insertions(+), 82 deletions(-) diff --git a/config.default b/config.default index 85e752e2f..dcafe9405 100644 --- a/config.default +++ b/config.default @@ -47,7 +47,7 @@ commandPrefix = ## options related to reading in the results to be analyzed # directory containing model results -baseDirectory = /dir/to/model/output +baseDirectory = /dir/for/model/output # Note: an absolute path can be supplied for any of these subdirectories. # A relative path is assumed to be relative to baseDirectory. @@ -86,13 +86,18 @@ autocloseFileLimitFraction = 0.5 # with a single time slice. maxChunkSize = 10000 +# Directory for mapping files (if they have been generated already). If mapping +# files needed by the analysis are not found here, they will be generated and +# placed in the output mappingSubdirectory +# mappingDirectory = /dir/for/mapping/files + [output] ## options related to writing out plots, intermediate cached data sets, logs, ## etc. # directory where analysis should be written # NOTE: This directory path must be specific to each test case. -baseDirectory = /dir/to/analysis/output +baseDirectory = /dir/for/analysis/output # subdirectories within baseDirectory for analysis output scratchSubdirectory = scratch @@ -147,13 +152,6 @@ endYear = 20 comparisonLatResolution = 0.5 comparisonLonResolution = 0.5 -# The names of the mapping file used for interpolation. If a mapping file has -# already been generated, supplying the absolute path can save the time of -# generating a new one. If nothing is supplied, the file name is automatically -# generated based on the MPAS mesh name, the comparison grid resolution, and -# the interpolation method -# mpasMappingFile = /path/to/mapping/file - # interpolation order for model and observation results. Likely values are # 'bilinear', 'neareststod' (nearest neighbor) or 'conserve' mpasInterpolationMethod = bilinear @@ -211,16 +209,6 @@ sstClimatologyEndYear = 1900 #sstClimatologyStartYear = 1990 #sstClimatologyEndYear = 2011 -# The name of mapping files used for interpolating observations to the -# comparison grid. Interpolation is only performed if the observation grid has -# a different resolution from the comparison grid. If nothing is supplied, the -# file name is automatically generated based on the MPAS mesh name, the -# comparison grid resolution, and the interpolation method -# sstClimatologyMappingFile = /path/to/mapping/file -# sssClimatologyMappingFile = /path/to/mapping/file -# mldClimatologyMappingFile = /path/to/mapping/file - - # interpolation order for observations. Likely values are # 'bilinear', 'neareststod' (nearest neighbor) or 'conserve' interpolationMethod = bilinear @@ -271,13 +259,6 @@ thicknessNH_FM = ICESat/ICESat_gridded_mean_thickness_NH_fm.interp0.5x0.5.nc thicknessSH_ON = ICESat/ICESat_gridded_mean_thickness_SH_on.interp0.5x0.5.nc thicknessSH_FM = ICESat/ICESat_gridded_mean_thickness_SH_fm.interp0.5x0.5.nc -# The name of mapping files used for interpolating observations to the -# comparison grid. Interpolation is only performed if the observation grid has -# a different resolution from the comparison grid. If nothing is supplied, the -# file name is automatically generated based on the MPAS mesh name, the -# comparison grid resolution, and the interpolation method -# seaIceClimatologyMappingFile = /path/to/mapping/file - # interpolation order for observations. Likely values are # 'bilinear', 'neareststod' (nearest neighbor) or 'conserve' interpolationMethod = bilinear @@ -381,7 +362,7 @@ compareWithObservations = True regionNames = ['Atlantic'] # Mask file for post-processing regional MOC computation -regionMaskFiles = /path/to/MOCregional/mapping/file +regionMaskFiles = /path/to/MOCregional/mask/file # xarray (with dask) divides data sets into "chunks", allowing computations # to be made on data that is larger than the available memory. MPAS-Analysis diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 30ccda2fc..1c4515121 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -151,8 +151,6 @@ def run(self): # {{{ mpasRemapper = get_remapper( config=config, sourceDescriptor=mpasDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='climatology', - mappingFileOption='mpasMappingFile', mappingFilePrefix=mappingFilePrefix, method=config.get('climatology', 'mpasInterpolationMethod')) @@ -236,9 +234,6 @@ def run(self): # {{{ obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='oceanObservations', - mappingFileOption='{}ClimatologyMappingFile'.format( - fieldName), mappingFilePrefix='map_obs_{}'.format(fieldName), method=config.get('oceanObservations', 'interpolationMethod')) diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index 0fa6639d2..4dfecb2e7 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -147,8 +147,6 @@ def run(self): # {{{ self.mpasRemapper = get_remapper( config=self.config, sourceDescriptor=mpasDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='climatology', - mappingFileOption='mpasMappingFile', mappingFilePrefix=mappingFilePrefix, method=self.config.get('climatology', 'mpasInterpolationMethod')) @@ -207,8 +205,6 @@ def _compute_and_plot_concentration(self): obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='seaIceObservations', - mappingFileOption='seaIceClimatologyMappingFile', mappingFilePrefix='map_obs_seaIce', method=config.get('seaIceObservations', 'interpolationMethod')) @@ -390,8 +386,6 @@ def _compute_and_plot_thickness(self): obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='seaIceObservations', - mappingFileOption='seaIceClimatologyMappingFile', mappingFilePrefix='map_obs_seaIce', method=config.get('seaIceObservations', 'interpolationMethod')) diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index fd8313bf3..293bf323d 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -63,8 +63,7 @@ def get_lat_lon_comparison_descriptor(config): # {{{ def get_remapper(config, sourceDescriptor, comparisonDescriptor, - mappingFileSection, mappingFileOption, mappingFilePrefix, - method): # {{{ + mappingFilePrefix, method): # {{{ """ Given config options and descriptions of the source and comparison grids, returns a ``Remapper`` object that can be used to remap from source files @@ -84,11 +83,6 @@ def get_remapper(config, sourceDescriptor, comparisonDescriptor, comparisonDescriptor : ``MeshDescriptor`` subclass object A description of the comparison grid - mappingFileSection, mappingFileOption : str - Section and option in ``config`` where the name of the mapping file - may be given, or where it will be stored if a new mapping file is - created - mappingFilePrefix : str A prefix to be prepended to the mapping file name @@ -106,29 +100,36 @@ def get_remapper(config, sourceDescriptor, comparisonDescriptor, Xylar Asay-Davis """ - if config.has_option(mappingFileSection, mappingFileOption): - # a mapping file was supplied, so we'll use that name - mappingFileName = config.get(mappingFileSection, mappingFileOption) - else: - if _matches_comparison(sourceDescriptor, comparisonDescriptor): - # no need to remap - mappingFileName = None - - else: - # we need to build the path to the mapping file and an appropriate - # file name - mappingSubdirectory = build_config_full_path(config, 'output', - 'mappingSubdirectory') + mappingFileName = None - make_directories(mappingSubdirectory) + if not _matches_comparison(sourceDescriptor, comparisonDescriptor): + # we need to remap because the grids don't match - mappingFileName = '{}/{}_{}_to_{}_{}.nc'.format( - mappingSubdirectory, mappingFilePrefix, - sourceDescriptor.meshName, comparisonDescriptor.meshName, + mappingBaseName = '{}_{}_to_{}_{}.nc'.format( + mappingFilePrefix, + sourceDescriptor.meshName, + comparisonDescriptor.meshName, method) - config.set(mappingFileSection, mappingFileOption, - mappingFileName) + if config.has_option('input', 'mappingDirectory'): + # a mapping directory was supplied, so we'll see if there's + # a mapping file there that we can use + mappingSubdirectory = config.get('input', 'mappingDirectory') + mappingFileName = '{}/{}'.format(mappingSubdirectory, + mappingBaseName) + if not os.path.exists(mappingFileName): + # nope, looks like we still need to make a mapping file + mappingFileName = None + + if mappingFileName is None: + # we don't have a mapping file yet, so get ready to create one + # in the output subfolder if needed + mappingSubdirectory = \ + build_config_full_path(config, 'output', + 'mappingSubdirectory') + make_directories(mappingSubdirectory) + mappingFileName = '{}/{}'.format(mappingSubdirectory, + mappingBaseName) remapper = Remapper(sourceDescriptor, comparisonDescriptor, mappingFileName) diff --git a/mpas_analysis/test/test_climatology.py b/mpas_analysis/test/test_climatology.py index a96de0ae1..22447cda4 100644 --- a/mpas_analysis/test/test_climatology.py +++ b/mpas_analysis/test/test_climatology.py @@ -81,8 +81,6 @@ def setup_mpas_remapper(self, config): remapper = get_remapper( config=config, sourceDescriptor=mpasDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='climatology', - mappingFileOption='mpasMappingFile', mappingFilePrefix='map', method=config.get( 'climatology', 'mpasInterpolationMethod')) @@ -102,8 +100,6 @@ def setup_obs_remapper(self, config, fieldName): get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, - mappingFileSection='oceanObservations', - mappingFileOption='sstClimatologyMappingFile', mappingFilePrefix='map_obs_{}'.format(fieldName), method=config.get('oceanObservations', 'interpolationMethod')) @@ -133,15 +129,18 @@ def open_test_ds(self, config, calendar): def test_get_mpas_remapper(self): config = self.setup_config() - defaultMappingFileName = '{}/map_QU240_to_0.5x0.5degree_' \ - 'bilinear.nc'.format(self.test_dir) + explicitMappingPath = '{}/maps'.format(self.test_dir) + os.makedirs(explicitMappingPath) - explicitMappingFileName = '{}/mapping.nc'.format(self.test_dir) + fileBase = 'map_QU240_to_0.5x0.5degree_bilinear.nc' + + defaultMappingFileName = '{}/{}'.format(self.test_dir, fileBase) + explicitMappingFileName = '{}/{}'.format(explicitMappingPath, fileBase) for mappingFileName, setName in [(defaultMappingFileName, False), (explicitMappingFileName, True)]: if setName: - config.set('climatology', 'mpasMappingFile', mappingFileName) + config.set('input', 'mappingDirectory', explicitMappingPath) remapper = self.setup_mpas_remapper(config) @@ -154,22 +153,28 @@ def test_get_mpas_remapper(self): assert isinstance(remapper.destinationDescriptor, LatLonGridDescriptor) + if not setName: + # copy the mapping file so it exists in the 'maps' dir + shutil.copyfile(defaultMappingFileName, + explicitMappingFileName) + def test_get_observations_remapper(self): config = self.setup_config() fieldName = 'sst' - defaultMappingFileName = '{}/map_obs_{}_1.0x1.0degree_to_' \ - '0.5x0.5degree_bilinear.nc'.format( - self.test_dir, fieldName) + explicitMappingPath = '{}/maps'.format(self.test_dir) + os.makedirs(explicitMappingPath) - explicitMappingFileName = '{}/mapping.nc'.format(self.test_dir) + fileBase = 'map_obs_sst_1.0x1.0degree_to_0.5x0.5degree_bilinear.nc' + + defaultMappingFileName = '{}/{}'.format(self.test_dir, fileBase) + explicitMappingFileName = '{}/{}'.format(explicitMappingPath, fileBase) for mappingFileName, setName in [(defaultMappingFileName, False), (explicitMappingFileName, True)]: if setName: - config.set('oceanObservations', 'sstClimatologyMappingFile', - mappingFileName) + config.set('input', 'mappingDirectory', explicitMappingPath) remapper = self.setup_obs_remapper(config, fieldName) @@ -182,6 +187,11 @@ def test_get_observations_remapper(self): assert isinstance(remapper.destinationDescriptor, LatLonGridDescriptor) + if not setName: + # copy the mapping file so it exists in the 'maps' dir + shutil.copyfile(defaultMappingFileName, + explicitMappingFileName) + def test_get_mpas_climatology_file_names(self): config = self.setup_config() fieldName = 'sst' @@ -203,8 +213,8 @@ def test_get_mpas_climatology_file_names(self): self.assertEqual(climatologyPrefix, expectedClimatologyPrefix) expectedRemappedFileName = '{}/clim/mpas/remap/sst_QU240_to_' \ - '0.5x0.5degree_JFM_' \ - 'year0002.nc'.format(self.test_dir) + '0.5x0.5degree_JFM_' \ + 'year0002.nc'.format(self.test_dir) self.assertEqual(remappedFileName, expectedRemappedFileName) def test_get_observation_climatology_file_names(self): @@ -223,8 +233,8 @@ def test_get_observation_climatology_file_names(self): self.assertEqual(climatologyFileName, expectedClimatologyFileName) expectedRemappedFileName = '{}/clim/obs/remap/sst_1.0x1.0degree_' \ - 'to_0.5x0.5degree_' \ - 'JFM.nc'.format(self.test_dir) + 'to_0.5x0.5degree_' \ + 'JFM.nc'.format(self.test_dir) self.assertEqual(remappedFileName, expectedRemappedFileName) def test_compute_climatology(self): From 98c22425a8a0d36ebc8ee7c1080d0a6535604245 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Aug 2017 11:15:03 +0200 Subject: [PATCH 12/47] Switch ocean climatology maps to use ncclimo --- mpas_analysis/ocean/climatology_map.py | 160 +++++++++++------- mpas_analysis/ocean/streamfunction_moc.py | 12 +- mpas_analysis/shared/climatology/__init__.py | 5 +- .../shared/climatology/climatology.py | 136 +++++++++++---- mpas_analysis/shared/constants/constants.py | 7 + 5 files changed, 225 insertions(+), 95 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 1c4515121..74a8f4551 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -12,7 +12,6 @@ import datetime import numpy as np import os -import warnings from ..shared.analysis_task import AnalysisTask @@ -23,16 +22,11 @@ from ..shared.io.utility import build_config_full_path from ..shared.io import write_netcdf -from ..shared.generalized_reader.generalized_reader \ - import open_multifile_dataset - -from ..shared.timekeeping.utility import get_simulation_start_time - from ..shared.climatology import get_lat_lon_comparison_descriptor, \ - get_remapper, get_mpas_climatology_file_names, \ - get_observation_climatology_file_names, \ - compute_climatology, cache_climatologies, update_start_end_year, \ - remap_and_write_climatology + get_remapper, get_mpas_climatology_dir_name, \ + get_observation_climatology_file_names, compute_climatology, \ + remap_and_write_climatology, update_climatology_bounds_from_file_names, \ + compute_climatologies_with_ncclimo, compute_seasonal_climatology_ncra from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor @@ -71,18 +65,20 @@ def setup_and_check(self): # {{{ # get a list of timeSeriesStats output files from the streams file, # reading only those that are between the start and end dates - self.startDate = self.config.get('climatology', 'startDate') - self.endDate = self.config.get('climatology', 'endDate') + startDate = self.config.get('climatology', 'startDate') + endDate = self.config.get('climatology', 'endDate') streamName = \ self.historyStreams.find_stream(self.streamMap['timeSeriesStats']) self.inputFiles = self.historyStreams.readpath( - streamName, startDate=self.startDate, endDate=self.endDate, + streamName, startDate=startDate, endDate=endDate, calendar=self.calendar) if len(self.inputFiles) == 0: raise IOError('No files were found in stream {} between {} and ' - '{}.'.format(streamName, self.startDate, - self.endDate)) + '{}.'.format(streamName, startDate, endDate)) + + update_climatology_bounds_from_file_names(self.inputFiles, + self.config) # }}} @@ -100,11 +96,8 @@ def run(self): # {{{ # get local versions of member variables for convenience config = self.config - calendar = self.calendar fieldName = self.fieldName - simulationStartTime = get_simulation_start_time(self.runStreams) - print '\n Reading files:\n' \ ' {} through\n {}'.format( os.path.basename(self.inputFiles[0]), @@ -122,22 +115,6 @@ def run(self): # {{{ comparisonDescriptor = get_lat_lon_comparison_descriptor(config) - varList = [fieldName] - - ds = open_multifile_dataset(fileNames=self.inputFiles, - calendar=calendar, - config=config, - simulationStartTime=simulationStartTime, - timeVariableName='Time', - variableList=varList, - iselValues=self.iselValues, - variableMap=self.variableMap, - startDate=self.startDate, - endDate=self.endDate) - - changed, startYear, endYear = update_start_end_year(ds, config, - calendar) - mpasDescriptor = MpasMeshDescriptor( restartFileName, meshName=config.get('input', 'mpasMeshName')) @@ -165,42 +142,95 @@ def run(self): # {{{ (colormapDifference, colorbarLevelsDifference) = setup_colormap( config, self.taskName, suffix='Difference') + climatologyDirectory = \ + get_mpas_climatology_dir_name( + config=config, + fieldName=self.mpasFieldName, + mpasMeshName=mpasDescriptor.meshName) + + (maskedClimatologyDirectory, remappedDirectory) = \ + get_mpas_climatology_dir_name( + config=config, + fieldName='{}_masked'.format(fieldName), + mpasMeshName=mpasDescriptor.meshName, + comparisonGridName=comparisonDescriptor.meshName) + + dsRestart = xr.open_dataset(restartFileName) + dsRestart = mpas_xarray.subset_variables(dsRestart, ['maxLevelCell']) + + startYear = config.getint('climatology', 'startYear') + endYear = config.getint('climatology', 'endYear') + + # the last climatology produced by NCO is always the annual, so if that + # exists, others are also finished. + climatologyFileName = \ + '{}/mpaso_ANN_climo.nc'.format(climatologyDirectory) + if not os.path.exists(climatologyFileName): + + compute_climatologies_with_ncclimo( + config=config, + inDirectory=self.historyDirectory, + outDirectory=climatologyDirectory, + startYear=startYear, + endYear=endYear, + variableList=[self.mpasFieldName], + modelName='mpaso', + decemberMode='sdd') + dsObs = None obsRemapperBuilt = False # Interpolate and compute biases for months in outputTimes: + monthValues = constants.monthDictionary[months] - (climatologyFileName, climatologyPrefix, remappedFileName) = \ - get_mpas_climatology_file_names( - config=config, - fieldName=fieldName, - monthNames=months, - mpasMeshName=mpasDescriptor.meshName, - comparisonGridName=comparisonDescriptor.meshName) + climatologyFileName = \ + self._get_season_file_name(months, climatologyDirectory) + + maskedClimatologyFileName = \ + self._get_season_file_name(months, maskedClimatologyDirectory) + + remappedFileName = \ + self._get_season_file_name(months, remappedDirectory) + + if months not in constants.ncclimoSeasonDictionary and \ + not os.path.exists(climatologyFileName): + # weighted average of months in season + compute_seasonal_climatology_ncra( + config=config, + inDirectory=climatologyDirectory, + modelName='mpaso', + inMonthValues=monthValues, + outFileName=climatologyFileName) + + if not os.path.exists(maskedClimatologyFileName): + # slice and mask the data set + climatology = xr.open_dataset(climatologyFileName) + iselValues = {'Time': 0} + if self.iselValues is not None: + iselValues.update(self.iselValues) + # select only Time=0 and possibly only the desired vertical + # slice + climatology = climatology.isel(**iselValues) + + # mask the data set + climatology[self.mpasFieldName] = \ + climatology[self.mpasFieldName].where( + dsRestart.maxLevelCell > 0) + + climatology.to_netcdf(maskedClimatologyFileName) if not os.path.exists(remappedFileName): - seasonalClimatology = cache_climatologies( - ds, monthValues, config, climatologyPrefix, calendar, - printProgress=True) + mpasRemapper.remap_file(inFileName=maskedClimatologyFileName, + outFileName=remappedFileName, + overwrite=True) - if seasonalClimatology is None: - # apparently, there was no data available to create the - # climatology - warnings.warn('no data to create {} climatology for ' - '{}'.format(fieldName, months)) - continue + remappedClimatology = xr.open_dataset(remappedFileName) - remappedClimatology = remap_and_write_climatology( - config, seasonalClimatology, climatologyFileName, - remappedFileName, mpasRemapper) + modelOutput = \ + remappedClimatology[self.mpasFieldName].values - else: - - remappedClimatology = xr.open_dataset(remappedFileName) - - modelOutput = remappedClimatology[fieldName].values lon = remappedClimatology['lon'].values lat = remappedClimatology['lat'].values @@ -281,6 +311,17 @@ def run(self): # {{{ # }}} + def _get_season_file_name(self, seasonName, directory): # {{{ + if seasonName in constants.ncclimoSeasonDictionary: + fileName = '{}/mpaso_{}_climo.nc'.format( + directory, + constants.ncclimoSeasonDictionary[seasonName]) + else: + # we're going to have to build the climatology manuallly + fileName = '{}/mpaso_{}_climo.nc'.format( + directory, seasonName) + return fileName # }}} + # }}} @@ -341,6 +382,7 @@ def setup_and_check(self): # {{{ "{}/MODEL.SST.HAD187001-198110.OI198111-201203.nc".format( observationsDirectory) + self.mpasFieldName = 'timeMonthly_avg_activeTracers_temperature' self.iselValues = {'nVertLevels': 0} self.obsFieldName = 'SST' @@ -450,6 +492,7 @@ def setup_and_check(self): # {{{ '{}/Aquarius_V3_SSS_Monthly.nc'.format( observationsDirectory) + self.mpasFieldName = 'timeMonthly_avg_activeTracers_salinity' self.iselValues = {'nVertLevels': 0} self.obsFieldName = 'SSS' @@ -542,6 +585,7 @@ def setup_and_check(self): # {{{ '{}/holtetalley_mld_climatology.nc'.format( observationsDirectory) + self.mpasFieldName = 'timeMonthly_avg_dThreshMLD' self.iselValues = None self.obsFieldName = 'mld_dt_mean' diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index c1e036a04..7da70ccd7 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -17,7 +17,7 @@ days_to_datetime from ..shared.climatology.climatology \ - import update_start_end_year_from_file_names, \ + import update_climatology_bounds_from_file_names, \ compute_climatologies_with_ncclimo from ..shared.analysis_task import AnalysisTask @@ -105,6 +105,7 @@ def setup_and_check(self): # {{{ startDate=self.startDateClimo, endDate=self.endDateClimo, calendar=self.calendar) + if len(self.inputFilesClimo) == 0: raise IOError('No files were found in stream {} between {} and ' '{}.'.format(streamName, self.startDateClimo, @@ -112,6 +113,11 @@ def setup_and_check(self): # {{{ self.simulationStartTime = get_simulation_start_time(self.runStreams) + update_climatology_bounds_from_file_names(self.inputFiles, + self.config) + + self.startDateClimo = config.get('climatology', 'startDate') + self.endDateClimo = config.get('climatology', 'endDate') self.startYearClimo = config.getint('climatology', 'startYear') self.endYearClimo = config.getint('climatology', 'endYear') @@ -263,10 +269,6 @@ def _compute_velocity_climatologies(self): # {{{ outputDirectory = '{}/meanVelocity'.format(outputRoot) - changed, self.startYearClimo, self.endYearClimo = \ - update_start_end_year_from_file_names(self.inputFilesClimo, - config) - self.velClimoFile = \ '{}/mpaso_ANN_{:04d}01_{:04d}12_climo.nc'.format( outputDirectory, self.startYearClimo, diff --git a/mpas_analysis/shared/climatology/__init__.py b/mpas_analysis/shared/climatology/__init__.py index 1662914a8..7b05c1533 100644 --- a/mpas_analysis/shared/climatology/__init__.py +++ b/mpas_analysis/shared/climatology/__init__.py @@ -1,6 +1,7 @@ from .climatology import get_lat_lon_comparison_descriptor, get_remapper, \ - get_mpas_climatology_file_names, get_observation_climatology_file_names, \ + get_mpas_climatology_dir_name, get_observation_climatology_file_names, \ compute_monthly_climatology, compute_climatology, cache_climatologies, \ update_start_end_year, add_years_months_days_in_month, \ remap_and_write_climatology, compute_climatologies_with_ncclimo, \ - update_start_end_year_from_file_names + compute_seasonal_climatology_ncra, \ + update_climatology_bounds_from_file_names diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index abc40a637..edbc88f33 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -142,9 +142,8 @@ def get_remapper(config, sourceDescriptor, comparisonDescriptor, return remapper # }}} -def get_mpas_climatology_file_names(config, fieldName, monthNames, - mpasMeshName, - comparisonGridName=None): # {{{ +def get_mpas_climatology_dir_name(config, fieldName, mpasMeshName, + comparisonGridName=None): # {{{ """ Given config options, the name of a field and a string identifying the months in a seasonal climatology, returns the full path for MPAS @@ -159,9 +158,6 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, Name of the field being mapped, used as a prefix for the climatology file name. - monthNames : str - A string identifying the months in a seasonal climatology (e.g. 'JFM') - mpasMeshName : str The name of the MPAS mesh @@ -191,35 +187,28 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, 05/05/2017 """ - climSection = 'climatology' - startYear = config.getint(climSection, 'startYear') - endYear = config.getint(climSection, 'endYear') - - climatologyDirectory = build_config_full_path( + climatologyBaseDirectory = build_config_full_path( config, 'output', 'mpasClimatologySubdirectory') - make_directories(climatologyDirectory) - - climatologyPrefix = '{}/{}_{}_{}'.format(climatologyDirectory, fieldName, - mpasMeshName, monthNames) + climatologyDirectory = '{}/{}_{}'.format(climatologyBaseDirectory, + fieldName, + mpasMeshName) - yearString, fileSuffix = _get_year_string(startYear, endYear) - climatologyFileName = '{}_{}.nc'.format(climatologyPrefix, fileSuffix) + make_directories(climatologyDirectory) if comparisonGridName is None: - return (climatologyFileName, climatologyPrefix) + return climatologyDirectory else: - remappedDirectory = build_config_full_path( + remappedBaseDirectory = build_config_full_path( config, 'output', 'mpasRemappedClimSubdirectory') - make_directories(remappedDirectory) + remappedDirectory = '{}/{}_{}_to_{}.nc'.format( + remappedBaseDirectory, fieldName, mpasMeshName, + comparisonGridName) - remappedFileName = '{}/{}_{}_to_{}_{}_{}.nc'.format( - remappedDirectory, fieldName, mpasMeshName, - comparisonGridName, monthNames, fileSuffix) + make_directories(remappedDirectory) - return (climatologyFileName, climatologyPrefix, - remappedFileName) + return (climatologyDirectory, remappedDirectory) # }}} @@ -227,7 +216,9 @@ def get_mpas_climatology_file_names(config, fieldName, monthNames, def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, startYear, endYear, variableList, modelName, - decemberMode='scd'): # {{{ + decemberMode='scd', + remapper=None, + regriddedDirectory=None): # {{{ ''' Uses ncclimo to compute monthly, seasonal (DJF, MAM, JJA, SON) and annual climatologies. @@ -250,7 +241,7 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, variableList : list of str A list of variables to include in the climatology - modeName : ['mpaso', 'mpascice'] + modelName : ['mpaso', 'mpascice'] The name of the component for which the climatology is to be computed decemberMode : ['scd', 'sdd'] @@ -260,6 +251,16 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, with November of endYear. Otherwise, goes from January of startYear to December of endYear. + remapper : ``shared.intrpolation.Remapper`` object, optional + If present, a remapper that defines the source and desitnation grids + for remapping the climatologies. + + regriddedDirectory : str, optional + If present, the path where regridded climatologies should be written. + By default, regridded files are stored in the same directory as the + climatologies on the source grid. Has no effect if ``remapper`` is + ``None``. + Raises ------ OSError @@ -280,6 +281,7 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, parallelMode = config.get('execute', 'ncclimoParallelMode') args = ['ncclimo', + '--clm_md=mth', '-a', decemberMode, '-m', modelName, '-p', parallelMode, @@ -289,6 +291,71 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, '-i', inDirectory, '-o', outDirectory] + if remapper is not None: + args.extend(['-r', remapper.mappingFileName]) + if regriddedDirectory is not None: + args.extend(['-O', regriddedDirectory]) + + print 'running: {}'.format(' '.join(args)) + + # make sure any output is flushed before we add output from the + # subprocess + sys.stdout.flush() + sys.stderr.flush() + + subprocess.check_call(args) # }}} + + +def compute_seasonal_climatology_ncra(config, inDirectory, modelName, + inMonthValues, outFileName): # {{{ + ''' + Uses ncra to compute a seasonal climatology from monthly climatologies + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + inDirectory : str + The run directory containing timeSeriesStatsMonthly output + + modelName : ['mpaso', 'mpascice'] + The name of the component for which the climatology is to be computed + + inMonthValues : list like + A list of months in the season + + outFileName : str + The file to which the seasonal climatology will be written + + Raises + ------ + OSError + If ``ncra`` is not in the system path. + + Author + ------ + Xylar Asay-Davis + ''' + + if find_executable('ncra') is None: + raise OSError('ncra not found. Make sure the latest nco ' + 'package is installed: \n' + 'conda install nco\n' + 'Note: this presumes use of the conda-forge ' + 'channel.') + + weights = [] + inFileNames = [] + for month in inMonthValues: + weights.append(str(constants.daysInMonth[month-1])) + + inFileNames.append('{}/{}_{:02d}_climo.nc'.format( + inDirectory, modelName, month)) + + args = ['ncra', '--cb', '-O', '-w', ','.join(weights)] + inFileNames + \ + [outFileName] + print 'running: {}'.format(' '.join(args)) # make sure any output is flushed before we add output from the @@ -601,9 +668,9 @@ def update_start_end_year(ds, config, calendar): # {{{ return changed, startYear, endYear # }}} -def update_start_end_year_from_file_names(inputFiles, config): # {{{ +def update_climatology_bounds_from_file_names(inputFiles, config): # {{{ """ - Update the start and end years for climatologies based on the + Update the start and end years and dates for climatologies based on the years actually available in the list of files. Parameters @@ -658,9 +725,18 @@ def update_start_end_year_from_file_names(inputFiles, config): # {{{ warnings.warn(message) config.set('climatology', 'startYear', str(startYear)) config.set('climatology', 'endYear', str(endYear)) + + startDate = '{:04d}-01-01_00:00:00'.format(startYear) + config.set('climatology', 'startDate', startDate) + endDate = '{:04d}-12-31_23:59:59'.format(endYear) + config.set('climatology', 'endDate', endDate) changed = True - return changed, startYear, endYear # }}} + else: + startDate = config.get('climatology', 'startDate') + endDate = config.get('climatology', 'endDate') + + return changed, startYear, endYear, startDate, endDate # }}} def add_years_months_days_in_month(ds, calendar=None): # {{{ diff --git a/mpas_analysis/shared/constants/constants.py b/mpas_analysis/shared/constants/constants.py index 7df2b1bba..8bb9edf1b 100644 --- a/mpas_analysis/shared/constants/constants.py +++ b/mpas_analysis/shared/constants/constants.py @@ -30,6 +30,13 @@ 'ON': np.array([10, 11]), 'FM': np.array([2, 3]), 'DJF': np.array([12, 1, 2]), 'JJA': np.array([6, 7, 8])} +ncclimoSeasonDictionary = {'Jan': '01', 'Feb': '02', 'Mar': '03', 'Apr': '04', + 'May': '05', 'Jun': '06', 'Jul': '07', 'Aug': '08', + 'Sep': '09', 'Oct': '10', 'Nov': '11', 'Dec': '12', + 'DJF': 'DJF', 'MAM': 'MAM', 'JJA': 'JJA', + 'SON': 'SON', 'ANN': 'ANN'} + + daysInMonth = np.array([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]) abrevMonthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", From a5c0617e4da353446ab78c23f045821d70b9265b Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Aug 2017 12:32:17 +0200 Subject: [PATCH 13/47] Switch sea-ice climatology maps to use ncclimo --- mpas_analysis/sea_ice/climatology_map.py | 230 +++++++++++++---------- 1 file changed, 134 insertions(+), 96 deletions(-) diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index 4dfecb2e7..9bde55936 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -4,16 +4,16 @@ import numpy.ma as ma import numpy as np -import warnings import xarray as xr from ..shared.constants import constants from ..shared.climatology import get_lat_lon_comparison_descriptor, \ - get_remapper, get_mpas_climatology_file_names, \ + get_remapper, get_mpas_climatology_dir_name, \ get_observation_climatology_file_names, \ - cache_climatologies, update_start_end_year, \ - remap_and_write_climatology + compute_climatologies_with_ncclimo, \ + update_climatology_bounds_from_file_names, \ + remap_and_write_climatology, compute_seasonal_climatology_ncra from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor from ..shared.plot.plotting import plot_polar_comparison, \ @@ -21,9 +21,6 @@ from ..shared.io.utility import build_config_full_path -from ..shared.generalized_reader.generalized_reader \ - import open_multifile_dataset - from .sea_ice_analysis_task import SeaIceAnalysisTask @@ -79,18 +76,21 @@ def setup_and_check(self): # {{{ # file, reading only those that are between the start and end dates streamName = self.historyStreams.find_stream( self.streamMap['timeSeriesStats']) - self.startDate = self.config.get('climatology', 'startDate') - self.endDate = self.config.get('climatology', 'endDate') + startDate = self.config.get('climatology', 'startDate') + endDate = self.config.get('climatology', 'endDate') self.inputFiles = \ self.historyStreams.readpath(streamName, - startDate=self.startDate, - endDate=self.endDate, + startDate=startDate, + endDate=endDate, calendar=self.calendar) if len(self.inputFiles) == 0: raise IOError('No files were found in stream {} between {} and ' - '{}.'.format(streamName, self.startDate, - self.endDate)) + '{}.'.format(streamName, startDate, + endDate)) + + update_climatology_bounds_from_file_names(self.inputFiles, + self.config) return # }}} @@ -111,26 +111,10 @@ def run(self): # {{{ ' {} through\n {}'.format( os.path.basename(self.inputFiles[0]), os.path.basename(self.inputFiles[-1])) - # Load data - print ' Load sea-ice data...' - self.ds = open_multifile_dataset( - fileNames=self.inputFiles, - calendar=self.calendar, - config=self.config, - simulationStartTime=self.simulationStartTime, - timeVariableName='Time', - variableList=['iceAreaCell', 'iceVolumeCell'], - variableMap=self.variableMap, - startDate=self.startDate, - endDate=self.endDate) # Compute climatologies (first motnhly and then seasonally) print ' Compute seasonal climatologies...' - changed, startYear, endYear = update_start_end_year(self.ds, - self.config, - self.calendar) - mpasDescriptor = MpasMeshDescriptor( self.restartFileName, meshName=self.config.get('input', 'mpasMeshName')) @@ -150,10 +134,61 @@ def run(self): # {{{ mappingFilePrefix=mappingFilePrefix, method=self.config.get('climatology', 'mpasInterpolationMethod')) + self._compute_seasonal_climatologies( + seasons=['JFM', 'JAS', 'DJF', 'JJA', 'FM', 'ON']) + self._compute_and_plot_concentration() self._compute_and_plot_thickness() # }}} + def _compute_seasonal_climatologies(self, seasons): # {{{ + + config = self.config + + mpasMeshName = self.mpasRemapper.sourceDescriptor.meshName + comparisonGridName = self.mpasRemapper.destinationDescriptor.meshName + + overwriteMpasClimatology = config.getWithDefault( + 'climatology', 'overwriteMpasClimatology', False) + + startYear = config.getint('climatology', 'startYear') + endYear = config.getint('climatology', 'endYear') + + self.climatologyDirectory = \ + get_mpas_climatology_dir_name( + config=config, + fieldName='seaIceAreaVol', + mpasMeshName=mpasMeshName) + + (self.maskedClimatologyDirectory, self.remappedDirectory) = \ + get_mpas_climatology_dir_name( + config=config, + fieldName='seaIceAreaVol_masked', + mpasMeshName=mpasMeshName, + comparisonGridName=comparisonGridName) + + # the last climatology produced by NCO is always the annual, so if that + # exists, others are also finished. + climatologyFileName = \ + '{}/mpascice_ANN_climo.nc'.format(self.climatologyDirectory) + if (overwriteMpasClimatology or + not os.path.exists(climatologyFileName)): + + compute_climatologies_with_ncclimo( + config=config, + inDirectory=self.historyDirectory, + outDirectory=self.climatologyDirectory, + startYear=startYear, + endYear=endYear, + variableList=['timeMonthly_avg_iceAreaCell', + 'timeMonthly_avg_iceVolumeCell'], + modelName='mpascice', + decemberMode='sdd') + + self._remap_seasonal_climatology(seasons) + + # }}} + def _compute_and_plot_concentration(self): ''' computes seasonal climatologies and plots model results, observations @@ -167,8 +202,6 @@ def _compute_and_plot_concentration(self): print ' Make ice concentration plots...' config = self.config - calendar = self.calendar - ds = self.ds mainRunName = config.get('runs', 'mainRunName') startYear = config.getint('climatology', 'startYear') @@ -228,40 +261,13 @@ def _compute_and_plot_concentration(self): for months in hemisphereSeasons: hemisphere, season = hemisphereSeasons[months] - monthValues = constants.monthDictionary[months] - field = 'iceAreaCell' + field = 'timeMonthly_avg_iceAreaCell' climFieldName = 'iceConcentration' - # interpolate the model results - mpasMeshName = self.mpasRemapper.sourceDescriptor.meshName - comparisonGridName = \ - self.mpasRemapper.destinationDescriptor.meshName - (climatologyFileName, climatologyPrefix, remappedFileName) = \ - get_mpas_climatology_file_names( - config=config, - fieldName=climFieldName, - monthNames=months, - mpasMeshName=mpasMeshName, - comparisonGridName=comparisonGridName) - - if not os.path.exists(remappedFileName): - seasonalClimatology = cache_climatologies( - ds, monthValues, config, climatologyPrefix, calendar, - printProgress=True) - if seasonalClimatology is None: - # apparently, there was no data available to create the - # climatology - warnings.warn('no data to create sea ice concentration ' - 'climatology for {}'.format(months)) - continue - - remappedClimatology = remap_and_write_climatology( - config, seasonalClimatology, climatologyFileName, - remappedFileName, self.mpasRemapper) - - else: + remappedFileName = \ + self._get_season_file_name(months, self.remappedDirectory) - remappedClimatology = xr.open_dataset(remappedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) iceConcentration = remappedClimatology[field].values lon = remappedClimatology['lon'].values @@ -349,8 +355,6 @@ def _compute_and_plot_thickness(self): print ' Make ice thickness plots...' config = self.config - calendar = self.calendar - ds = self.ds subtitle = 'Ice thickness' @@ -404,40 +408,13 @@ def _compute_and_plot_thickness(self): buildObsClimatologies = True for months in ['FM', 'ON']: - monthValues = constants.monthDictionary[months] - field = 'iceVolumeCell' + field = 'timeMonthly_avg_iceVolumeCell' climFieldName = 'iceThickness' - # interpolate the model results - mpasMeshName = self.mpasRemapper.sourceDescriptor.meshName - comparisonGridName = \ - self.mpasRemapper.destinationDescriptor.meshName - (climatologyFileName, climatologyPrefix, remappedFileName) = \ - get_mpas_climatology_file_names( - config=config, - fieldName=climFieldName, - monthNames=months, - mpasMeshName=mpasMeshName, - comparisonGridName=comparisonGridName) - - if not os.path.exists(climatologyFileName): - seasonalClimatology = cache_climatologies( - ds, monthValues, config, climatologyPrefix, calendar, - printProgress=True) - if seasonalClimatology is None: - # apparently, there was no data available to create the - # climatology - warnings.warn('no data to create sea ice thickness ' - 'climatology for {}'.format(months)) - continue - - remappedClimatology = remap_and_write_climatology( - config, seasonalClimatology, climatologyFileName, - remappedFileName, self.mpasRemapper) + remappedFileName = \ + self._get_season_file_name(months, self.remappedDirectory) - else: - - remappedClimatology = xr.open_dataset(remappedFileName) + remappedClimatology = xr.open_dataset(remappedFileName) iceThickness = remappedClimatology[field].values iceThickness = ma.masked_values(iceThickness, 0) @@ -520,4 +497,65 @@ def _compute_and_plot_thickness(self): # }}} -# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python \ No newline at end of file + def _get_season_file_name(self, seasonName, directory): # {{{ + if seasonName in constants.ncclimoSeasonDictionary: + fileName = '{}/mpascice_{}_climo.nc'.format( + directory, + constants.ncclimoSeasonDictionary[seasonName]) + else: + # we're going to have to build the climatology manuallly + fileName = '{}/mpascice_{}_climo.nc'.format( + directory, seasonName) + return fileName # }}} + + def _remap_seasonal_climatology(self, seasons): # {{{ + + for season in seasons: + + overwriteMpasClimatology = self.config.getWithDefault( + 'climatology', 'overwriteMpasClimatology', False) + + monthValues = constants.monthDictionary[season] + + # interpolate the model results + climatologyFileName = \ + self._get_season_file_name(season, self.climatologyDirectory) + + maskedClimatologyFileName = \ + self._get_season_file_name(season, + self.maskedClimatologyDirectory) + + remappedFileName = \ + self._get_season_file_name(season, self.remappedDirectory) + + if season not in constants.ncclimoSeasonDictionary and \ + (overwriteMpasClimatology or + not os.path.exists(climatologyFileName)): + # weighted average of months in season + compute_seasonal_climatology_ncra( + config=self.config, + inDirectory=self.climatologyDirectory, + modelName='mpascice', + inMonthValues=monthValues, + outFileName=climatologyFileName) + + if (overwriteMpasClimatology or + not os.path.exists(maskedClimatologyFileName)): + # slice the data set and set _FillValue (happens automatically) + climatology = xr.open_dataset(climatologyFileName) + iselValues = {'Time': 0} + # select only Time=0 + climatology = climatology.isel(**iselValues) + + climatology.to_netcdf(maskedClimatologyFileName) + + if (overwriteMpasClimatology or + not os.path.exists(remappedFileName)): + self.mpasRemapper.remap_file( + inFileName=maskedClimatologyFileName, + outFileName=remappedFileName, + overwrite=True) + # }}} + + +# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python From 3f1b5c0f673c974c16b4709a5a5bd7ebe760c892 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Aug 2017 12:59:11 +0200 Subject: [PATCH 14/47] Switch MHT to use ncclimo --- .../ocean/meridional_heat_transport.py | 88 ++++++++++--------- mpas_analysis/ocean/streamfunction_moc.py | 2 +- 2 files changed, 47 insertions(+), 43 deletions(-) diff --git a/mpas_analysis/ocean/meridional_heat_transport.py b/mpas_analysis/ocean/meridional_heat_transport.py index d4174dbf8..da1e6e5d3 100644 --- a/mpas_analysis/ocean/meridional_heat_transport.py +++ b/mpas_analysis/ocean/meridional_heat_transport.py @@ -4,19 +4,16 @@ import os import warnings -from ..shared.constants.constants import monthDictionary from ..shared.plot.plotting import plot_vertical_section,\ setup_colormap, plot_1D from ..shared.io.utility import build_config_full_path, make_directories -from ..shared.generalized_reader.generalized_reader \ - import open_multifile_dataset - from ..shared.timekeeping.utility import get_simulation_start_time -from ..shared.climatology.climatology import update_start_end_year, \ - cache_climatologies +from ..shared.climatology.climatology \ + import update_climatology_bounds_from_file_names, \ + compute_climatologies_with_ncclimo from ..shared.analysis_task import AnalysisTask @@ -99,6 +96,14 @@ def setup_and_check(self): # {{{ '{}.'.format(streamName, self.startDate, self.endDate)) + update_climatology_bounds_from_file_names(self.inputFiles, + self.config) + + self.startDate = config.get('climatology', 'startDate') + self.startDate = config.get('climatology', 'endDate') + self.startYear = config.getint('climatology', 'startYear') + self.endYear = config.getint('climatology', 'endYear') + # Later, we will read in depth and MHT latitude points # from mpaso.hist.am.meridionalHeatTransport.*.nc mhtFiles = self.historyStreams.readpath( @@ -111,9 +116,6 @@ def setup_and_check(self): # {{{ self.simulationStartTime = get_simulation_start_time(self.runStreams) - self.startYear = config.getint('climatology', 'startYear') - self.endYear = config.getint('climatology', 'endYear') - self.sectionName = 'meridionalHeatTransport' # Read in obs file information @@ -179,42 +181,42 @@ def run(self): # {{{ # Then we will need to add another section for regions with a loop # over number of regions. ###################################################################### - variableList = ['avgMeridionalHeatTransportLat', - 'avgMeridionalHeatTransportLatZ'] + variableList = ['timeMonthly_avg_meridionalHeatTransportLat', + 'timeMonthly_avg_meridionalHeatTransportLatZ'] print '\n Compute and plot global meridional heat transport' - outputDirectory = build_config_full_path(config, 'output', - 'mpasClimatologySubdirectory') + outputRoot = build_config_full_path(config, 'output', + 'mpasClimatologySubdirectory') + + outputDirectory = '{}/mht'.format(outputRoot) print '\n List of files for climatologies:\n' \ ' {} through\n {}'.format( os.path.basename(self.inputFiles[0]), os.path.basename(self.inputFiles[-1])) - make_directories(outputDirectory) - print ' Load data...' - ds = open_multifile_dataset( - fileNames=self.inputFiles, - calendar=self.calendar, - config=config, - simulationStartTime=self.simulationStartTime, - timeVariableName='Time', - variableList=variableList, - variableMap=self.variableMap, - startDate=self.startDate, - endDate=self.endDate) - - changed, startYear, endYear = update_start_end_year(ds, config, - self.calendar) - - # Compute annual climatology - cachePrefix = '{}/meridionalHeatTransport'.format(outputDirectory) - annualClimatology = cache_climatologies(ds, monthDictionary['ANN'], - config, cachePrefix, - self.calendar, - printProgress=True) + + climatologyFileName = \ + '{}/mpaso_ANN_{:04d}01_{:04d}12_climo.nc'.format( + outputDirectory, self.startYear, self.endYear) + + if not os.path.exists(climatologyFileName): + make_directories(outputDirectory) + + # Compute annual climatology + compute_climatologies_with_ncclimo( + config=config, + inDirectory=self.historyDirectory, + outDirectory=outputDirectory, + startYear=self.startYear, + endYear=self.endYear, + variableList=variableList, + modelName='mpaso', + decemberMode='sdd') + + annualClimatology = xr.open_dataset(climatologyFileName) # **** Plot MHT **** # Define plotting variables @@ -226,14 +228,15 @@ def run(self): # {{{ print ' Plot global MHT...' # Plot 1D MHT (zonally averaged, depth integrated) x = binBoundaryMerHeatTrans - y = annualClimatology.avgMeridionalHeatTransportLat + daY = annualClimatology.timeMonthly_avg_meridionalHeatTransportLat + y = daY.values[0, :] xLabel = 'latitude [deg]' yLabel = 'meridional heat transport [PW]' title = 'Global MHT (ANN, years {:04d}-{:04d})\n {}'.format( - startYear, endYear, mainRunName) + self.startYear, self.endYear, mainRunName) figureName = '{}/mht_{}_years{:04d}-{:04d}.png'.format( self.plotsDirectory, mainRunName, - startYear, endYear) + self.startYear, self.endYear) if self.observationsFile is not None: # Load in observations dsObs = xr.open_dataset(self.observationsFile) @@ -264,8 +267,9 @@ def run(self): # {{{ # Plot 2D MHT (zonally integrated) # normalize 2D MHT by layer thickness - MHTLatZ = \ - annualClimatology.avgMeridionalHeatTransportLatZ.values.T[:, :] + daMHTLatZ = \ + annualClimatology.timeMonthly_avg_meridionalHeatTransportLatZ + MHTLatZ = daMHTLatZ.values[0, :, :].T for k in range(nVertLevels): MHTLatZ[k, :] = MHTLatZ[k, :]/refLayerThickness[k] @@ -275,10 +279,10 @@ def run(self): # {{{ xLabel = 'latitude [deg]' yLabel = 'depth [m]' title = 'Global MHT (ANN, years {:04d}-{:04d})\n {}'.format( - startYear, endYear, mainRunName) + self.startYear, self.endYear, mainRunName) figureName = '{}/mhtZ_{}_years{:04d}-{:04d}.png'.format( self.plotsDirectory, mainRunName, - startYear, endYear) + self.startYear, self.endYear) colorbarLabel = '[PW/m]' contourLevels = config.getExpression(self.sectionName, 'contourLevelsGlobal', diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 7da70ccd7..424693f86 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -113,7 +113,7 @@ def setup_and_check(self): # {{{ self.simulationStartTime = get_simulation_start_time(self.runStreams) - update_climatology_bounds_from_file_names(self.inputFiles, + update_climatology_bounds_from_file_names(self.inputFilesClimo, self.config) self.startDateClimo = config.get('climatology', 'startDate') From 67858d49ee06aaffe8004a4f919127963828be84 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Aug 2017 15:07:27 +0200 Subject: [PATCH 15/47] Fix CI and a typo in regriddedDirectory (.nc at end) --- .../shared/climatology/climatology.py | 2 +- mpas_analysis/test/test_climatology.py | 45 +++++++++---------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index edbc88f33..b26ff61c2 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -202,7 +202,7 @@ def get_mpas_climatology_dir_name(config, fieldName, mpasMeshName, remappedBaseDirectory = build_config_full_path( config, 'output', 'mpasRemappedClimSubdirectory') - remappedDirectory = '{}/{}_{}_to_{}.nc'.format( + remappedDirectory = '{}/{}_{}_to_{}'.format( remappedBaseDirectory, fieldName, mpasMeshName, comparisonGridName) diff --git a/mpas_analysis/test/test_climatology.py b/mpas_analysis/test/test_climatology.py index 22447cda4..4b88c41e5 100644 --- a/mpas_analysis/test/test_climatology.py +++ b/mpas_analysis/test/test_climatology.py @@ -19,7 +19,7 @@ import MpasAnalysisConfigParser from mpas_analysis.shared.climatology import \ get_lat_lon_comparison_descriptor, get_remapper, \ - get_mpas_climatology_file_names, get_observation_climatology_file_names, \ + get_mpas_climatology_dir_name, get_observation_climatology_file_names, \ add_years_months_days_in_month, compute_climatology, \ compute_monthly_climatology, update_start_end_year, cache_climatologies from mpas_analysis.shared.grid import MpasMeshDescriptor, LatLonGridDescriptor @@ -192,30 +192,24 @@ def test_get_observations_remapper(self): shutil.copyfile(defaultMappingFileName, explicitMappingFileName) - def test_get_mpas_climatology_file_names(self): + def test_get_mpas_climatology_dir_name(self): config = self.setup_config() fieldName = 'sst' - monthNames = 'JFM' remapper = self.setup_mpas_remapper(config) - (climatologyFileName, climatologyPrefix, remappedFileName) = \ - get_mpas_climatology_file_names( - config, fieldName, monthNames, + (climatologyDirectory, remappedDirectory) = \ + get_mpas_climatology_dir_name( + config, fieldName, remapper.sourceDescriptor.meshName, remapper.destinationDescriptor.meshName) - expectedClimatologyFileName = '{}/clim/mpas/sst_QU240_JFM_' \ - 'year0002.nc'.format(self.test_dir) - self.assertEqual(climatologyFileName, expectedClimatologyFileName) + expectedClimatologyDirectory = \ + '{}/clim/mpas/sst_QU240'.format(self.test_dir) + self.assertEqual(climatologyDirectory, expectedClimatologyDirectory) - expectedClimatologyPrefix = '{}/clim/mpas/sst_QU240_' \ - 'JFM'.format(self.test_dir) - self.assertEqual(climatologyPrefix, expectedClimatologyPrefix) - - expectedRemappedFileName = '{}/clim/mpas/remap/sst_QU240_to_' \ - '0.5x0.5degree_JFM_' \ - 'year0002.nc'.format(self.test_dir) - self.assertEqual(remappedFileName, expectedRemappedFileName) + expectedRemappedDirectory = '{}/clim/mpas/remap/sst_QU240_to_' \ + '0.5x0.5degree'.format(self.test_dir) + self.assertEqual(remappedDirectory, expectedRemappedDirectory) def test_get_observation_climatology_file_names(self): config = self.setup_config() @@ -411,11 +405,14 @@ def cache_climatologies_driver(self, test, config, fieldName, expectedMonths = test['expectedMonths'] refClimatology = test['refClimatology'] - (climatologyFileName, climatologyPrefix) = \ - get_mpas_climatology_file_names( - config, fieldName, monthNames, + climatologyDirectory = \ + get_mpas_climatology_dir_name( + config, fieldName, remapper.sourceDescriptor.meshName) + climatologyPrefix = '{}/mpaso_{}_climo'.format( + climatologyDirectory, monthNames) + config.set('climatology', 'yearsPerCacheFile', str(yearsPerCacheFile)) # once without cache files @@ -435,8 +432,8 @@ def cache_climatologies_driver(self, test, config, fieldName, fingerprints = [] for suffix in expectedSuffixes: - expectedClimatologyFileName = '{}/clim/mpas/mld_QU240_' \ - '{}_{}.nc'.format( + expectedClimatologyFileName = '{}/clim/mpas/mld_QU240/mpaso_' \ + '{}_climo_{}.nc'.format( self.test_dir, monthNames, suffix) assert os.path.exists(expectedClimatologyFileName) @@ -460,8 +457,8 @@ def cache_climatologies_driver(self, test, config, fieldName, dsClimatology.close() for index, suffix in enumerate(expectedSuffixes): - expectedClimatologyFileName = '{}/clim/mpas/mld_QU240_' \ - '{}_{}.nc'.format( + expectedClimatologyFileName = '{}/clim/mpas/mld_QU240/mpaso_' \ + '{}_climo_{}.nc'.format( self.test_dir, monthNames, suffix) From bf115c2d65c9c4c6a1d6449c4647c0ecf92d1d9b Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Aug 2017 06:51:04 -0700 Subject: [PATCH 16/47] Remove alpha8, beta0 runs on edison; add G-QU240 The switch to ncclimo makes it difficult to accommodate the variable name mapping required to support older ACME versions (before beta1). The simplest solution is to not support these older versions any longer and to move away from mapping (which is confusing to developers). The new G-QU240 run is small and helpful for debugging MPAS-Analysis. --- ...ix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison | 139 ------------------ ... => config.20170807.beta1.G_oQU240.edison} | 17 ++- 2 files changed, 9 insertions(+), 147 deletions(-) delete mode 100644 configs/edison/config.20161006bugfix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison rename configs/edison/{config.20161117.beta0.A_WCYCL1850.ne30_oEC.edison => config.20170807.beta1.G_oQU240.edison} (91%) diff --git a/configs/edison/config.20161006bugfix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison b/configs/edison/config.20161006bugfix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison deleted file mode 100644 index 1f9dc5ecc..000000000 --- a/configs/edison/config.20161006bugfix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison +++ /dev/null @@ -1,139 +0,0 @@ -[runs] -## options related to the run to be analyzed and reference runs to be -## compared against - -# mainRunName is a name that identifies the simulation being analyzed. -mainRunName = 20161006bugfix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison -# preprocessedReferenceRunName is the name of a reference run that has been -# preprocessed to compare against (or None to turn off comparison). Reference -# runs of this type would have preprocessed results because they were not -# performed with MPAS components (so they cannot be easily ingested by -# MPAS-Analysis) -preprocessedReferenceRunName = B1850C5_ne30_v0.4 - -[input] -## options related to reading in the results to be analyzed - -# directory containing model results -baseDirectory = /global/cscratch1/sd/jonbob/ACME_simulations/20161006bugfix.alpha8.A_WCYCL1850S.ne30_oEC_ICG.edison/run - -# names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) -mpasMeshName = EC60to30 - -[output] -## options related to writing out plots, intermediate cached data sets, logs, -## etc. - -# directory where analysis should be written -baseDirectory = /dir/to/analysis/output - -# a list of analyses to generate. Valid names are: -# 'timeSeriesOHC', 'timeSeriesSST', 'climatologyMapSST', -# 'climatologyMapSSS', 'climatologyMapMLD', 'streamfunctionMOC', -# 'indexNino34', 'meridionalHeatTransport', -# 'timeSeriesSeaIceAreaVol', 'climatologyMapSeaIceConcThick' -# the following shortcuts exist: -# 'all' -- all analyses will be run -# 'all_timeSeries' -- all time-series analyses will be run -# 'all_climatology' -- all analyses involving climatologies -# 'all_horizontalMap' -- all analyses involving horizontal climatology maps -# 'all_ocean' -- all ocean analyses will be run -# 'all_seaIce' -- all sea-ice analyses will be run -# 'no_timeSeriesOHC' -- skip 'timeSeriesOHC' (and similarly with the -# other analyses). -# 'no_ocean', 'no_timeSeries', etc. -- in analogy to 'all_*', skip the -# given category of analysis -# an equivalent syntax can be used on the command line to override this -# option: -# ./run_analysis.py config.analysis --generate \ -# all,no_ocean,all_timeSeries -generate = ['all'] - -# alternative examples that would perform all analysis except -# 'timeSeriesOHC' -#generate = ['all', 'no_timeSeriesOHC'] -# Each subsequent list entry can be used to alter previous list entries. For -# example, the following would run all tasks that aren't ocean analyses, -# except that it would also run ocean time series tasks: -#generate = ['all', 'no_ocean', 'all_timeSeries'] - -[climatology] -## options related to producing climatologies, typically to compare against -## observations and previous runs - -# the first year over which to average climatalogies -startYear = 6 -# the last year over which to average climatalogies -endYear = 10 - -# already been generated, supplying the absolute path can save the time of -# generating a new one. If nothing is supplied, the file name is automatically -# generated based on the MPAS mesh name, the comparison grid resolution, and -# the interpolation method -mpasMappingFile = /global/project/projectdirs/acme/mapping/maps/map_oEC60to30_TO_0.5x0.5degree_blin.160412.nc - -[timeSeries] -## options related to producing time series plots, often to compare against -## observations and previous runs - -# start and end years for timeseries analysis. Using out-of-bounds values -# like start_year = 1 and end_year = 9999 will be clipped to the valid range -# of years, and is a good way of insuring that all values are used. -startYear = 1 -endYear = 51 - -[index] -## options related to producing nino index. - -# start and end years for the nino 3.4 analysis. Using out-of-bounds values -# like start_year = 1 and end_year = 9999 will be clipped to the valid range -# of years, and is a good way of insuring that all values are used. -# For valid statistics, index times should include at least 30 years -startYear = 1 -endYear = 9999 - -[oceanObservations] -## options related to ocean observations with which the results will be compared - -# directory where ocean observations are stored -baseDirectory = /global/project/projectdirs/acme/observations/Ocean/ -sstSubdirectory = SST -sssSubdirectory = SSS -mldSubdirectory = MLD -ninoSubdirectory = Nino -mhtSubdirectory = MHT - -[oceanPreprocessedReference] -## options related to preprocessed ocean reference run with which the results -## will be compared (e.g. a POP, CESM or ACME v0 run) - -# directory where ocean reference simulation results are stored -baseDirectory = /global/project/projectdirs/acme/ACMEv0_lowres/B1850C5_ne30_v0.4/ocn/postprocessing - -[seaIceObservations] -## options related to sea ice observations with which the results will be -## compared - -# directory where sea ice observations are stored -baseDirectory = /global/project/projectdirs/acme/observations/SeaIce - -[seaIcePreprocessedReference] -## options related to preprocessed sea ice reference run with which the results -## will be compared (e.g. a CICE, CESM or ACME v0 run) - -# directory where ocean reference simulation results are stored -baseDirectory = /global/project/projectdirs/acme/ACMEv0_lowres/B1850C5_ne30_v0.4/ice/postprocessing - -[timeSeriesSeaIceAreaVol] -## options related to plotting time series of sea ice area and volume - -# plot on polar plot -polarPlot = False - -[streamfunctionMOC] -## options related to plotting the streamfunction of the meridional overturning -## circulation (MOC) -maxChunkSize = 1000 - -# Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mapping/grids/EC60to30v1_SingleRegionAtlanticWTransportTransects_masks.nc diff --git a/configs/edison/config.20161117.beta0.A_WCYCL1850.ne30_oEC.edison b/configs/edison/config.20170807.beta1.G_oQU240.edison similarity index 91% rename from configs/edison/config.20161117.beta0.A_WCYCL1850.ne30_oEC.edison rename to configs/edison/config.20170807.beta1.G_oQU240.edison index 4acc52abc..f650d77be 100644 --- a/configs/edison/config.20161117.beta0.A_WCYCL1850.ne30_oEC.edison +++ b/configs/edison/config.20170807.beta1.G_oQU240.edison @@ -3,7 +3,7 @@ ## compared against # mainRunName is a name that identifies the simulation being analyzed. -mainRunName = 20161117.beta0.A_WCYCL1850.ne30_oEC.edison +mainRunName = 20170807.beta1.G_oQU240.edison # preprocessedReferenceRunName is the name of a reference run that has been # preprocessed to compare against (or None to turn off comparison). Reference # runs of this type would have preprocessed results because they were not @@ -15,10 +15,10 @@ preprocessedReferenceRunName = B1850C5_ne30_v0.4 ## options related to reading in the results to be analyzed # directory containing model results -baseDirectory = /scratch2/scratchdirs/golaz/ACME_simulations/20161117.beta0.A_WCYCL1850.ne30_oEC.edison/run +baseDirectory = /scratch1/scratchdirs/xylar/acme_scratch/edison/G-QU240-master-intel/run # names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) -mpasMeshName = EC60to30 +mpasMeshName = oQU240 [output] ## options related to writing out plots, intermediate cached data sets, logs, @@ -62,16 +62,16 @@ generate = ['all'] ## observations and previous runs # the first year over which to average climatalogies -startYear = 41 +startYear = 2 # the last year over which to average climatalogies -endYear = 50 +endYear = 5 # The names of the mapping file used for interpolation. If a mapping file has # already been generated, supplying the absolute path can save the time of # generating a new one. If nothing is supplied, the file name is automatically # generated based on the MPAS mesh name, the comparison grid resolution, and # the interpolation method -mpasMappingFile = /global/project/projectdirs/acme/mapping/maps/map_oEC60to30_TO_0.5x0.5degree_blin.160412.nc +# mpasMappingFile = [timeSeries] ## options related to producing time series plots, often to compare against @@ -81,7 +81,7 @@ mpasMappingFile = /global/project/projectdirs/acme/mapping/maps/map_oEC60to30_TO # like start_year = 1 and end_year = 9999 will be clipped to the valid range # of years, and is a good way of insuring that all values are used. startYear = 1 -endYear = 51 +endYear = 9999 [index] ## options related to producing nino index. @@ -104,6 +104,7 @@ mldSubdirectory = MLD ninoSubdirectory = Nino mhtSubdirectory = MHT + [oceanPreprocessedReference] ## options related to preprocessed ocean reference run with which the results ## will be compared (e.g. a POP, CESM or ACME v0 run) @@ -137,4 +138,4 @@ polarPlot = False maxChunkSize = 1000 # Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mapping/grids/EC60to30v1_SingleRegionAtlanticWTransportTransects_masks.nc +regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oQU240v3_Atlantic_region_and_southern_transect.nc From d9ca7f62c363473b0200fee22340c383aeec0f2f Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 10 Aug 2017 20:20:29 +0200 Subject: [PATCH 17/47] Add function to get ncclimo file names --- mpas_analysis/ocean/climatology_map.py | 31 ++++----- .../ocean/meridional_heat_transport.py | 10 +-- mpas_analysis/ocean/streamfunction_moc.py | 11 ++-- mpas_analysis/sea_ice/climatology_map.py | 66 +++++++++---------- mpas_analysis/shared/climatology/__init__.py | 2 +- .../shared/climatology/climatology.py | 54 +++++++++++++-- mpas_analysis/shared/constants/constants.py | 13 ++-- 7 files changed, 115 insertions(+), 72 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 74a8f4551..e683fb165 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -26,7 +26,8 @@ get_remapper, get_mpas_climatology_dir_name, \ get_observation_climatology_file_names, compute_climatology, \ remap_and_write_climatology, update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo, compute_seasonal_climatology_ncra + compute_climatologies_with_ncclimo, compute_seasonal_climatology_ncra, \ + get_ncclimo_season_file_name from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor @@ -161,6 +162,8 @@ def run(self): # {{{ startYear = config.getint('climatology', 'startYear') endYear = config.getint('climatology', 'endYear') + modelName = 'mpaso' + # the last climatology produced by NCO is always the annual, so if that # exists, others are also finished. climatologyFileName = \ @@ -174,7 +177,7 @@ def run(self): # {{{ startYear=startYear, endYear=endYear, variableList=[self.mpasFieldName], - modelName='mpaso', + modelName=modelName, decemberMode='sdd') dsObs = None @@ -186,13 +189,18 @@ def run(self): # {{{ monthValues = constants.monthDictionary[months] climatologyFileName = \ - self._get_season_file_name(months, climatologyDirectory) + get_ncclimo_season_file_name(climatologyDirectory, modelName, + months, startYear, endYear) maskedClimatologyFileName = \ - self._get_season_file_name(months, maskedClimatologyDirectory) + get_ncclimo_season_file_name(maskedClimatologyDirectory, + modelName, months, startYear, + endYear) remappedFileName = \ - self._get_season_file_name(months, remappedDirectory) + get_ncclimo_season_file_name(remappedDirectory, + modelName, months, startYear, + endYear) if months not in constants.ncclimoSeasonDictionary and \ not os.path.exists(climatologyFileName): @@ -200,7 +208,7 @@ def run(self): # {{{ compute_seasonal_climatology_ncra( config=config, inDirectory=climatologyDirectory, - modelName='mpaso', + modelName=modelName, inMonthValues=monthValues, outFileName=climatologyFileName) @@ -311,17 +319,6 @@ def run(self): # {{{ # }}} - def _get_season_file_name(self, seasonName, directory): # {{{ - if seasonName in constants.ncclimoSeasonDictionary: - fileName = '{}/mpaso_{}_climo.nc'.format( - directory, - constants.ncclimoSeasonDictionary[seasonName]) - else: - # we're going to have to build the climatology manuallly - fileName = '{}/mpaso_{}_climo.nc'.format( - directory, seasonName) - return fileName # }}} - # }}} diff --git a/mpas_analysis/ocean/meridional_heat_transport.py b/mpas_analysis/ocean/meridional_heat_transport.py index da1e6e5d3..d80f115c4 100644 --- a/mpas_analysis/ocean/meridional_heat_transport.py +++ b/mpas_analysis/ocean/meridional_heat_transport.py @@ -13,7 +13,8 @@ from ..shared.climatology.climatology \ import update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo + compute_climatologies_with_ncclimo, \ + get_ncclimo_season_file_name from ..shared.analysis_task import AnalysisTask @@ -198,9 +199,10 @@ def run(self): # {{{ print ' Load data...' - climatologyFileName = \ - '{}/mpaso_ANN_{:04d}01_{:04d}12_climo.nc'.format( - outputDirectory, self.startYear, self.endYear) + climatologyFileName = get_ncclimo_season_file_name(outputDirectory, + 'mpaso', 'ANN', + self.startYear, + self.endYear) if not os.path.exists(climatologyFileName): make_directories(outputDirectory) diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 424693f86..08b9e613b 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -18,7 +18,8 @@ from ..shared.climatology.climatology \ import update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo + compute_climatologies_with_ncclimo, \ + get_ncclimo_season_file_name from ..shared.analysis_task import AnalysisTask @@ -269,10 +270,10 @@ def _compute_velocity_climatologies(self): # {{{ outputDirectory = '{}/meanVelocity'.format(outputRoot) - self.velClimoFile = \ - '{}/mpaso_ANN_{:04d}01_{:04d}12_climo.nc'.format( - outputDirectory, self.startYearClimo, - self.endYearClimo) + self.velClimoFile = get_ncclimo_season_file_name(outputDirectory, + 'mpaso', 'ANN', + self.startYearClimo, + self.endYearClimo) if not os.path.exists(self.velClimoFile): make_directories(outputDirectory) diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index 9bde55936..e360b9068 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -13,7 +13,8 @@ get_observation_climatology_file_names, \ compute_climatologies_with_ncclimo, \ update_climatology_bounds_from_file_names, \ - remap_and_write_climatology, compute_seasonal_climatology_ncra + remap_and_write_climatology, compute_seasonal_climatology_ncra, \ + get_ncclimo_season_file_name from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor from ..shared.plot.plotting import plot_polar_comparison, \ @@ -92,7 +93,10 @@ def setup_and_check(self): # {{{ update_climatology_bounds_from_file_names(self.inputFiles, self.config) - return # }}} + self.startYear = self.config.getint('climatology', 'startYear') + self.endYear = self.config.getint('climatology', 'endYear') + + # }}} def run(self): # {{{ """ @@ -151,9 +155,6 @@ def _compute_seasonal_climatologies(self, seasons): # {{{ overwriteMpasClimatology = config.getWithDefault( 'climatology', 'overwriteMpasClimatology', False) - startYear = config.getint('climatology', 'startYear') - endYear = config.getint('climatology', 'endYear') - self.climatologyDirectory = \ get_mpas_climatology_dir_name( config=config, @@ -178,8 +179,8 @@ def _compute_seasonal_climatologies(self, seasons): # {{{ config=config, inDirectory=self.historyDirectory, outDirectory=self.climatologyDirectory, - startYear=startYear, - endYear=endYear, + startYear=self.startYear, + endYear=self.endYear, variableList=['timeMonthly_avg_iceAreaCell', 'timeMonthly_avg_iceVolumeCell'], modelName='mpascice', @@ -204,8 +205,6 @@ def _compute_and_plot_concentration(self): config = self.config mainRunName = config.get('runs', 'mainRunName') - startYear = config.getint('climatology', 'startYear') - endYear = config.getint('climatology', 'endYear') subtitle = 'Ice concentration' @@ -265,7 +264,9 @@ def _compute_and_plot_concentration(self): climFieldName = 'iceConcentration' remappedFileName = \ - self._get_season_file_name(months, self.remappedDirectory) + get_ncclimo_season_file_name(self.remappedDirectory, + 'mpascice', months, + self.startYear, self.endYear) remappedClimatology = xr.open_dataset(remappedFileName) @@ -317,10 +318,10 @@ def _compute_and_plot_concentration(self): difference = iceConcentration - obsIceConcentration title = '{} ({}, years {:04d}-{:04d})'.format( - subtitle, months, startYear, endYear) + subtitle, months, self.startYear, self.endYear) fileout = '{}/iceconc{}{}_{}_{}_years{:04d}-{:04d}.png'.format( self.plotsDirectory, obsName, hemisphere, mainRunName, - months, startYear, endYear) + months, self.startYear, self.endYear) plot_polar_comparison( config, lonTarg, @@ -361,8 +362,6 @@ def _compute_and_plot_thickness(self): plotsDirectory = build_config_full_path(config, 'output', 'plotsSubdirectory') mainRunName = config.get('runs', 'mainRunName') - startYear = config.getint('climatology', 'startYear') - endYear = config.getint('climatology', 'endYear') obsFileNames = {} remappedObsFileNames = {} @@ -412,7 +411,9 @@ def _compute_and_plot_thickness(self): climFieldName = 'iceThickness' remappedFileName = \ - self._get_season_file_name(months, self.remappedDirectory) + get_ncclimo_season_file_name(self.remappedDirectory, + 'mpascice', months, + self.startYear, self.endYear) remappedClimatology = xr.open_dataset(remappedFileName) @@ -469,11 +470,11 @@ def _compute_and_plot_thickness(self): difference = iceThickness - obsIceThickness title = '{} ({}, years {:04d}-{:04d})'.format(subtitle, months, - startYear, - endYear) + self.startYear, + self.endYear) fileout = '{}/icethick{}_{}_{}_years{:04d}-{:04d}.png'.format( - plotsDirectory, hemisphere, mainRunName, months, startYear, - endYear) + plotsDirectory, hemisphere, mainRunName, months, + self.startYear, self.endYear) plot_polar_comparison( config, lonTarg, @@ -497,19 +498,10 @@ def _compute_and_plot_thickness(self): # }}} - def _get_season_file_name(self, seasonName, directory): # {{{ - if seasonName in constants.ncclimoSeasonDictionary: - fileName = '{}/mpascice_{}_climo.nc'.format( - directory, - constants.ncclimoSeasonDictionary[seasonName]) - else: - # we're going to have to build the climatology manuallly - fileName = '{}/mpascice_{}_climo.nc'.format( - directory, seasonName) - return fileName # }}} - def _remap_seasonal_climatology(self, seasons): # {{{ + modelName = 'mpascice' + for season in seasons: overwriteMpasClimatology = self.config.getWithDefault( @@ -519,14 +511,19 @@ def _remap_seasonal_climatology(self, seasons): # {{{ # interpolate the model results climatologyFileName = \ - self._get_season_file_name(season, self.climatologyDirectory) + get_ncclimo_season_file_name(self.climatologyDirectory, + modelName, season, + self.startYear, self.endYear) maskedClimatologyFileName = \ - self._get_season_file_name(season, - self.maskedClimatologyDirectory) + get_ncclimo_season_file_name(self.maskedClimatologyDirectory, + modelName, season, + self.startYear, self.endYear) remappedFileName = \ - self._get_season_file_name(season, self.remappedDirectory) + get_ncclimo_season_file_name(self.remappedDirectory, + modelName, season, + self.startYear, self.endYear) if season not in constants.ncclimoSeasonDictionary and \ (overwriteMpasClimatology or @@ -542,6 +539,7 @@ def _remap_seasonal_climatology(self, seasons): # {{{ if (overwriteMpasClimatology or not os.path.exists(maskedClimatologyFileName)): # slice the data set and set _FillValue (happens automatically) + print climatologyFileName climatology = xr.open_dataset(climatologyFileName) iselValues = {'Time': 0} # select only Time=0 diff --git a/mpas_analysis/shared/climatology/__init__.py b/mpas_analysis/shared/climatology/__init__.py index 7b05c1533..7b5f0efaf 100644 --- a/mpas_analysis/shared/climatology/__init__.py +++ b/mpas_analysis/shared/climatology/__init__.py @@ -4,4 +4,4 @@ update_start_end_year, add_years_months_days_in_month, \ remap_and_write_climatology, compute_climatologies_with_ncclimo, \ compute_seasonal_climatology_ncra, \ - update_climatology_bounds_from_file_names + update_climatology_bounds_from_file_names, get_ncclimo_season_file_name diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index b26ff61c2..4597ba965 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -181,10 +181,6 @@ def get_mpas_climatology_dir_name(config, fieldName, mpasMeshName, Authors ------- Xylar Asay-Davis - - Last Modified - ------------- - 05/05/2017 """ climatologyBaseDirectory = build_config_full_path( @@ -213,6 +209,56 @@ def get_mpas_climatology_dir_name(config, fieldName, mpasMeshName, # }}} +def get_ncclimo_season_file_name(directory, modelName, seasonName, startYear, + endYear): # {{{ + """ + Given config options, the name of a field and a string identifying the + months in a seasonal climatology, returns the full path for MPAS + climatology files before and after regridding. + + Parameters + ---------- + directory : str + the directory containing climatologies generated by ncclimo + + modelName : ['mpaso', 'mpascice'] + The name of the component for which the climatology is to be computed + + seasonName : str + One of the season names in ``constants.monthDictionary`` + + startYear, endYear : int + The start and end years of the climatology + + Returns + ------- + fileName : str + The path to the climatology file for the specified season. + + Authors + ------- + Xylar Asay-Davis + """ + + monthValues = sorted(constants.monthDictionary[seasonName]) + startMonth = monthValues[0] + endMonth = monthValues[-1] + + suffix = '{:04d}{:02d}_{:04d}{:02d}_climo'.format(startYear, startMonth, + endYear, endMonth) + + if seasonName in constants.ncclimoSeasonDictionary: + fileName = '{}/{}_{}_{}.nc'.format( + directory, + modelName, + constants.ncclimoSeasonDictionary[seasonName], + suffix) + else: + fileName = '{}/{}_{}_{}.nc'.format(directory, modelName, seasonName, + suffix) + return fileName # }}} + + def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, startYear, endYear, variableList, modelName, diff --git a/mpas_analysis/shared/constants/constants.py b/mpas_analysis/shared/constants/constants.py index 8bb9edf1b..2aca6673f 100644 --- a/mpas_analysis/shared/constants/constants.py +++ b/mpas_analysis/shared/constants/constants.py @@ -22,13 +22,12 @@ monthsInYear = 12 -monthDictionary = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6, - 'Jul': 7, 'Aug': 8, 'Sep': 9, 'Oct': 10, 'Nov': 11, - 'Dec': 12, 'JFM': np.array([1, 2, 3]), - 'AMJ': np.array([4, 5, 6]), 'JAS': np.array([7, 8, 9]), - 'OND': np.array([10, 11, 12]), 'ANN': np.arange(1, 13), - 'ON': np.array([10, 11]), 'FM': np.array([2, 3]), - 'DJF': np.array([12, 1, 2]), 'JJA': np.array([6, 7, 8])} +monthDictionary = {'Jan': [1], 'Feb': [2], 'Mar': [3], 'Apr': [4], 'May': [5], + 'Jun': [6], 'Jul': [7], 'Aug': [8], 'Sep': [9], 'Oct': [10], + 'Nov': [11], 'Dec': [12], 'JFM': [1, 2, 3], + 'AMJ': [4, 5, 6], 'JAS': [7, 8, 9], 'OND': [10, 11, 12], + 'ANN': list(np.arange(1, 13)), 'ON': [10, 11], 'FM': [2, 3], + 'DJF': [12, 1, 2], 'JJA': [6, 7, 8]} ncclimoSeasonDictionary = {'Jan': '01', 'Feb': '02', 'Mar': '03', 'Apr': '04', 'May': '05', 'Jun': '06', 'Jul': '07', 'Aug': '08', From 79141ac2ee793df52fb6a0bf7a10f484a00e62c3 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 11 Aug 2017 07:34:00 -0700 Subject: [PATCH 18/47] Switch ncclimo to use --seasons flag This flag has just been added in nco v. 4.6.8-alpha06 --- README.md | 2 +- mpas_analysis/ocean/climatology_map.py | 14 +-- .../ocean/meridional_heat_transport.py | 1 + mpas_analysis/ocean/streamfunction_moc.py | 1 + mpas_analysis/sea_ice/climatology_map.py | 15 +-- mpas_analysis/shared/climatology/__init__.py | 1 - .../shared/climatology/climatology.py | 92 ++++--------------- mpas_analysis/shared/constants/constants.py | 7 -- 8 files changed, 26 insertions(+), 107 deletions(-) diff --git a/README.md b/README.md index 9ab459aea..287651ae4 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This analysis repository presumes that the following python packages are availab * bottleneck * basemap * lxml - * nco >= 4.5.4 + * nco >= 4.6.8 * pyproj You can easily install them via the conda command: diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index e683fb165..5d240e8f5 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -26,8 +26,7 @@ get_remapper, get_mpas_climatology_dir_name, \ get_observation_climatology_file_names, compute_climatology, \ remap_and_write_climatology, update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo, compute_seasonal_climatology_ncra, \ - get_ncclimo_season_file_name + compute_climatologies_with_ncclimo, get_ncclimo_season_file_name from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor @@ -178,6 +177,7 @@ def run(self): # {{{ endYear=endYear, variableList=[self.mpasFieldName], modelName=modelName, + seasons=outputTimes, decemberMode='sdd') dsObs = None @@ -202,16 +202,6 @@ def run(self): # {{{ modelName, months, startYear, endYear) - if months not in constants.ncclimoSeasonDictionary and \ - not os.path.exists(climatologyFileName): - # weighted average of months in season - compute_seasonal_climatology_ncra( - config=config, - inDirectory=climatologyDirectory, - modelName=modelName, - inMonthValues=monthValues, - outFileName=climatologyFileName) - if not os.path.exists(maskedClimatologyFileName): # slice and mask the data set climatology = xr.open_dataset(climatologyFileName) diff --git a/mpas_analysis/ocean/meridional_heat_transport.py b/mpas_analysis/ocean/meridional_heat_transport.py index d80f115c4..7c2ed77be 100644 --- a/mpas_analysis/ocean/meridional_heat_transport.py +++ b/mpas_analysis/ocean/meridional_heat_transport.py @@ -216,6 +216,7 @@ def run(self): # {{{ endYear=self.endYear, variableList=variableList, modelName='mpaso', + seasons=['ANN'], decemberMode='sdd') annualClimatology = xr.open_dataset(climatologyFileName) diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 08b9e613b..545d32062 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -286,6 +286,7 @@ def _compute_velocity_climatologies(self): # {{{ endYear=self.endYearClimo, variableList=variableList, modelName='mpaso', + seasons=['ANN'], decemberMode='sdd') # }}} diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index e360b9068..6194dcac1 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -13,8 +13,7 @@ get_observation_climatology_file_names, \ compute_climatologies_with_ncclimo, \ update_climatology_bounds_from_file_names, \ - remap_and_write_climatology, compute_seasonal_climatology_ncra, \ - get_ncclimo_season_file_name + remap_and_write_climatology, get_ncclimo_season_file_name from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor from ..shared.plot.plotting import plot_polar_comparison, \ @@ -184,6 +183,7 @@ def _compute_seasonal_climatologies(self, seasons): # {{{ variableList=['timeMonthly_avg_iceAreaCell', 'timeMonthly_avg_iceVolumeCell'], modelName='mpascice', + seasons=seasons, decemberMode='sdd') self._remap_seasonal_climatology(seasons) @@ -525,17 +525,6 @@ def _remap_seasonal_climatology(self, seasons): # {{{ modelName, season, self.startYear, self.endYear) - if season not in constants.ncclimoSeasonDictionary and \ - (overwriteMpasClimatology or - not os.path.exists(climatologyFileName)): - # weighted average of months in season - compute_seasonal_climatology_ncra( - config=self.config, - inDirectory=self.climatologyDirectory, - modelName='mpascice', - inMonthValues=monthValues, - outFileName=climatologyFileName) - if (overwriteMpasClimatology or not os.path.exists(maskedClimatologyFileName)): # slice the data set and set _FillValue (happens automatically) diff --git a/mpas_analysis/shared/climatology/__init__.py b/mpas_analysis/shared/climatology/__init__.py index 7b5f0efaf..c9bead3f6 100644 --- a/mpas_analysis/shared/climatology/__init__.py +++ b/mpas_analysis/shared/climatology/__init__.py @@ -3,5 +3,4 @@ compute_monthly_climatology, compute_climatology, cache_climatologies, \ update_start_end_year, add_years_months_days_in_month, \ remap_and_write_climatology, compute_climatologies_with_ncclimo, \ - compute_seasonal_climatology_ncra, \ update_climatology_bounds_from_file_names, get_ncclimo_season_file_name diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index 4597ba965..0f8c32aef 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -247,22 +247,18 @@ def get_ncclimo_season_file_name(directory, modelName, seasonName, startYear, suffix = '{:04d}{:02d}_{:04d}{:02d}_climo'.format(startYear, startMonth, endYear, endMonth) - if seasonName in constants.ncclimoSeasonDictionary: - fileName = '{}/{}_{}_{}.nc'.format( - directory, - modelName, - constants.ncclimoSeasonDictionary[seasonName], - suffix) - else: - fileName = '{}/{}_{}_{}.nc'.format(directory, modelName, seasonName, - suffix) + if seasonName in constants.abrevMonthNames: + seasonName = '{:02d}'.format(monthValues[0]) + fileName = '{}/{}_{}_{}.nc'.format(directory, modelName, seasonName, + suffix) return fileName # }}} def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, startYear, endYear, variableList, modelName, - decemberMode='scd', + seasons='none', + decemberMode='sdd', remapper=None, regriddedDirectory=None): # {{{ ''' @@ -290,12 +286,17 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, modelName : ['mpaso', 'mpascice'] The name of the component for which the climatology is to be computed - decemberMode : ['scd', 'sdd'] + seasons : list of str + Seasons (keys in ``constants.monthDictionary`` other than individual + months, which will be removed automatically) over which monthly + climatologies should be aggregated. + + decemberMode : ['scd', 'sdd'], optional Whether years start in December (scd - seasonally continuous December) or January (sdd - seasonally discontinuous December). If the former, the data set begins with December of the year before startYear and ends - with November of endYear. Otherwise, goes from January of startYear to - December of endYear. + with November of endYear. Otherwise (the default), goes from January + of startYear to December of endYear. remapper : ``shared.intrpolation.Remapper`` object, optional If present, a remapper that defines the source and desitnation grids @@ -326,12 +327,17 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, parallelMode = config.get('execute', 'ncclimoParallelMode') + # make sure to remove individual months from seasons + seasons = [season for season in seasons if season not in + constants.abrevMonthNames] + args = ['ncclimo', '--clm_md=mth', '-a', decemberMode, '-m', modelName, '-p', parallelMode, '-v', ','.join(variableList), + '--seasons={}'.format(','.join(seasons)), '-s', '{:04d}'.format(startYear), '-e', '{:04d}'.format(endYear), '-i', inDirectory, @@ -352,66 +358,6 @@ def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, subprocess.check_call(args) # }}} -def compute_seasonal_climatology_ncra(config, inDirectory, modelName, - inMonthValues, outFileName): # {{{ - ''' - Uses ncra to compute a seasonal climatology from monthly climatologies - - Parameters - ---------- - config : instance of MpasAnalysisConfigParser - Contains configuration options - - inDirectory : str - The run directory containing timeSeriesStatsMonthly output - - modelName : ['mpaso', 'mpascice'] - The name of the component for which the climatology is to be computed - - inMonthValues : list like - A list of months in the season - - outFileName : str - The file to which the seasonal climatology will be written - - Raises - ------ - OSError - If ``ncra`` is not in the system path. - - Author - ------ - Xylar Asay-Davis - ''' - - if find_executable('ncra') is None: - raise OSError('ncra not found. Make sure the latest nco ' - 'package is installed: \n' - 'conda install nco\n' - 'Note: this presumes use of the conda-forge ' - 'channel.') - - weights = [] - inFileNames = [] - for month in inMonthValues: - weights.append(str(constants.daysInMonth[month-1])) - - inFileNames.append('{}/{}_{:02d}_climo.nc'.format( - inDirectory, modelName, month)) - - args = ['ncra', '--cb', '-O', '-w', ','.join(weights)] + inFileNames + \ - [outFileName] - - print 'running: {}'.format(' '.join(args)) - - # make sure any output is flushed before we add output from the - # subprocess - sys.stdout.flush() - sys.stderr.flush() - - subprocess.check_call(args) # }}} - - def get_observation_climatology_file_names(config, fieldName, monthNames, componentName, remapper): # {{{ """ diff --git a/mpas_analysis/shared/constants/constants.py b/mpas_analysis/shared/constants/constants.py index 2aca6673f..0d999fdba 100644 --- a/mpas_analysis/shared/constants/constants.py +++ b/mpas_analysis/shared/constants/constants.py @@ -29,13 +29,6 @@ 'ANN': list(np.arange(1, 13)), 'ON': [10, 11], 'FM': [2, 3], 'DJF': [12, 1, 2], 'JJA': [6, 7, 8]} -ncclimoSeasonDictionary = {'Jan': '01', 'Feb': '02', 'Mar': '03', 'Apr': '04', - 'May': '05', 'Jun': '06', 'Jul': '07', 'Aug': '08', - 'Sep': '09', 'Oct': '10', 'Nov': '11', 'Dec': '12', - 'DJF': 'DJF', 'MAM': 'MAM', 'JJA': 'JJA', - 'SON': 'SON', 'ANN': 'ANN'} - - daysInMonth = np.array([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]) abrevMonthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", From a1e34cac025b4cf72e287ddada820c98427afbc3 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 15:21:14 +0200 Subject: [PATCH 19/47] Add support for prerequisite tasks Each analysis task now has a list of prerequisite tasks that must run before it can be run. In addition to supporting caching times, in the future this functionality could be used to build tasks out of multiple subtasks (e.g. one to compute the climatology and one to do the plotting). This would be particularly useful if multiple tasks depend on the same climatology (which is not currently the case). A little bit of clean up has been done on some __init__.py files and on shared.io.utility --- mpas_analysis/shared/analysis_task.py | 279 +++++++++++-- .../shared/generalized_reader/__init__.py | 1 + mpas_analysis/shared/io/__init__.py | 5 +- mpas_analysis/shared/io/utility.py | 12 +- run_analysis.py | 395 +++++++++++------- 5 files changed, 516 insertions(+), 176 deletions(-) diff --git a/mpas_analysis/shared/analysis_task.py b/mpas_analysis/shared/analysis_task.py index 866988962..0dca60692 100644 --- a/mpas_analysis/shared/analysis_task.py +++ b/mpas_analysis/shared/analysis_task.py @@ -4,13 +4,15 @@ Authors ------- Xylar Asay-Davis - ''' import warnings +import numpy + +from .timekeeping.utility import days_to_datetime, string_to_days_since_date -from .io import NameList, StreamsFile -from .io.utility import build_config_full_path, make_directories +from .io import NameList, StreamsFile, build_config_full_path, \ + make_directories from .variable_namelist_stream_maps.ocean_maps import oceanNamelistMap, \ oceanStreamMap, oceanVariableMap @@ -23,12 +25,74 @@ class AnalysisTask(object): # {{{ ''' The base class for analysis tasks. + Attributes + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + taskName : str + The name of the task, typically the same as the class name except + starting with lowercase (e.g. 'myTask' for class 'MyTask') + + componentName : {'ocean', 'seaIce'} + The name of the component (same as the folder where the task + resides) + + tags : list of str + Tags used to describe the task (e.g. 'timeSeries', 'climatology', + horizontalMap', 'index', 'transect'). These are used to determine + which tasks are generated (e.g. 'all_transect' or 'no_climatology' + in the 'generate' flags) + + prerequisiteTasks : list of str, optional + Names of tasks that must complete before this task can run. + Typically, this will include one or more tasks of the form + ``cacheTimes``, e.g. + ``cacheOceanTimeSeriesStatsTimes`` + + runDirectory : str + the base input directory for namelists, streams files and restart files + + historyDirectory : str + the base input directory for history files + + plotsDirectory : str + the directory for writing plots (which is also created if it doesn't + exist) + + namelist : ``NameList`` object + the namelist reader + + runStreams : ``StreamsFile`` object + the streams file reader for streams in the run directory (e.g. restart + files) + + historyStreams : ``StreamsFile`` object + the streams file reader for streams in the history directory (most + streams other than restart files) + + calendar : {'gregorian', 'gregorian_noleap'} + the name of the calendar + + namelistMap : dict + A map between names of namelist options used by MPAS-Analysis and + those in various MPAS versions + + streamMap : dict + a map between names of streams used by MPAS-Analysis and those in + various MPAS versions + + variableMap : dict + a map between names of variables within streams used by MPAS-Analysis + and those in various MPAS versions + Authors ------- Xylar Asay-Davis ''' - def __init__(self, config, taskName, componentName, tags=[]): # {{{ + def __init__(self, config, taskName, componentName, tags=[], + prerequisiteTasks=None): # {{{ ''' Construct the analysis task. @@ -55,6 +119,12 @@ def __init__(self, config, taskName, componentName, tags=[]): # {{{ which tasks are generated (e.g. 'all_transect' or 'no_climatology' in the 'generate' flags) + prerequisiteTasks : list of str, optional + Names of tasks that must complete before this task can run. + Typically, this will include one or more tasks of the form + ``cacheTimes``, e.g. + ``cacheOceanTimeSeriesStatsTimes`` + Authors ------- Xylar Asay-Davis @@ -62,33 +132,14 @@ def __init__(self, config, taskName, componentName, tags=[]): # {{{ self.config = config self.taskName = taskName self.componentName = componentName - self.tags = tags # }}} + self.tags = tags + self.prerequisiteTasks = prerequisiteTasks # }}} def setup_and_check(self): # {{{ ''' Perform steps to set up the analysis (e.g. reading namelists and streams files). - After this call, the following member variables are set: - self.runDirectory : the base input directory for namelists, streams - files and restart files - self.historyDirectory : the base input directory for history files - self.plotsDirectory : the directory for writing plots (which is - also created if it doesn't exist) - self.namelist : the namelist reader - self.runStreams : the streams file reader for streams in the run - directory (e.g. restart files) - self.historyStreams : the streams file reader for streams in the - history directory (most streams other than restart files) - self.calendar : the name of the calendar ('gregorian' or - 'gregoraian_noleap') - self.namelistMap : a map between names of namelist options used by - MPAS-Analysis and those in various MPAS versions - self.streamMap : a map between names of streams used by - MPAS-Analysis and those in various MPAS versions - self.variableMap : a map between names of variables within streams - used by MPAS-Analysis and those in various MPAS versions - Individual tasks (children classes of this base class) should first call this method to perform basic setup, then, check whether the configuration is correct for a given analysis and perform additional, @@ -96,6 +147,51 @@ def setup_and_check(self): # {{{ necessary observations and other data files are found, then, determine the list of files to be read when the analysis is run. + If the task includes ``climatology``, ``timeSeries`` or ``index`` tags, + ``startDate`` and ``endDate`` config options are computed from + ``startYear`` and ``endYear``config options. + + After this call, the following attributes are set. + + Attributes + ---------- + runDirectory : str + the base input directory for namelists, streams files and restart + files + + historyDirectory : str + the base input directory for history files + + plotsDirectory : str + the directory for writing plots (which is also created if it + doesn't exist) + + namelist : ``NameList`` object + the namelist reader + + runStreams : ``StreamsFile`` object + the streams file reader for streams in the run directory (e.g. + restart files) + + historyStreams : ``StreamsFile`` object + the streams file reader for streams in the history directory (most + streams other than restart files) + + calendar : {'gregorian', 'gregorian_noleap'} + the name of the calendar + + namelistMap : dict + A map between names of namelist options used by MPAS-Analysis and + those in various MPAS versions + + streamMap : dict + a map between names of streams used by MPAS-Analysis and those in + various MPAS versions + + variableMap : dict + a map between names of variables within streams used by + MPAS-Analysis and those in various MPAS versions + Authors ------- Xylar Asay-Davis @@ -312,6 +408,139 @@ def set_start_end_date(self, section): # {{{ self.config.getint(section, 'endYear')) self.config.set(section, 'endDate', endDate) # }}} + def update_start_end_date(self, section, streamName): # {{{ + ''' + Update the start and end dates (and years) based on the times found + in the given stream. Cache the times if they are not already cached. + + Parameters + ---------- + section : str + The name of a section in the config file containing ``startYear`` + and ``endYear`` options. ``section`` is typically one of + ``climatology``, ``timeSeries`` or ``index`` + + streamName : str + The name of a stream from which to read (and cache) the times + + Returns + ------- + changed : bool + Whether the start and end dates were updated. + + Authors + ------- + Xylar Asay-Davis + ''' + + startDate = self.config.get(section, 'startDate') + endDate = self.config.get(section, 'endDate') + startDate = string_to_days_since_date(dateString=startDate, + calendar=self.calendar) + endDate = string_to_days_since_date(dateString=endDate, + calendar=self.calendar) + + inFileNames = self.get_input_file_names( + streamName, startAndEndDateSection=section) + + fullTimeCache = self.cache_multifile_dataset_times( + inFileNames, streamName, timeVariableName='Time') + + # find only those cached times between starDate and endDate + times = [] + for fileName in fullTimeCache: + localTimes = fullTimeCache[fileName]['times'] + mask = numpy.logical_and(localTimes >= startDate, + localTimes < endDate) + if numpy.count_nonzero(mask) == 0: + continue + + times.extend(list(localTimes[mask])) + + requestedStartYear = self.config.getint('climatology', 'startYear') + requestedEndYear = self.config.getint('climatology', 'endYear') + + startYear = days_to_datetime(numpy.amin(times), + calendar=self.calendar).year + endYear = days_to_datetime(numpy.amax(times), + calendar=self.calendar).year + changed = False + if startYear != requestedStartYear or endYear != requestedEndYear: + message = "{} start and/or end year different from " \ + "requested\n" \ + "requested: {:04d}-{:04d}\n" \ + "actual: {:04d}-{:04d}\n".format(section, + requestedStartYear, + requestedEndYear, + startYear, + endYear) + warnings.warn(message) + self.config.set(section, 'startYear', str(startYear)) + self.config.set(section, 'endYear', str(endYear)) + + startDate = '{:04d}-01-01_00:00:00'.format(startYear) + self.config.set(section, 'startDate', startDate) + endDate = '{:04d}-12-31_23:59:59'.format(endYear) + self.config.set(section, 'endDate', endDate) # }}} + + changed = True + + return changed # }}} + + def get_input_file_names(self, streamName, + startDate=None, endDate=None, + startAndEndDateSection=None): # {{{ + ''' + Get a list of input files corresponding to the given stream and + optionally bounded by the start and end dates found in the given + section of the config file. + + Parameters + ---------- + streamName : str + The name of a stream to check. If ``self.streamMap`` is defined, + the streamName will be mapped to the corresponding name in the + streams file + + startDate, endDate : float, optional + start and end date to use in determining which files to include in + the list + + startAndEndDateSection : str, optional + If ``startDate`` and ``endDate`` arguments are not supplied, the + name of a section in the config file containing ``startDate`` and + ``endDate`` options to use instead. ``startAndEndDateSection`` is + typically one of ``climatology``, ``timeSeries`` or ``index``. + + Raises + ------ + RuntimeError + If no files are found in the desired date range. + + Authors + ------- + Xylar Asay-Davis + ''' + + if startDate is None and endDate is None and \ + startAndEndDateSection is not None: + startDate = self.config.get(startAndEndDateSection, 'startDate') + endDate = self.config.get(startAndEndDateSection, 'endDate') + + if self.streamMap is not None: + streamName = \ + self.historyStreams.find_stream(self.streamMap[streamName]) + inputFileNames = self.historyStreams.readpath(streamName, + startDate=startDate, + endDate=endDate, + calendar=self.calendar) + + if len(inputFileNames) == 0: + raise RuntimeError('No input files could be found in stream {} ' + 'between {} and {}'.format(streamName, + startDate, endDate)) + return inputFileNames # }}} + # }}} diff --git a/mpas_analysis/shared/generalized_reader/__init__.py b/mpas_analysis/shared/generalized_reader/__init__.py index e69de29bb..da147bbd5 100644 --- a/mpas_analysis/shared/generalized_reader/__init__.py +++ b/mpas_analysis/shared/generalized_reader/__init__.py @@ -0,0 +1 @@ +from generalized_reader import open_multifile_dataset diff --git a/mpas_analysis/shared/io/__init__.py b/mpas_analysis/shared/io/__init__.py index 72eb702eb..e2ad76440 100644 --- a/mpas_analysis/shared/io/__init__.py +++ b/mpas_analysis/shared/io/__init__.py @@ -1,3 +1,4 @@ from .namelist_streams_interface import NameList, StreamsFile -from .utility import paths -from .write_netcdf import write_netcdf \ No newline at end of file +from .utility import paths, make_directories, build_config_full_path, \ + check_path_exists +from .write_netcdf import write_netcdf diff --git a/mpas_analysis/shared/io/utility.py b/mpas_analysis/shared/io/utility.py index c37e10979..6bb7cf4fe 100644 --- a/mpas_analysis/shared/io/utility.py +++ b/mpas_analysis/shared/io/utility.py @@ -10,7 +10,7 @@ import string -def paths(*args): # {{{ +def paths(*args): # {{{ """ Returns glob'd paths in list for arbitrary number of function arguments. Note, each expanded set of paths is sorted. @@ -20,11 +20,11 @@ def paths(*args): # {{{ paths = [] for aargs in args: paths += sorted(glob.glob(aargs)) - return paths # }}} + return paths # }}} def fingerprint_generator(size=12, - chars=string.ascii_uppercase + string.digits): # {{{ + chars=string.ascii_uppercase + string.digits): # {{{ """ Returns a random string that can be used as a unique fingerprint @@ -33,7 +33,7 @@ def fingerprint_generator(size=12, Phillip J. Wolfram """ - return ''.join(random.choice(chars) for _ in range(size)) # }}} + return ''.join(random.choice(chars) for _ in range(size)) # }}} def make_directories(path): # {{{ @@ -54,7 +54,7 @@ def make_directories(path): # {{{ def build_config_full_path(config, section, relativePathOption, relativePathSection=None, - defaultPath=None): # {{{ + defaultPath=None): # {{{ """ Returns a full path from a base directory and a relative path @@ -93,7 +93,7 @@ def build_config_full_path(config, section, relativePathOption, if defaultPath is not None and not os.path.exists(fullPath): fullPath = defaultPath - return fullPath # }}} + return fullPath # }}} def check_path_exists(path): # {{{ diff --git a/run_analysis.py b/run_analysis.py index eaac8541c..0f5476adf 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -17,6 +17,7 @@ import warnings import subprocess import time +from collections import OrderedDict from mpas_analysis.configuration.MpasAnalysisConfigParser \ import MpasAnalysisConfigParser @@ -25,11 +26,117 @@ make_directories +def build_analysis_list(config, isSubtask): # {{{ + """ + Build a list of analysis tasks based on the 'generate' config option. + + Authors + ------- + Xylar Asay-Davis + """ + + # choose the right rendering backend, depending on whether we're displaying + # to the screen + if not config.getboolean('plot', 'displayToScreen'): + mpl.use('Agg') + + # analysis can only be imported after the right MPL renderer is selected + from mpas_analysis import ocean + from mpas_analysis import sea_ice + + # analyses will be a list of analysis classes + analyses = [] + + # Ocean Analyses + analyses.append(ocean.TimeSeriesOHC(config)) + analyses.append(ocean.TimeSeriesSST(config)) + analyses.append(ocean.IndexNino34(config)) + analyses.append(ocean.MeridionalHeatTransport(config)) + analyses.append(ocean.StreamfunctionMOC(config)) + + analyses.append(ocean.ClimatologyMapSST(config)) + analyses.append(ocean.ClimatologyMapMLD(config)) + analyses.append(ocean.ClimatologyMapSSS(config)) + + # Sea Ice Analyses + analyses.append(sea_ice.TimeSeriesSeaIce(config)) + analyses.append(sea_ice.ClimatologyMapSeaIce(config)) + + possibleAnalyses = OrderedDict() + for analysisTask in analyses: + possibleAnalyses[analysisTask.taskName] = analysisTask + + # check which analysis we actually want to generate and only keep those + analysesToGenerate = OrderedDict() + for analysisTask in possibleAnalyses.itervalues(): + # update the dictionary with this task and perhaps its prerequisites + analysesToAdd = add_task_and_prereqisites(analysisTask, + possibleAnalyses, + analysesToGenerate, + isPrerequisite=False, + isSubtask=isSubtask) + analysesToGenerate.update(analysesToAdd) + + return analysesToGenerate # }}} + + +def add_task_and_prereqisites(analysisTask, possibleAnalyses, + analysesToGenerate, isPrerequisite, + isSubtask): # {{{ + """ + If a task has been requested through the generate config option or + if it is a prerequisite of a requested task, add it to the dictionary of + tasks to generate. + + Authors + ------- + Xylar Asay-Davis + """ + + analysesToAdd = OrderedDict() + # for each anlaysis task, check if we want to generate this task + # and if the analysis task has a valid configuration + if isPrerequisite or analysisTask.check_generate(): + add = False + try: + analysisTask.setup_and_check() + add = True + except (Exception, BaseException): + traceback.print_exc(file=sys.stdout) + print "ERROR: analysis task {} failed during check and " \ + "will not be run".format(analysisTask.taskName) + if add and not isSubtask: + # first, we should try to add the prerequisites + prereqs = analysisTask.prerequisiteTasks + if prereqs is not None: + for prereq in prereqs: + if prereq not in analysesToGenerate.keys(): + prereqToAdd = add_task_and_prereqisites( + possibleAnalyses[prereq], possibleAnalyses, + analysesToGenerate, isPrerequisite=True) + if len(prereqToAdd.keys()) == 0: + # a prerequisite failed setup_and_check + print "ERROR: a prerequisite of analysis task {}" \ + " failed during check and will not be" \ + " run".format(analysisTask.taskName) + add = False + break + # the prerequisite (and its prerequisites) should be + # added + analysesToAdd.update(prereqToAdd) + if add: + analysesToAdd[analysisTask.taskName] = analysisTask + + return analysesToAdd # }}} + + def update_generate(config, generate): # {{{ """ Update the 'generate' config option using a string from the command line. - Author: Xylar Asay-Davis + Authors + ------- + Xylar Asay-Davis """ # overwrite the 'generate' in config with a string that parses to @@ -41,8 +148,7 @@ def update_generate(config, generate): # {{{ config.set('output', 'generate', generateString) # }}} -def run_parallel_tasks(config, analyses, configFiles, taskCount): - # {{{ +def run_analysis(config, analyses, configFiles, isSubtask): # {{{ """ Run this script once each for several parallel tasks. @@ -51,39 +157,99 @@ def run_parallel_tasks(config, analyses, configFiles, taskCount): Xylar Asay-Davis """ - taskNames = [analysisTask.taskName for analysisTask in analyses] + taskCount = config.getWithDefault('execute', 'parallelTaskCount', + default=1) - taskCount = min(taskCount, len(taskNames)) + isParallel = not isSubtask and taskCount > 1 and len(analyses) > 1 - (processes, logs) = launch_tasks(taskNames[0:taskCount], config, - configFiles) - remainingTasks = taskNames[taskCount:] - while len(processes) > 0: - (taskName, process) = wait_for_task(processes) - if process.returncode == 0: - print "Task {} has finished successfully.".format(taskName) + for analysisTask in analyses.itervalues(): + if analysisTask.prerequisiteTasks is None or isSubtask: + analysisTask.status = 'ready' else: - print "ERROR in task {}. See log file {} for details".format( - taskName, logs[taskName].name) - logs[taskName].close() - # remove the process from the process dictionary (no need to bother) - processes.pop(taskName) - - if len(remainingTasks) > 0: - (process, log) = launch_tasks(remainingTasks[0:1], config, - configFiles) - # merge the new process and log into these dictionaries - processes.update(process) - logs.update(log) - remainingTasks = remainingTasks[1:] + analysisTask.status = 'blocked' + + processes = {} + logs = {} + + # run each analysis task + lastException = None + + runningCount = 0 + while True: + # we still have tasks to run + for analysisTask in analyses.itervalues(): + if analysisTask.status == 'blocked': + prereqStatus = [analyses[prereq].status for prereq in + analysisTask.prerequisiteTasks] + if any([status == 'fail' for status in prereqStatus]): + # a prerequisite failed so this task cannot succeed + analysisTask.status = 'fail' + if all([status == 'success' for status in prereqStatus]): + # no unfinished prerequisites so we can run this task + analysisTask.status = 'ready' + + unfinishedCount = 0 + for analysisTask in analyses.itervalues(): + if analysisTask.status not in ['success', 'fail']: + unfinishedCount += 1 + + if unfinishedCount <= 0: + # we're done + break + + # launch new tasks + for taskName, analysisTask in analyses.items(): + if analysisTask.status == 'ready': + if isParallel: + process, logFile = launch_task(taskName, config, + configFiles) + processes[taskName] = process + logs[taskName] = logFile + analysisTask.status = 'running' + runningCount += 1 + if runningCount >= taskCount: + break + else: + exception = run_task(config, analysisTask) + if exception is None: + analysisTask.status = 'success' + else: + lastException = exception + analysisTask.status = 'fail' + + if isParallel: + # wait for a task to finish + (taskName, process) = wait_for_task(processes) + analysisTask = analyses[taskName] + runningCount -= 1 + processes.pop(taskName) + if process.returncode == 0: + print "Task {} has finished successfully.".format(taskName) + analysisTask.status = 'success' + else: + print "ERROR in task {}. See log file {} for details".format( + taskName, logs[taskName].name) + analysisTask.status = 'fail' + logs[taskName].close() + + if not isParallel and config.getboolean('plot', 'displayToScreen'): + import matplotlib.pyplot as plt + plt.show() + + # raise the last exception so the process exits with an error + if lastException is not None: + raise lastException + # }}} -def launch_tasks(taskNames, config, configFiles): # {{{ +def launch_task(taskName, config, configFiles): # {{{ """ - Launch one or more tasks + Launch a parallel tasks - Author: Xylar Asay-Davis + Authors + ------- + Xylar Asay-Davis """ thisFile = os.path.realpath(__file__) @@ -94,25 +260,21 @@ def launch_tasks(taskNames, config, configFiles): # {{{ else: commandPrefix = commandPrefix.split(' ') - processes = {} - logs = {} - for taskName in taskNames: - args = commandPrefix + [thisFile, '--generate', taskName] + configFiles + args = commandPrefix + [thisFile, '--subtask', '--generate', taskName] \ + + configFiles - logFileName = '{}/{}.log'.format(logsDirectory, taskName) + logFileName = '{}/{}.log'.format(logsDirectory, taskName) - # write the command to the log file - logFile = open(logFileName, 'w') - logFile.write('Command: {}\n'.format(' '.join(args))) - # make sure the command gets written before the rest of the log - logFile.flush() - print 'Running {}'.format(taskName) - process = subprocess.Popen(args, stdout=logFile, - stderr=subprocess.STDOUT) - processes[taskName] = process - logs[taskName] = logFile + # write the command to the log file + logFile = open(logFileName, 'w') + logFile.write('Command: {}\n'.format(' '.join(args))) + # make sure the command gets written before the rest of the log + logFile.flush() + print 'Running {}'.format(taskName) + process = subprocess.Popen(args, stdout=logFile, + stderr=subprocess.STDOUT) - return (processes, logs) # }}} + return (process, logFile) # }}} def wait_for_task(processes): # {{{ @@ -120,7 +282,9 @@ def wait_for_task(processes): # {{{ Wait for the next process to finish and check its status. Returns both the task name and the process that finished. - Author: Xylar Asay-Davis + Authors + ------- + Xylar Asay-Davis """ # first, check if any process has already finished @@ -141,7 +305,9 @@ def is_running(process): # {{{ """ Returns whether a given process is currently running - Author: Xylar Asay-Davis + Authors + ------- + Xylar Asay-Davis """ try: @@ -152,107 +318,56 @@ def is_running(process): # {{{ return True # }}} -def build_analysis_list(config): # {{{ +def run_task(config, analysisTask): # {{{ """ - Build a list of analysis modules based on the 'generate' config option. + Run a single analysis task, time the task, write out the config file + (including any modifications specific to the task) and return the exception + raised (if any) - Author: Xylar Asay-Davis + Authors + ------- + Xylar Asay-Davis """ - # choose the right rendering backend, depending on whether we're displaying - # to the screen - if not config.getboolean('plot', 'displayToScreen'): - mpl.use('Agg') - - # analysis can only be imported after the right MPL renderer is selected - from mpas_analysis import ocean - from mpas_analysis import sea_ice - - # analyses will be a list of analysis classes - analyses = [] - - # Ocean Analyses - analyses.append(ocean.TimeSeriesOHC(config)) - analyses.append(ocean.TimeSeriesSST(config)) - analyses.append(ocean.IndexNino34(config)) - analyses.append(ocean.MeridionalHeatTransport(config)) - analyses.append(ocean.StreamfunctionMOC(config)) - - analyses.append(ocean.ClimatologyMapSST(config)) - analyses.append(ocean.ClimatologyMapMLD(config)) - analyses.append(ocean.ClimatologyMapSSS(config)) - - # Sea Ice Analyses - analyses.append(sea_ice.TimeSeriesSeaIce(config)) - analyses.append(sea_ice.ClimatologyMapSeaIce(config)) - - # check which analysis we actually want to generate and only keep those - analysesToGenerate = [] - for analysisTask in analyses: - # for each anlaysis module, check if we want to generate this task - # and if the analysis task has a valid configuration - if analysisTask.check_generate(): - add = False - try: - analysisTask.setup_and_check() - add = True - except: - traceback.print_exc(file=sys.stdout) - print "ERROR: analysis module {} failed during check and " \ - "will not be run".format(analysisTask.taskName) - if add: - analysesToGenerate.append(analysisTask) - - return analysesToGenerate # }}} - - -def run_analysis(config, analyses): # {{{ - - # run each analysis task - lastException = None - for analysisTask in analyses: - # write out a copy of the configuration to document the run - logsDirectory = build_config_full_path(config, 'output', - 'logsSubdirectory') - try: - startTime = time.clock() - analysisTask.run() - runDuration = time.clock() - startTime - m, s = divmod(runDuration, 60) - h, m = divmod(int(m), 60) - print 'Execution time: {}:{:02d}:{:05.2f}'.format(h, m, s) - except (Exception, BaseException) as e: - if isinstance(e, KeyboardInterrupt): - raise e - traceback.print_exc(file=sys.stdout) - print "ERROR: analysis module {} failed during run".format( - analysisTask.taskName) - lastException = e - - configFileName = '{}/configs/config.{}'.format(logsDirectory, - analysisTask.taskName) - configFile = open(configFileName, 'w') - config.write(configFile) - configFile.close() - - if config.getboolean('plot', 'displayToScreen'): - import matplotlib.pyplot as plt - plt.show() - - # raise the last exception so the process exits with an error - if lastException is not None: - raise lastException - - return # }}} + # write out a copy of the configuration to document the run + logsDirectory = build_config_full_path(config, 'output', + 'logsSubdirectory') + exception = None + try: + startTime = time.clock() + analysisTask.run() + runDuration = time.clock() - startTime + m, s = divmod(runDuration, 60) + h, m = divmod(int(m), 60) + print 'Execution time: {}:{:02d}:{:05.2f}'.format(h, m, s) + except (Exception, BaseException) as e: + if isinstance(e, KeyboardInterrupt): + raise e + traceback.print_exc(file=sys.stdout) + print "ERROR: analysis task {} failed during run".format( + analysisTask.taskName) + exception = e + + configFileName = '{}/configs/config.{}'.format(logsDirectory, + analysisTask.taskName) + configFile = open(configFileName, 'w') + config.write(configFile) + configFile.close() + + return exception # }}} if __name__ == "__main__": parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument("--subtask", dest="subtask", action='store_true', + help="If this is a subtask when running parallel " + "tasks") parser.add_argument("-g", "--generate", dest="generate", help="A list of analysis modules to generate " - "(nearly identical generate option in config file).", + "(nearly identical generate option in config " + "file).", metavar="ANALYSIS1[,ANALYSIS2,ANALYSIS3,...]") parser.add_argument('configFiles', metavar='CONFIG', type=str, nargs='+', help='config file') @@ -281,14 +396,8 @@ def run_analysis(config, analyses): # {{{ make_directories(logsDirectory) make_directories('{}/configs/'.format(logsDirectory)) - analyses = build_analysis_list(config) - - parallelTaskCount = config.getWithDefault('execute', 'parallelTaskCount', - default=1) + analyses = build_analysis_list(config, args.subtask) - if parallelTaskCount <= 1 or len(analyses) == 1: - run_analysis(config, analyses) - else: - run_parallel_tasks(config, analyses, configFiles, parallelTaskCount) + run_analysis(config, analyses, configFiles, args.subtask) # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python From 5e40355dbdc8d8eb8d2bf92ae5a361199aa545b5 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 16:15:12 +0200 Subject: [PATCH 20/47] Create tasks with create_tasks method This allows a call to create_tasks for a given class to generate not just one but multiple tasks. This could be useful for tasks that can be broken into multiple subtasks (each of which can be an AnalysisTask). It is also useful for analysis involving a number of independent plots (e.g. multiple seasons or depths) that can be handled by separate tasks in parallel. --- mpas_analysis/shared/analysis_task.py | 20 ++++++++++++++++++++ run_analysis.py | 20 ++++++++++---------- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/mpas_analysis/shared/analysis_task.py b/mpas_analysis/shared/analysis_task.py index 0dca60692..65c836cdc 100644 --- a/mpas_analysis/shared/analysis_task.py +++ b/mpas_analysis/shared/analysis_task.py @@ -91,6 +91,26 @@ class AnalysisTask(object): # {{{ Xylar Asay-Davis ''' + @classmethod + def create_tasks(cls, config): # {{{ + """ + Construct a single analysis task. This function can be replaced in + child classes so that a list of 2 or more tasks is returned, allowing + a task to also provide its own prerequisite tasks. + + Parameters + ---------- + config : MpasAnalysisConfigParser object + Contains configuration options + + Authors + ------- + Xylar Asay-Davis + """ + + tasks = [cls(config=config)] + return tasks # }}} + def __init__(self, config, taskName, componentName, tags=[], prerequisiteTasks=None): # {{{ ''' diff --git a/run_analysis.py b/run_analysis.py index 0f5476adf..56b5c582a 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -48,19 +48,19 @@ def build_analysis_list(config, isSubtask): # {{{ analyses = [] # Ocean Analyses - analyses.append(ocean.TimeSeriesOHC(config)) - analyses.append(ocean.TimeSeriesSST(config)) - analyses.append(ocean.IndexNino34(config)) - analyses.append(ocean.MeridionalHeatTransport(config)) - analyses.append(ocean.StreamfunctionMOC(config)) + analyses.extend(ocean.TimeSeriesOHC.create_tasks(config)) + analyses.extend(ocean.TimeSeriesSST.create_tasks(config)) + analyses.extend(ocean.IndexNino34.create_tasks(config)) + analyses.extend(ocean.MeridionalHeatTransport.create_tasks(config)) + analyses.extend(ocean.StreamfunctionMOC.create_tasks(config)) - analyses.append(ocean.ClimatologyMapSST(config)) - analyses.append(ocean.ClimatologyMapMLD(config)) - analyses.append(ocean.ClimatologyMapSSS(config)) + analyses.extend(ocean.ClimatologyMapSST.create_tasks(config)) + analyses.extend(ocean.ClimatologyMapMLD.create_tasks(config)) + analyses.extend(ocean.ClimatologyMapSSS.create_tasks(config)) # Sea Ice Analyses - analyses.append(sea_ice.TimeSeriesSeaIce(config)) - analyses.append(sea_ice.ClimatologyMapSeaIce(config)) + analyses.extend(sea_ice.TimeSeriesSeaIce.create_tasks(config)) + analyses.extend(sea_ice.ClimatologyMapSeaIce.create_tasks(config)) possibleAnalyses = OrderedDict() for analysisTask in analyses: From 259cb7d824c9b4636574a67a7a1ed14a8aca9f26 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 23:45:24 +0200 Subject: [PATCH 21/47] Remove unused private lock function --- mpas_analysis/shared/interpolation/remapper.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/mpas_analysis/shared/interpolation/remapper.py b/mpas_analysis/shared/interpolation/remapper.py index 08cd7d1cf..d01008fb2 100644 --- a/mpas_analysis/shared/interpolation/remapper.py +++ b/mpas_analysis/shared/interpolation/remapper.py @@ -563,16 +563,6 @@ def _remap_numpy_array(self, inField, remapAxes, return outField # }}} -def _get_lock_path(fileName): # {{{ - '''Returns the name of a temporary lock file unique to a given file name''' - directory = '{}/.locks/'.format(os.path.dirname(fileName)) - try: - os.makedirs(directory) - except OSError: - pass - return '{}/{}.lock'.format(directory, os.path.basename(fileName)) # }}} - - def _get_temp_path(): # {{{ '''Returns the name of a temporary NetCDF file''' return '{}/{}.nc'.format(tempfile._get_default_tempdir(), From aa35956f0d7202cde24455d05fac5410935e2b7b Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sun, 13 Aug 2017 23:45:43 +0200 Subject: [PATCH 22/47] Mesh desc. read and create now class methods This leads to a less redunadant, more intuitive calling structure. --- mpas_analysis/ocean/climatology_map.py | 14 +-- mpas_analysis/sea_ice/climatology_map.py | 12 +- .../shared/climatology/climatology.py | 3 +- mpas_analysis/shared/grid/grid.py | 117 +++++++++++------- 4 files changed, 86 insertions(+), 60 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 5d240e8f5..88c73d72a 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -131,9 +131,9 @@ def run(self): # {{{ mappingFilePrefix=mappingFilePrefix, method=config.get('climatology', 'mpasInterpolationMethod')) - obsDescriptor = LatLonGridDescriptor() - obsDescriptor.read(fileName=self.obsFileName, latVarName='lat', - lonVarName='lon') + obsDescriptor = LatLonGridDescriptor.read(fileName=self.obsFileName, + latVarName='lat', + lonVarName='lon') origObsRemapper = Remapper(comparisonDescriptor, obsDescriptor) @@ -254,10 +254,10 @@ def run(self): # {{{ seasonalClimatology.close() write_netcdf(seasonalClimatology, climatologyFileName) # make the remapper for the climatology - obsDescriptor = LatLonGridDescriptor() - obsDescriptor.read(fileName=climatologyFileName, - latVarName='lat', - lonVarName='lon') + obsDescriptor = LatLonGridDescriptor.read( + fileName=climatologyFileName, + latVarName='lat', + lonVarName='lon') obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index 6194dcac1..71b6d35e9 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -231,9 +231,9 @@ def _compute_and_plot_concentration(self): obsFieldName = '{}_{}_{}'.format(climFieldName, hemisphere, obsName) - obsDescriptor = LatLonGridDescriptor() - obsDescriptor.read(fileName=obsFileName, latVarName='t_lat', - lonVarName='t_lon') + obsDescriptor = LatLonGridDescriptor.read(fileName=obsFileName, + latVarName='t_lat', + lonVarName='t_lon') obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, @@ -383,9 +383,9 @@ def _compute_and_plot_thickness(self): obsFileName)) obsFieldName = '{}_{}'.format(climFieldName, hemisphere) - obsDescriptor = LatLonGridDescriptor() - obsDescriptor.read(fileName=obsFileName, latVarName='t_lat', - lonVarName='t_lon') + obsDescriptor = LatLonGridDescriptor.read(fileName=obsFileName, + latVarName='t_lat', + lonVarName='t_lon') obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index 0f8c32aef..bfb4d01d4 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -59,8 +59,7 @@ def get_lat_lon_comparison_descriptor(config): # {{{ lat = numpy.linspace(constants.latmin, constants.latmax, nLat) lon = numpy.linspace(constants.lonmin, constants.lonmax, nLon) - descriptor = LatLonGridDescriptor() - descriptor.create(lat, lon, units='degrees') + descriptor = LatLonGridDescriptor.create(lat, lon, units='degrees') return descriptor # }}} diff --git a/mpas_analysis/shared/grid/grid.py b/mpas_analysis/shared/grid/grid.py index 01e055ee9..2fff25ec0 100644 --- a/mpas_analysis/shared/grid/grid.py +++ b/mpas_analysis/shared/grid/grid.py @@ -14,6 +14,7 @@ Author ------ Xylar Asay-Davis + ''' import netCDF4 @@ -41,6 +42,7 @@ def __init__(self): # {{{ Author ------ Xylar Asay-Davis + ''' self.meshName = None # }}} @@ -211,14 +213,21 @@ def __init__(self): # {{{ self.regional = False self.meshName = None # }}} - def read(self, fileName, latVarName='lat', lonVarName='lon'): # {{{ + @classmethod + def read(cls, fileName=None, ds=None, latVarName='lat', + lonVarName='lon'): # {{{ ''' Read the lat-lon grid from a file with the given lat/lon var names. Parameters ---------- - fileName : str - The path of the file containing the lat-lon grid + fileName : str, optional + The path of the file containing the lat-lon grid (if ``ds`` is not + supplied directly) + + ds : ``xarray.Dataset`` object, optional + The path of the file containing the lat-lon grid (if supplied, + ``fileName`` will be ignored) latVarName, lonVarName : str, optional The name of the latitude and longitude variables in the grid file @@ -227,33 +236,38 @@ def read(self, fileName, latVarName='lat', lonVarName='lon'): # {{{ ------ Xylar Asay-Davis ''' - ds = xarray.open_dataset(fileName) + if ds is None: + ds = xarray.open_dataset(fileName) - if self.meshName is None and 'meshName' in ds.attrs: - self.meshName = ds.attrs['meshName'] + descriptor = cls() + + if descriptor.meshName is None and 'meshName' in ds.attrs: + descriptor.meshName = ds.attrs['meshName'] # Get info from input file - self.lat = numpy.array(ds[latVarName].values, float) - self.lon = numpy.array(ds[lonVarName].values, float) + descriptor.lat = numpy.array(ds[latVarName].values, float) + descriptor.lon = numpy.array(ds[lonVarName].values, float) if 'degree' in ds[latVarName].units: - self.units = 'degrees' + descriptor.units = 'degrees' else: - self.units = 'radians' + descriptor.units = 'radians' - self._set_coords(latVarName, lonVarName, ds[latVarName].dims[0], - ds[lonVarName].dims[0]) + descriptor._set_coords(latVarName, lonVarName, ds[latVarName].dims[0], + ds[lonVarName].dims[0]) # interp/extrap corners - self.lonCorner = _interp_extrap_corner(self.lon) - self.latCorner = _interp_extrap_corner(self.lat) + descriptor.lonCorner = _interp_extrap_corner(descriptor.lon) + descriptor.latCorner = _interp_extrap_corner(descriptor.lat) if 'history' in ds.attrs: - self.history = '\n'.join([ds.attrs['history'], - ' '.join(sys.argv[:])]) + descriptor.history = '\n'.join([ds.attrs['history'], + ' '.join(sys.argv[:])]) else: - self.history = sys.argv[:] # }}} + descriptor.history = sys.argv[:] + return descriptor # }}} - def create(self, latCorner, lonCorner, units='degrees'): # {{{ + @classmethod + def create(cls, latCorner, lonCorner, units='degrees'): # {{{ ''' Create the lat-lon grid with the given arrays and units. @@ -270,14 +284,16 @@ def create(self, latCorner, lonCorner, units='degrees'): # {{{ ------ Xylar Asay-Davis ''' + descriptor = cls() - self.latCorner = latCorner - self.lonCorner = lonCorner - self.lon = 0.5*(lonCorner[0:-1] + lonCorner[1:]) - self.lat = 0.5*(latCorner[0:-1] + latCorner[1:]) - self.units = units - self.history = sys.argv[:] - self._set_coords('lat', 'lon', 'lat', 'lon') # }}} + descriptor.latCorner = latCorner + descriptor.lonCorner = lonCorner + descriptor.lon = 0.5*(lonCorner[0:-1] + lonCorner[1:]) + descriptor.lat = 0.5*(latCorner[0:-1] + latCorner[1:]) + descriptor.units = units + descriptor.history = sys.argv[:] + descriptor._set_coords('lat', 'lon', 'lat', 'lon') + return descriptor # }}} def to_scrip(self, scripFileName): # {{{ ''' @@ -379,7 +395,9 @@ def __init__(self, projection): # {{{ self.latLonProjection = pyproj.Proj(proj='latlong', datum='WGS84') self.regional = True - def read(self, fileName, meshName=None, xVarName='x', yVarName='y'): # {{{ + @classmethod + def read(cls, projection, fileName, meshName=None, xVarName='x', + yVarName='y'): # {{{ ''' Given a grid file with x and y coordinates defining the axes of the logically rectangular grid, read in the x and y coordinates and @@ -387,6 +405,10 @@ def read(self, fileName, meshName=None, xVarName='x', yVarName='y'): # {{{ Parameters ---------- + projection : pyproj.Proj object + The projection used to map from grid x-y space to latitude and + longitude + fileName : str The path of the file containing the grid data @@ -402,35 +424,38 @@ def read(self, fileName, meshName=None, xVarName='x', yVarName='y'): # {{{ ------ Xylar Asay-Davis ''' + descriptor = cls(projection) ds = xarray.open_dataset(fileName) if meshName is None: if 'meshName' not in ds.attrs: raise ValueError('No meshName provided or found in file.') - self.meshName = ds.attrs['meshName'] + descriptor.meshName = ds.attrs['meshName'] else: - self.meshName = meshName + descriptor.meshName = meshName # Get info from input file - self.x = numpy.array(ds[xVarName].values, float) - self.y = numpy.array(ds[yVarName].values, float) + descriptor.x = numpy.array(ds[xVarName].values, float) + descriptor.y = numpy.array(ds[yVarName].values, float) - self._set_coords(xVarName, yVarName, ds[xVarName].dims[0], - ds[yVarName].dims[0]) + descriptor._set_coords(xVarName, yVarName, ds[xVarName].dims[0], + ds[yVarName].dims[0]) # interp/extrap corners - self.xCorner = _interp_extrap_corner(self.x) - self.yCorner = _interp_extrap_corner(self.y) + descriptor.xCorner = _interp_extrap_corner(descriptor.x) + descriptor.yCorner = _interp_extrap_corner(descriptor.y) # Update history attribute of netCDF file if 'history' in ds.attrs: - self.history = '\n'.join([ds.attrs['history'], - ' '.join(sys.argv[:])]) + descriptor.history = '\n'.join([ds.attrs['history'], + ' '.join(sys.argv[:])]) else: - self.history = sys.argv[:] # }}} + descriptor.history = sys.argv[:] + return descriptor # }}} - def create(self, x, y, meshName): # {{{ + @classmethod + def create(cls, projection, x, y, meshName): # {{{ ''' Given x and y coordinates defining the axes of the logically rectangular grid, save the coordinates interpolate/extrapolate to @@ -449,18 +474,20 @@ def create(self, x, y, meshName): # {{{ ------ Xylar Asay-Davis ''' + descriptor = cls(projection) - self.meshName = meshName + descriptor.meshName = meshName - self.x = x - self.y = y + descriptor.x = x + descriptor.y = y - self._set_coords('x', 'y', 'x', 'y') + descriptor._set_coords('x', 'y', 'x', 'y') # interp/extrap corners - self.xCorner = _interp_extrap_corner(self.x) - self.yCorner = _interp_extrap_corner(self.y) - self.history = sys.argv[:] # }}} + descriptor.xCorner = _interp_extrap_corner(descriptor.x) + descriptor.yCorner = _interp_extrap_corner(descriptor.y) + descriptor.history = sys.argv[:] + return descriptor # }}} def to_scrip(self, scripFileName): # {{{ ''' From 17ba15a36affc1e5adba4007846f3f75b9fe6752 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Mon, 14 Aug 2017 18:23:44 +0200 Subject: [PATCH 23/47] Add MpasClimatology analysis task Switch all tasks with climatologies to use an instance of MpasClimatology to compute climatologies with ncclimo. Divide up seasonal climatology map tasks into one task per season Divide sea ice map plotting tasks into one task per field, season, hemisphere and observations source for better parallelization. --- config.default | 152 ++- mpas_analysis/ocean/__init__.py | 2 +- mpas_analysis/ocean/climatology_map.py | 567 +++++++----- .../ocean/meridional_heat_transport.py | 135 ++- mpas_analysis/ocean/streamfunction_moc.py | 141 ++- mpas_analysis/sea_ice/__init__.py | 2 +- mpas_analysis/sea_ice/climatology_map.py | 867 +++++++++--------- .../sea_ice/sea_ice_analysis_task.py | 10 +- mpas_analysis/shared/climatology/__init__.py | 16 +- .../shared/climatology/climatology.py | 457 --------- .../climatology/comparison_descriptors.py | 144 +++ .../climatology/mpas_climatology_task.py | 593 ++++++++++++ mpas_analysis/shared/timekeeping/utility.py | 4 +- run_analysis.py | 7 +- 14 files changed, 1789 insertions(+), 1308 deletions(-) create mode 100644 mpas_analysis/shared/climatology/comparison_descriptors.py create mode 100644 mpas_analysis/shared/climatology/mpas_climatology_task.py diff --git a/config.default b/config.default index c27481038..ae54f0d04 100644 --- a/config.default +++ b/config.default @@ -109,7 +109,6 @@ scratchSubdirectory = scratch plotsSubdirectory = plots logsSubdirectory = logs mpasClimatologySubdirectory = clim/mpas -mpasRemappedClimSubdirectory = clim/mpas/remapped mappingSubdirectory = mapping timeSeriesSubdirectory = timeseries timeCacheSubdirectory = timecache @@ -157,6 +156,10 @@ endYear = 20 comparisonLatResolution = 0.5 comparisonLonResolution = 0.5 +# The comparison Antarctic polar stereographic grid size and resolution in km +comparisonAntarcticStereoWidth = 6000. +comparisonAntarcticStereoResolution = 10. + # interpolation order for model and observation results. Likely values are # 'bilinear', 'neareststod' (nearest neighbor) or 'conserve' mpasInterpolationMethod = bilinear @@ -448,7 +451,10 @@ colorbarLevelsDifference = [-5, -3, -2, -1, 0, 1, 2, 3, 5] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, # Nov, Dec, JFM, AMJ, JAS, OND, ANN) -comparisonTimes = ['JFM', 'JAS', 'ANN'] +seasons = ['JFM', 'JAS', 'ANN'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] [climatologyMapSSS] ## options related to plotting horizontally remapped climatologies of @@ -470,7 +476,10 @@ colorbarLevelsDifference = [-3, -2, -1, -0.5, 0, 0.5, 1, 2, 3] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, # Nov, Dec, JFM, AMJ, JAS, OND, ANN) -comparisonTimes = ['JFM', 'JAS', 'ANN'] +seasons = ['JFM', 'JAS', 'ANN'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] [climatologyMapMLD] ## options related to plotting horizontally remapped climatologies of @@ -492,7 +501,142 @@ colorbarLevelsDifference = [-150, -80, -30, -10, 0, 10, 30, 80, 150] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, # Nov, Dec, JFM, AMJ, JAS, OND, ANN) -comparisonTimes = ['JFM', 'JAS', 'ANN'] +seasons = ['JFM', 'JAS', 'ANN'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] + +[climatologyMapSeaIceConcNH] +## options related to plotting horizontally remapped climatologies of +## sea ice concentration against reference model results and observations +## in the northern hemisphere (NH) + +# colormap for model/observations +colormapNameResult = inferno +# color indices into colormapName for filled contours +colormapIndicesResult = [20, 80, 110, 140, 170, 200, 230, 255] +# colormap levels/values for contour boundaries +colorbarLevelsResult = [0.15, 0.3, 0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1] + +# colormap for differences +colormapNameDifference = RdBu_r +# color indices into colormapName for filled contours +colormapIndicesDifference = [0, 40, 80, 127, 127, 170, 210, 255] +# colormap levels/values for contour boundaries +colorbarLevelsDifference = [-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8] + +# Times for comparison times (These should be left unchanged, since +# observations are only available for these seasons) +seasons = ['JFM', 'JAS'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] + +# reference lat/lon for sea ice plots in the northern hemisphere +minimumLatitude = 50 +referenceLongitude = 0 + +# a list of prefixes describing the sources of the observations to be used +observationPrefixes = ['NASATeam', 'Bootstrap'] + +[climatologyMapSeaIceConcSH] +## options related to plotting horizontally remapped climatologies of +## sea ice concentration against reference model results and observations +## in the southern hemisphere (SH) + +# colormap for model/observations +colormapNameResult = inferno +# color indices into colormapName for filled contours +colormapIndicesResult = [20, 80, 110, 140, 170, 200, 230, 255] +# colormap levels/values for contour boundaries +colorbarLevelsResult = [0.15, 0.3, 0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1] + +# colormap for differences +colormapNameDifference = RdBu_r +# color indices into colormapName for filled contours +colormapIndicesDifference = [0, 40, 80, 127, 127, 170, 210, 255] +# colormap levels/values for contour boundaries +colorbarLevelsDifference = [-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8] + +# Times for comparison times (These should be left unchanged, since +# observations are only available for these seasons) +seasons = ['DJF', 'JJA'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] + +# reference lat/lon for sea ice plots in the northern hemisphere +minimumLatitude = -50 +referenceLongitude = 180 + +# a list of prefixes describing the sources of the observations to be used +observationPrefixes = ['NASATeam', 'Bootstrap'] + +[climatologyMapSeaIceThickNH] +## options related to plotting horizontally remapped climatologies of +## sea ice thickness against reference model results and observations +## in the northern hemisphere (NH) + +# colormap for model/observations +colormapNameResult = inferno +# color indices into colormapName for filled contours +colormapIndicesResult = [20, 80, 110, 140, 170, 200, 230, 255] +# colormap levels/values for contour boundaries +colorbarLevelsResult = [0, 0.25, 0.5, 1, 1.5, 2, 2.5, 3, 3.5] + +# colormap for differences +colormapNameDifference = RdBu_r +# color indices into colormapName for filled contours +colormapIndicesDifference = [0, 40, 80, 127, 127, 170, 210, 255] +# colormap levels/values for contour boundaries +colorbarLevelsDifference = [-2.5, -2, -0.5, -0.1, 0, 0.1, 0.5, 2, 2.5] + +# Times for comparison times (These should be left unchanged, since +# observations are only available for these seasons) +seasons = ['FM', 'ON'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] + +# reference lat/lon for sea ice plots in the northern hemisphere +minimumLatitude = 50 +referenceLongitude = 0 + +# a list of prefixes describing the sources of the observations to be used +observationPrefixes = [''] + +[climatologyMapSeaIceThickSH] +## options related to plotting horizontally remapped climatologies of +## sea ice thickness against reference model results and observations +## in the southern hemisphere (SH) + +# colormap for model/observations +colormapNameResult = inferno +# color indices into colormapName for filled contours +colormapIndicesResult = [20, 80, 110, 140, 170, 200, 230, 255] +# colormap levels/values for contour boundaries +colorbarLevelsResult = [0, 0.2, 0.4, 0.6, 0.8, 1, 1.5, 2, 2.5] + +# colormap for differences +colormapNameDifference = RdBu_r +# color indices into colormapName for filled contours +colormapIndicesDifference = [0, 40, 80, 127, 127, 170, 210, 255] +# colormap levels/values for contour boundaries +colorbarLevelsDifference = [-2.5, -2, -0.5, -0.1, 0, 0.1, 0.5, 2, 2.5] + +# Times for comparison times (These should be left unchanged, since +# observations are only available for these seasons) +seasons = ['FM', 'ON'] + +# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +comparisonGrids = ['latlon'] + +# reference lat/lon for sea ice plots in the northern hemisphere +minimumLatitude = -50 +referenceLongitude = 180 + +# a list of prefixes describing the sources of the observations to be used +observationPrefixes = [''] [climatologyMapSeaIceConcThick] ## options related to plotting horizontally remapped climatologies of diff --git a/mpas_analysis/ocean/__init__.py b/mpas_analysis/ocean/__init__.py index af0c690ed..a6022b7d8 100644 --- a/mpas_analysis/ocean/__init__.py +++ b/mpas_analysis/ocean/__init__.py @@ -4,4 +4,4 @@ from time_series_sst import TimeSeriesSST from index_nino34 import IndexNino34 from streamfunction_moc import StreamfunctionMOC -from meridional_heat_transport import MeridionalHeatTransport \ No newline at end of file +from meridional_heat_transport import MeridionalHeatTransport diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 88c73d72a..33d63f25f 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -22,13 +22,11 @@ from ..shared.io.utility import build_config_full_path from ..shared.io import write_netcdf -from ..shared.climatology import get_lat_lon_comparison_descriptor, \ - get_remapper, get_mpas_climatology_dir_name, \ - get_observation_climatology_file_names, compute_climatology, \ - remap_and_write_climatology, update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo, get_ncclimo_season_file_name +from ..shared.climatology import get_comparison_descriptor, \ + get_remapper, get_observation_climatology_file_names, \ + compute_climatology, remap_and_write_climatology, MpasClimatology -from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor +from ..shared.grid import LatLonGridDescriptor from ..shared.mpas_xarray import mpas_xarray @@ -39,48 +37,139 @@ class ClimatologyMapOcean(AnalysisTask): # {{{ """ An analysis task for comparison of 2D model fields against observations. + Attributes + ---------- + climatologyTask : MpasClimatology object + The climatology task that has already finished by the time the ``run`` + method gets called in this class. It is used to figure out the + names of the climatology files that it created. + + seasons : str + A season (keys in ``shared.constants.monthDictionary``) to be plotted + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an observations + are compared + + fieldName : str + A short name of the field being analyzed + + fieldNameInTitle : str + An equivalent name of the field appropriate for figure titles + + mpasFieldName : str + The name of the MPAS timeSeriesStatsMonthly variable to be analyzed + + iselValues : dict + A dictionary of dimensions and indices (or ``None``) used to extract + a slice of the MPAS field. + + obsFileName : str + A file containing observtions from which to construct seasonal + climatologies. + + obsFieldName : str + A variable in the observations file to plot + + observationTitleLabel : str + A label on the subplot showing observations + + outFileLabel : str + A prefix for the resulting image file. + + unitsLabel : str + The units for the field being plotted. + Authors ------- Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani """ - def setup_and_check(self): # {{{ + @classmethod + def create_tasks(cls, config): # {{{ """ - Perform steps to set up the analysis and check for errors in the setup. + For each comparison grid, construct one task for computing the + climatologies and one plotting task for each season. The climatology + task is a prerequisite of the plotting tasks, but the plotting tasks + can run in parallel with one another. + + Parameters + ---------- + config : MpasAnalysisConfigParser object + Contains configuration options Authors ------- Xylar Asay-Davis """ - # first, call setup_and_check from the base class (AnalysisTask), - # which will perform some common setup, including storing: - # self.runDirectory , self.historyDirectory, self.plotsDirectory, - # self.namelist, self.runStreams, self.historyStreams, - # self.calendar, self.namelistMap, self.streamMap, self.variableMap - super(ClimatologyMapOcean, self).setup_and_check() - self.check_analysis_enabled( - analysisOptionName='config_am_timeseriesstatsmonthly_enable', - raiseException=True) - - # get a list of timeSeriesStats output files from the streams file, - # reading only those that are between the start and end dates - startDate = self.config.get('climatology', 'startDate') - endDate = self.config.get('climatology', 'endDate') - streamName = \ - self.historyStreams.find_stream(self.streamMap['timeSeriesStats']) - self.inputFiles = self.historyStreams.readpath( - streamName, startDate=startDate, endDate=endDate, - calendar=self.calendar) - - if len(self.inputFiles) == 0: - raise IOError('No files were found in stream {} between {} and ' - '{}.'.format(streamName, startDate, endDate)) + # get the name of the class (something like ClimatologyMapSST) + className = cls.__name__ + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + sectionName = className[0].lower() + className[1:] + + # read in what seasons we want to plot + seasons = config.getExpression(sectionName, 'seasons') + + if len(seasons) == 0: + raise ValueError('config section {} does not contain valid list ' + 'of seasons'.format(sectionName)) + + comparisonGridNames = config.getExpression(sectionName, + 'comparisonGrids') + + if len(comparisonGridNames) == 0: + raise ValueError('config section {} does not contain valid list ' + 'of comparison grids'.format(sectionName)) + + climatologyMapTasks = [] + for comparisonGridName in comparisonGridNames: + for season in seasons: + # one plotting task for each season and comparison grid + climatologyMapTasks.append(cls( + config=config, season=season, + comparisonGridName=comparisonGridName)) + + # we'll use the first task (corresponding to the first season in + # the list) as a way to get some information we need to build the + # MpasClimatology task for computing climatologies: + # mpasVariableName, componentName, fieldName + firstTask = climatologyMapTasks[0] + + taskSuffix = firstTask.fieldName[0].upper() + \ + firstTask.fieldName[1:] + + climatologyTask = \ + MpasClimatology(config=config, + variableList=[firstTask.mpasFieldName], + taskSuffix=taskSuffix, + componentName=firstTask.componentName, + comparisonGridNames=comparisonGridNames, + seasons=seasons, + tags=['climatology'], + iselValues=firstTask.iselValues) + + for index in range(len(climatologyMapTasks)): + climatologyMapTask = climatologyMapTasks[index] + # add climatologyTask as a prerequisite of each task so + # plotting won't happen until we have the required + # climatologies + if climatologyMapTask.prerequisiteTasks is None: + climatologyMapTask.prerequisiteTasks = \ + [climatologyTask.taskName] + else: + climatologyMapTask.prerequisiteTasks.append( + climatologyTask.taskName) + # We want to have access to some information from the + # climatologyTask (namely, we need a way to find out what the + # names of the climatology files are that it created), so we'll + # keep a reference to it handy. + climatologyMapTask.climatologyTask = climatologyTask - update_climatology_bounds_from_file_names(self.inputFiles, - self.config) + tasks = [climatologyTask] + climatologyMapTasks - # }}} + return tasks # }}} def run(self): # {{{ """ @@ -97,218 +186,154 @@ def run(self): # {{{ # get local versions of member variables for convenience config = self.config fieldName = self.fieldName + climatologyTask = self.climatologyTask - print '\n Reading files:\n' \ - ' {} through\n {}'.format( - os.path.basename(self.inputFiles[0]), - os.path.basename(self.inputFiles[-1])) + # call setup_and_check() on the climatology task because it will make + # sure the start and end year are set and correct. (In parallel mode, + # this copy of the climatologyTask is different from the one where + # setup_and_check was already called, and run completed successfully.) + climatologyTask.setup_and_check() mainRunName = config.get('runs', 'mainRunName') - try: - restartFileName = self.runStreams.readpath('restart')[0] - except ValueError: - raise IOError('No MPAS-O restart file found: need at least one ' - 'restart file for ocn_modelvsobs calculation') - - outputTimes = config.getExpression(self.taskName, 'comparisonTimes') - - comparisonDescriptor = get_lat_lon_comparison_descriptor(config) - - mpasDescriptor = MpasMeshDescriptor( - restartFileName, meshName=config.get('input', 'mpasMeshName')) - - parallel = self.config.getint('execute', 'parallelTaskCount') > 1 - if parallel: - # avoid writing the same mapping file from multiple processes - mappingFilePrefix = 'map_{}'.format(self.taskName) - else: - mappingFilePrefix = 'map' - - mpasRemapper = get_remapper( - config=config, sourceDescriptor=mpasDescriptor, - comparisonDescriptor=comparisonDescriptor, - mappingFilePrefix=mappingFilePrefix, - method=config.get('climatology', 'mpasInterpolationMethod')) - obsDescriptor = LatLonGridDescriptor.read(fileName=self.obsFileName, latVarName='lat', lonVarName='lon') + comparisonDescriptor = \ + get_comparison_descriptor(config, self.comparisonGridName) + origObsRemapper = Remapper(comparisonDescriptor, obsDescriptor) + sectionName = self.get_section_name() + (colormapResult, colorbarLevelsResult) = setup_colormap( - config, self.taskName, suffix='Result') + config, sectionName, suffix='Result') (colormapDifference, colorbarLevelsDifference) = setup_colormap( - config, self.taskName, suffix='Difference') - - climatologyDirectory = \ - get_mpas_climatology_dir_name( - config=config, - fieldName=self.mpasFieldName, - mpasMeshName=mpasDescriptor.meshName) - - (maskedClimatologyDirectory, remappedDirectory) = \ - get_mpas_climatology_dir_name( - config=config, - fieldName='{}_masked'.format(fieldName), - mpasMeshName=mpasDescriptor.meshName, - comparisonGridName=comparisonDescriptor.meshName) - - dsRestart = xr.open_dataset(restartFileName) - dsRestart = mpas_xarray.subset_variables(dsRestart, ['maxLevelCell']) - - startYear = config.getint('climatology', 'startYear') - endYear = config.getint('climatology', 'endYear') - - modelName = 'mpaso' - - # the last climatology produced by NCO is always the annual, so if that - # exists, others are also finished. - climatologyFileName = \ - '{}/mpaso_ANN_climo.nc'.format(climatologyDirectory) - if not os.path.exists(climatologyFileName): - - compute_climatologies_with_ncclimo( - config=config, - inDirectory=self.historyDirectory, - outDirectory=climatologyDirectory, - startYear=startYear, - endYear=endYear, - variableList=[self.mpasFieldName], - modelName=modelName, - seasons=outputTimes, - decemberMode='sdd') - - dsObs = None - obsRemapperBuilt = False + config, sectionName, suffix='Difference') + + startYear = climatologyTask.startYear + endYear = climatologyTask.endYear # Interpolate and compute biases - for months in outputTimes: - - monthValues = constants.monthDictionary[months] - - climatologyFileName = \ - get_ncclimo_season_file_name(climatologyDirectory, modelName, - months, startYear, endYear) - - maskedClimatologyFileName = \ - get_ncclimo_season_file_name(maskedClimatologyDirectory, - modelName, months, startYear, - endYear) - - remappedFileName = \ - get_ncclimo_season_file_name(remappedDirectory, - modelName, months, startYear, - endYear) - - if not os.path.exists(maskedClimatologyFileName): - # slice and mask the data set - climatology = xr.open_dataset(climatologyFileName) - iselValues = {'Time': 0} - if self.iselValues is not None: - iselValues.update(self.iselValues) - # select only Time=0 and possibly only the desired vertical - # slice - climatology = climatology.isel(**iselValues) - - # mask the data set - climatology[self.mpasFieldName] = \ - climatology[self.mpasFieldName].where( - dsRestart.maxLevelCell > 0) - - climatology.to_netcdf(maskedClimatologyFileName) - - if not os.path.exists(remappedFileName): - mpasRemapper.remap_file(inFileName=maskedClimatologyFileName, - outFileName=remappedFileName, - overwrite=True) + monthValues = constants.monthDictionary[self.season] - remappedClimatology = xr.open_dataset(remappedFileName) + remappedFileName = climatologyTask.get_ncclimo_file_name( + self.season, 'remapped', comparisonDescriptor) + + remappedClimatology = xr.open_dataset(remappedFileName) + + modelOutput = \ + remappedClimatology[self.mpasFieldName].values + + lon = remappedClimatology['lon'].values + lat = remappedClimatology['lat'].values + + lonTarg, latTarg = np.meshgrid(lon, lat) + + # now the observations + (climatologyFileName, remappedFileName) = \ + get_observation_climatology_file_names( + config=config, fieldName=fieldName, monthNames=self.season, + componentName='ocean', remapper=origObsRemapper) + + if not os.path.exists(remappedFileName): + + # load the observations the first time + dsObs = self._build_observational_dataset() + + seasonalClimatology = compute_climatology( + dsObs, monthValues, maskVaries=True) - modelOutput = \ - remappedClimatology[self.mpasFieldName].values - - lon = remappedClimatology['lon'].values - lat = remappedClimatology['lat'].values - - lonTarg, latTarg = np.meshgrid(lon, lat) - - # now the observations - (climatologyFileName, remappedFileName) = \ - get_observation_climatology_file_names( - config=config, fieldName=fieldName, monthNames=months, - componentName='ocean', remapper=origObsRemapper) - - if not os.path.exists(remappedFileName): - - if dsObs is None: - # load the observations the first time - dsObs = self._build_observational_dataset() - - seasonalClimatology = compute_climatology( - dsObs, monthValues, maskVaries=True) - - if not obsRemapperBuilt: - seasonalClimatology.load() - seasonalClimatology.close() - write_netcdf(seasonalClimatology, climatologyFileName) - # make the remapper for the climatology - obsDescriptor = LatLonGridDescriptor.read( - fileName=climatologyFileName, - latVarName='lat', - lonVarName='lon') - - obsRemapper = get_remapper( - config=config, sourceDescriptor=obsDescriptor, - comparisonDescriptor=comparisonDescriptor, - mappingFilePrefix='map_obs_{}'.format(fieldName), - method=config.get('oceanObservations', - 'interpolationMethod')) - - obsRemapperBuilt = True - - if obsRemapper is None: - # no need to remap because the observations are on the - # comparison grid already - remappedClimatology = seasonalClimatology - else: - remappedClimatology = \ - remap_and_write_climatology( - config, seasonalClimatology, climatologyFileName, - remappedFileName, obsRemapper) + seasonalClimatology.load() + seasonalClimatology.close() + write_netcdf(seasonalClimatology, climatologyFileName) + # make the remapper for the climatology + obsDescriptor = LatLonGridDescriptor.read( + fileName=climatologyFileName, + latVarName='lat', + lonVarName='lon') + obsRemapper = get_remapper( + config=config, sourceDescriptor=obsDescriptor, + comparisonDescriptor=comparisonDescriptor, + mappingFilePrefix='map_obs_{}'.format(fieldName), + method=config.get('oceanObservations', + 'interpolationMethod')) + + if obsRemapper is None: + # no need to remap because the observations are on the + # comparison grid already + remappedClimatology = seasonalClimatology else: + remappedClimatology = \ + remap_and_write_climatology( + config, seasonalClimatology, climatologyFileName, + remappedFileName, obsRemapper) + + else: - remappedClimatology = xr.open_dataset(remappedFileName) - observations = remappedClimatology[self.obsFieldName].values - - bias = modelOutput - observations - - outFileName = '{}/{}_{}_{}_years{:04d}-{:04d}.png'.format( - self.plotsDirectory, self.outFileLabel, mainRunName, - months, startYear, endYear) - title = '{} ({}, years {:04d}-{:04d})'.format( - self.fieldNameInTitle, months, startYear, endYear) - plot_global_comparison(config, - lonTarg, - latTarg, - modelOutput, - observations, - bias, - colormapResult, - colorbarLevelsResult, - colormapDifference, - colorbarLevelsDifference, - fileout=outFileName, - title=title, - modelTitle='{}'.format(mainRunName), - obsTitle=self.observationTitleLabel, - diffTitle='Model-Observations', - cbarlabel=self.unitsLabel) + remappedClimatology = xr.open_dataset(remappedFileName) + observations = remappedClimatology[self.obsFieldName].values + + bias = modelOutput - observations + + outFileName = '{}/{}_{}_{}_years{:04d}-{:04d}.png'.format( + self.plotsDirectory, self.outFileLabel, mainRunName, + self.season, startYear, endYear) + title = '{} ({}, years {:04d}-{:04d})'.format( + self.fieldNameInTitle, self.season, startYear, endYear) + plot_global_comparison(config, + lonTarg, + latTarg, + modelOutput, + observations, + bias, + colormapResult, + colorbarLevelsResult, + colormapDifference, + colorbarLevelsDifference, + fileout=outFileName, + title=title, + modelTitle='{}'.format(mainRunName), + obsTitle=self.observationTitleLabel, + diffTitle='Model-Observations', + cbarlabel=self.unitsLabel) # }}} + def get_task_name_and_tags(self): + className = type(self).__name__ + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + taskPrefix = className[0].lower() + className[1:] + + upperComparison = self.comparisonGridName[0].upper() + \ + self.comparisonGridName[1:] + + taskName = '{}{}_{}'.format(taskPrefix, upperComparison, self.season) + + tags = ['climatology', 'horizontalMap', self.comparisonGridName, + taskPrefix] + + return taskName, tags + + def get_section_name(self): + className = type(self).__name__ + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + sectionName = className[0].lower() + className[1:] + + upperComparison = self.comparisonGridName[0].upper() + \ + self.comparisonGridName[1:] + + comparisonSectionName = '{}{}'.format(sectionName, upperComparison) + + if self.config.has_section(comparisonSectionName): + sectionName = comparisonSectionName + + return sectionName + # }}} @@ -321,7 +346,7 @@ class ClimatologyMapSST(ClimatologyMapOcean): # {{{ ------- Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani """ - def __init__(self, config): # {{{ + def __init__(self, config, season, comparisonGridName): # {{{ """ Construct the analysis task. @@ -330,19 +355,35 @@ def __init__(self, config): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options + seasons : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an + observations are compared + Authors ------- Xylar Asay-Davis """ self.fieldName = 'sst' self.fieldNameInTitle = 'SST' + self.season = season + self.comparisonGridName = comparisonGridName + + self.mpasFieldName = 'timeMonthly_avg_activeTracers_temperature' + self.iselValues = {'nVertLevels': 0} + + taskName, tags = self.get_task_name_and_tags() + + tags.append(self.fieldName) # call the constructor from the base class (ClimatologyMapOcean) - super(ClimatologyMapSST, self).__init__( - config=config, - taskName='climatologyMapSST', - componentName='ocean', - tags=['climatology', 'horizontalMap', self.fieldName]) + super(ClimatologyMapSST, self).__init__(config=config, + taskName=taskName, + componentName='ocean', + tags=tags) # }}} @@ -369,9 +410,6 @@ def setup_and_check(self): # {{{ "{}/MODEL.SST.HAD187001-198110.OI198111-201203.nc".format( observationsDirectory) - self.mpasFieldName = 'timeMonthly_avg_activeTracers_temperature' - self.iselValues = {'nVertLevels': 0} - self.obsFieldName = 'SST' climStartYear = self.config.getint('oceanObservations', @@ -431,7 +469,7 @@ class ClimatologyMapSSS(ClimatologyMapOcean): # {{{ ------- Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani """ - def __init__(self, config): # {{{ + def __init__(self, config, season, comparisonGridName): # {{{ """ Construct the analysis task. @@ -440,19 +478,35 @@ def __init__(self, config): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options + seasons : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an + observations are compared + Authors ------- Xylar Asay-Davis """ self.fieldName = 'sss' self.fieldNameInTitle = 'SSS' + self.season = season + self.comparisonGridName = comparisonGridName + + self.mpasFieldName = 'timeMonthly_avg_activeTracers_salinity' + self.iselValues = {'nVertLevels': 0} + + taskName, tags = self.get_task_name_and_tags() + + tags.append(self.fieldName) # call the constructor from the base class (ClimatologyMapOcean) - super(ClimatologyMapSSS, self).__init__( - config=config, - taskName='climatologyMapSSS', - componentName='ocean', - tags=['climatology', 'horizontalMap', self.fieldName]) + super(ClimatologyMapSSS, self).__init__(config=config, + taskName=taskName, + componentName='ocean', + tags=tags) # }}} @@ -479,9 +533,6 @@ def setup_and_check(self): # {{{ '{}/Aquarius_V3_SSS_Monthly.nc'.format( observationsDirectory) - self.mpasFieldName = 'timeMonthly_avg_activeTracers_salinity' - self.iselValues = {'nVertLevels': 0} - self.obsFieldName = 'SSS' self.observationTitleLabel = 'Observations (Aquarius, 2011-2014)' @@ -523,7 +574,7 @@ class ClimatologyMapMLD(ClimatologyMapOcean): # {{{ ------- Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani """ - def __init__(self, config): # {{{ + def __init__(self, config, season, comparisonGridName): # {{{ """ Construct the analysis task. @@ -532,20 +583,35 @@ def __init__(self, config): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options + seasons : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an + observations are compared + Authors ------- Xylar Asay-Davis """ - self.fieldName = 'mld' self.fieldNameInTitle = 'MLD' + self.season = season + self.comparisonGridName = comparisonGridName + + self.mpasFieldName = 'timeMonthly_avg_dThreshMLD' + self.iselValues = None + + taskName, tags = self.get_task_name_and_tags() + + tags.append(self.fieldName) # call the constructor from the base class (ClimatologyMapOcean) - super(ClimatologyMapMLD, self).__init__( - config=config, - taskName='climatologyMapMLD', - componentName='ocean', - tags=['climatology', 'horizontalMap', self.fieldName]) + super(ClimatologyMapMLD, self).__init__(config=config, + taskName=taskName, + componentName='ocean', + tags=tags) # }}} @@ -572,9 +638,6 @@ def setup_and_check(self): # {{{ '{}/holtetalley_mld_climatology.nc'.format( observationsDirectory) - self.mpasFieldName = 'timeMonthly_avg_dThreshMLD' - self.iselValues = None - self.obsFieldName = 'mld_dt_mean' # Set appropriate MLD figure labels diff --git a/mpas_analysis/ocean/meridional_heat_transport.py b/mpas_analysis/ocean/meridional_heat_transport.py index 7c2ed77be..84fbb289c 100644 --- a/mpas_analysis/ocean/meridional_heat_transport.py +++ b/mpas_analysis/ocean/meridional_heat_transport.py @@ -7,14 +7,9 @@ from ..shared.plot.plotting import plot_vertical_section,\ setup_colormap, plot_1D -from ..shared.io.utility import build_config_full_path, make_directories +from ..shared.io.utility import build_config_full_path -from ..shared.timekeeping.utility import get_simulation_start_time - -from ..shared.climatology.climatology \ - import update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo, \ - get_ncclimo_season_file_name +from ..shared.climatology import MpasClimatology from ..shared.analysis_task import AnalysisTask @@ -28,6 +23,55 @@ class MeridionalHeatTransport(AnalysisTask): # {{{ Mark Petersen, Milena Veneziani, Xylar Asay-Davis ''' + @classmethod + def create_tasks(cls, config): # {{{ + """ + For each comparison grid, construct one task for computing the + climatologies and one plotting task for each season. The climatology + task is a prerequisite of the plotting tasks, but the plotting tasks + can run in parallel with one another. + + Parameters + ---------- + config : MpasAnalysisConfigParser object + Contains configuration options + + Authors + ------- + Xylar Asay-Davis + """ + mocTask = cls(config=config) + + taskSuffix = 'MHT' + seasons = ['ANN'] + + variableList = ['timeMonthly_avg_meridionalHeatTransportLat', + 'timeMonthly_avg_meridionalHeatTransportLatZ'] + + climatologyTask = \ + MpasClimatology(config=config, + variableList=variableList, + taskSuffix=taskSuffix, + componentName='ocean', + seasons=seasons, + tags=['climatology']) + + # add climatologyTask as a prerequisite of the MOC task so + # plotting won't happen until we have the required + # climatologies + if mocTask.prerequisiteTasks is None: + mocTask.prerequisiteTasks = [climatologyTask.taskName] + else: + mocTask.prerequisiteTasks.append(climatologyTask.taskName) + # We want to have access to some information from the + # climatologyTask (namely, we need a way to find out what the + # names of the climatology files are that it created), so we'll + # keep a reference to it handy. + mocTask.climatologyTask = climatologyTask + + tasks = [climatologyTask, mocTask] + return tasks # }}} + def __init__(self, config): # {{{ ''' Construct the analysis task. @@ -48,6 +92,7 @@ def __init__(self, config): # {{{ taskName='meridionalHeatTransport', componentName='ocean', tags=['climatology']) + # }}} def setup_and_check(self): # {{{ @@ -71,39 +116,22 @@ def setup_and_check(self): # {{{ super(MeridionalHeatTransport, self).setup_and_check() config = self.config + climatologyTask = self.climatologyTask - self.check_analysis_enabled( - analysisOptionName='config_am_timeseriesstatsmonthly_enable', - raiseException=True) self.check_analysis_enabled( analysisOptionName='config_am_meridionalheattransport_enable', raiseException=True) - # Get a list of timeSeriesStats output files from the streams file, - # reading only those that are between the start and end dates - # First a list necessary for the MHT climatology - streamName = self.historyStreams.find_stream( - self.streamMap['timeSeriesStats']) - self.startDate = config.get('climatology', 'startDate') - self.endDate = config.get('climatology', 'endDate') - self.inputFiles = \ - self.historyStreams.readpath(streamName, - startDate=self.startDate, - endDate=self.endDate, - calendar=self.calendar) - - if len(self.inputFiles) == 0: - raise IOError('No files were found in stream {} between {} and ' - '{}.'.format(streamName, self.startDate, - self.endDate)) - - update_climatology_bounds_from_file_names(self.inputFiles, - self.config) - - self.startDate = config.get('climatology', 'startDate') - self.startDate = config.get('climatology', 'endDate') - self.startYear = config.getint('climatology', 'startYear') - self.endYear = config.getint('climatology', 'endYear') + # call setup_and_check() on the climatology task because it will make + # sure the start and end year are set and correct. (In parallel mode, + # this copy of the climatologyTask is different from the one that will + # actually have run to completion before this task gets run.) + climatologyTask.setup_and_check() + + self.startDate = climatologyTask.startDate + self.endDate = climatologyTask.endDate + self.startYear = climatologyTask.startYear + self.endYear = climatologyTask.endYear # Later, we will read in depth and MHT latitude points # from mpaso.hist.am.meridionalHeatTransport.*.nc @@ -115,8 +143,6 @@ def setup_and_check(self): # {{{ self.mhtFile = mhtFiles[0] - self.simulationStartTime = get_simulation_start_time(self.runStreams) - self.sectionName = 'meridionalHeatTransport' # Read in obs file information @@ -182,42 +208,15 @@ def run(self): # {{{ # Then we will need to add another section for regions with a loop # over number of regions. ###################################################################### - variableList = ['timeMonthly_avg_meridionalHeatTransportLat', - 'timeMonthly_avg_meridionalHeatTransportLatZ'] print '\n Compute and plot global meridional heat transport' - outputRoot = build_config_full_path(config, 'output', - 'mpasClimatologySubdirectory') - - outputDirectory = '{}/mht'.format(outputRoot) - - print '\n List of files for climatologies:\n' \ - ' {} through\n {}'.format( - os.path.basename(self.inputFiles[0]), - os.path.basename(self.inputFiles[-1])) - print ' Load data...' - climatologyFileName = get_ncclimo_season_file_name(outputDirectory, - 'mpaso', 'ANN', - self.startYear, - self.endYear) - - if not os.path.exists(climatologyFileName): - make_directories(outputDirectory) - - # Compute annual climatology - compute_climatologies_with_ncclimo( - config=config, - inDirectory=self.historyDirectory, - outDirectory=outputDirectory, - startYear=self.startYear, - endYear=self.endYear, - variableList=variableList, - modelName='mpaso', - seasons=['ANN'], - decemberMode='sdd') + # use the climatologyTask to get the right file name for the + # computed climatology + climatologyFileName = self.climatologyTask.get_ncclimo_file_name( + season='ANN', stage='unmasked') annualClimatology = xr.open_dataset(climatologyFileName) diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 545d32062..6d50fff04 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -16,10 +16,7 @@ from ..shared.timekeeping.utility import get_simulation_start_time, \ days_to_datetime -from ..shared.climatology.climatology \ - import update_climatology_bounds_from_file_names, \ - compute_climatologies_with_ncclimo, \ - get_ncclimo_season_file_name +from ..shared.climatology import MpasClimatology from ..shared.analysis_task import AnalysisTask @@ -40,6 +37,55 @@ class StreamfunctionMOC(AnalysisTask): # {{{ Milena Veneziani, Mark Petersen, Phillip Wolfram, Xylar Asay-Davis ''' + @classmethod + def create_tasks(cls, config): # {{{ + """ + For each comparison grid, construct one task for computing the + climatologies and one plotting task for each season. The climatology + task is a prerequisite of the plotting tasks, but the plotting tasks + can run in parallel with one another. + + Parameters + ---------- + config : MpasAnalysisConfigParser object + Contains configuration options + + Authors + ------- + Xylar Asay-Davis + """ + mocTask = cls(config=config) + + taskSuffix = 'VelMOC' + seasons = ['ANN'] + + variableList = ['timeMonthly_avg_normalVelocity', + 'timeMonthly_avg_vertVelocityTop'] + + climatologyTask = \ + MpasClimatology(config=config, + variableList=variableList, + taskSuffix=taskSuffix, + componentName='ocean', + seasons=seasons, + tags=['climatology']) + + # add climatologyTask as a prerequisite of the MOC task so + # plotting won't happen until we have the required + # climatologies + if mocTask.prerequisiteTasks is None: + mocTask.prerequisiteTasks = [climatologyTask.taskName] + else: + mocTask.prerequisiteTasks.append(climatologyTask.taskName) + # We want to have access to some information from the + # climatologyTask (namely, we need a way to find out what the + # names of the climatology files are that it created), so we'll + # keep a reference to it handy. + mocTask.climatologyTask = climatologyTask + + tasks = [climatologyTask, mocTask] + return tasks # }}} + def __init__(self, config): # {{{ ''' Construct the analysis task. @@ -85,42 +131,28 @@ def setup_and_check(self): # {{{ super(StreamfunctionMOC, self).setup_and_check() config = self.config - - self.check_analysis_enabled( - analysisOptionName='config_am_timeseriesstatsmonthly_enable', - raiseException=True) + climatologyTask = self.climatologyTask self.mocAnalysisMemberEnabled = self.check_analysis_enabled( analysisOptionName='config_am_mocstreamfunction_enable', raiseException=False) + # call setup_and_check() on the climatology task because it will make + # sure the start and end year are set and correct. (In parallel mode, + # this copy of the climatologyTask is different from the one that will + # actually have run to completion before this task gets run.) + climatologyTask.setup_and_check() + + self.startDateClimo = climatologyTask.startDate + self.endDateClimo = climatologyTask.endDate + self.startYearClimo = climatologyTask.startYear + self.endYearClimo = climatologyTask.endYear + # Get a list of timeSeriesStats output files from the streams file, # reading only those that are between the start and end dates # First a list necessary for the streamfunctionMOC climatology streamName = self.historyStreams.find_stream( self.streamMap['timeSeriesStats']) - self.startDateClimo = config.get('climatology', 'startDate') - self.endDateClimo = config.get('climatology', 'endDate') - self.inputFilesClimo = \ - self.historyStreams.readpath(streamName, - startDate=self.startDateClimo, - endDate=self.endDateClimo, - calendar=self.calendar) - - if len(self.inputFilesClimo) == 0: - raise IOError('No files were found in stream {} between {} and ' - '{}.'.format(streamName, self.startDateClimo, - self.endDateClimo)) - - self.simulationStartTime = get_simulation_start_time(self.runStreams) - - update_climatology_bounds_from_file_names(self.inputFilesClimo, - self.config) - - self.startDateClimo = config.get('climatology', 'startDate') - self.endDateClimo = config.get('climatology', 'endDate') - self.startYearClimo = config.getint('climatology', 'startYear') - self.endYearClimo = config.getint('climatology', 'endYear') # Then a list necessary for the streamfunctionMOC Atlantic timeseries self.startDateTseries = config.get('timeSeries', 'startDate') @@ -157,11 +189,6 @@ def run(self): # {{{ print "\nPlotting streamfunction of Meridional Overturning " \ "Circulation (MOC)..." - print '\n List of files for climatologies:\n' \ - ' {} through\n {}'.format( - os.path.basename(self.inputFilesClimo[0]), - os.path.basename(self.inputFilesClimo[-1])) - print '\n List of files for time series:\n' \ ' {} through\n {}'.format( os.path.basename(self.inputFilesTseries[0]), @@ -179,7 +206,6 @@ def run(self): # {{{ # sectionName, dictClimo, # dictTseries) else: - self._compute_velocity_climatologies() self._compute_moc_climo_postprocess() dsMOCTimeSeries = self._compute_moc_time_series_postprocess() @@ -257,39 +283,6 @@ def _load_mesh(self): # {{{ refTopDepth, refLayerThickness # }}} - def _compute_velocity_climatologies(self): # {{{ - '''compute yearly velocity climatologies and cache them''' - - variableList = ['timeMonthly_avg_normalVelocity', - 'timeMonthly_avg_vertVelocityTop'] - - config = self.config - - outputRoot = build_config_full_path(config, 'output', - 'mpasClimatologySubdirectory') - - outputDirectory = '{}/meanVelocity'.format(outputRoot) - - self.velClimoFile = get_ncclimo_season_file_name(outputDirectory, - 'mpaso', 'ANN', - self.startYearClimo, - self.endYearClimo) - - if not os.path.exists(self.velClimoFile): - make_directories(outputDirectory) - - compute_climatologies_with_ncclimo( - config=config, - inDirectory=self.historyDirectory, - outDirectory=outputDirectory, - startYear=self.startYearClimo, - endYear=self.endYearClimo, - variableList=variableList, - modelName='mpaso', - seasons=['ANN'], - decemberMode='sdd') - # }}} - def _compute_moc_climo_postprocess(self): # {{{ '''compute mean MOC streamfunction as a post-process''' @@ -353,8 +346,14 @@ def _compute_moc_climo_postprocess(self): # {{{ if not os.path.exists(outputFileClimo): print ' Load data...' - annualClimatology = xr.open_dataset(self.velClimoFile) - # rename some variables for convenience + # use the climatologyTask to get the right file name for the + # computed climatology + velClimoFile = self.climatologyTask.get_ncclimo_file_name( + season='ANN', stage='unmasked') + + annualClimatology = xr.open_dataset(velClimoFile) + # rename some variables for convenience (what the variableMap used + # to do before we switched ot ncclimo) annualClimatology = annualClimatology.rename( {'timeMonthly_avg_normalVelocity': 'avgNormalVelocity', 'timeMonthly_avg_vertVelocityTop': 'avgVertVelocityTop'}) diff --git a/mpas_analysis/sea_ice/__init__.py b/mpas_analysis/sea_ice/__init__.py index a0e7d0823..94c72455c 100644 --- a/mpas_analysis/sea_ice/__init__.py +++ b/mpas_analysis/sea_ice/__init__.py @@ -1,2 +1,2 @@ -from climatology_map import ClimatologyMapSeaIce +from climatology_map import ClimatologyMapSeaIceConc, ClimatologyMapSeaIceThick from time_series import TimeSeriesSeaIce \ No newline at end of file diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index 71b6d35e9..dc8a5b64d 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -6,20 +6,17 @@ import xarray as xr -from ..shared.constants import constants - -from ..shared.climatology import get_lat_lon_comparison_descriptor, \ - get_remapper, get_mpas_climatology_dir_name, \ +from ..shared.climatology import get_remapper, \ get_observation_climatology_file_names, \ - compute_climatologies_with_ncclimo, \ - update_climatology_bounds_from_file_names, \ - remap_and_write_climatology, get_ncclimo_season_file_name -from ..shared.grid import MpasMeshDescriptor, LatLonGridDescriptor + remap_and_write_climatology, \ + get_comparison_descriptor, MpasClimatology +from ..shared.grid import LatLonGridDescriptor from ..shared.plot.plotting import plot_polar_comparison, \ setup_colormap from ..shared.io.utility import build_config_full_path +from ..shared.io import write_netcdf from .sea_ice_analysis_task import SeaIceAnalysisTask @@ -34,68 +31,107 @@ class ClimatologyMapSeaIce(SeaIceAnalysisTask): Xylar Asay-Davis, Milena Veneziani """ - def __init__(self, config): # {{{ + @classmethod + def create_tasks(cls, config): # {{{ """ - Construct the analysis task. + For each comparison grid, construct one task for computing the + climatologies and one plotting task for each season. The climatology + task is a prerequisite of the plotting tasks, but the plotting tasks + can run in parallel with one another. Parameters ---------- - config : instance of MpasAnalysisConfigParser + config : MpasAnalysisConfigParser object Contains configuration options Authors ------- Xylar Asay-Davis """ - # first, call the constructor from the base class (SeaIceAnalysisTask) - super(ClimatologyMapSeaIce, self).__init__( - config=config, - taskName='climatologyMapSeaIceConcThick', - componentName='seaIce', - tags=['climatology', 'horizontalMap']) - - # }}} - def setup_and_check(self): # {{{ - """ - Perform steps to set up the analysis and check for errors in the setup. + # get the name of the class (something like ClimatologyMapSST) + className = cls.__name__ + sectionPrefix = className[0].lower() + className[1:] + + tasks = [] + + # separate climatology tasks for each hemisphere + for hemisphere in ['NH', 'SH']: + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + sectionName = '{}{}'.format(sectionPrefix, hemisphere) + + # read in what seasons we want to plot + seasons = config.getExpression(sectionName, 'seasons') + + if len(seasons) == 0: + raise ValueError('config section {} does not contain valid ' + 'list of seasons'.format(sectionName)) + + comparisonGridNames = config.getExpression(sectionName, + 'comparisonGrids') + + if len(comparisonGridNames) == 0: + raise ValueError('config section {} does not contain valid ' + 'list of comparison grids'.format( + sectionName)) + + observationPrefixes = \ + config.getExpression(sectionName, 'observationPrefixes') + + climatologyMapTasks = [] + for comparisonGridName in comparisonGridNames: + for season in seasons: + for observationPrefix in observationPrefixes: + # one plotting task for each season, comparison grid, + # and type of observations + climatologyMapTasks.append(cls( + config=config, + hemisphere=hemisphere, + season=season, + comparisonGridName=comparisonGridName, + observationPrefix=observationPrefix)) + + # we'll use the first task (corresponding to the first season in + # the list) as a way to get some information we need to build the + # MpasClimatology task for computing climatologies: + # mpasVariableName, componentName, fieldName + firstTask = climatologyMapTasks[0] + + taskSuffix = firstTask.fieldName[0].upper() + \ + firstTask.fieldName[1:] + hemisphere + + climatologyTask = \ + MpasClimatology(config=config, + variableList=[firstTask.mpasFieldName], + taskSuffix=taskSuffix, + componentName=firstTask.componentName, + comparisonGridNames=comparisonGridNames, + seasons=seasons, + tags=['climatology'], + iselValues=firstTask.iselValues) + + for index in range(len(climatologyMapTasks)): + climatologyMapTask = climatologyMapTasks[index] + # add climatologyTask as a prerequisite of each task so + # plotting won't happen until we have the required + # climatologies + if climatologyMapTask.prerequisiteTasks is None: + climatologyMapTask.prerequisiteTasks = \ + [climatologyTask.taskName] + else: + climatologyMapTask.prerequisiteTasks.append( + climatologyTask.taskName) + # We want to have access to some information from the + # climatologyTask (namely, we need a way to find out what the + # names of the climatology files are that it created), so we'll + # keep a reference to it handy. + climatologyMapTask.climatologyTask = climatologyTask - Authors - ------- - Xylar Asay-Davis - """ - # first, call setup_and_check from the base class (SeaIceAnalysisTask), - # which will perform some common setup - super(ClimatologyMapSeaIce, self).setup_and_check() - - self.check_analysis_enabled( - analysisOptionName='config_am_timeseriesstatsmonthly_enable', - raiseException=True) - - # get a list of timeSeriesStatsMonthly output files from the streams - # file, reading only those that are between the start and end dates - streamName = self.historyStreams.find_stream( - self.streamMap['timeSeriesStats']) - startDate = self.config.get('climatology', 'startDate') - endDate = self.config.get('climatology', 'endDate') - self.inputFiles = \ - self.historyStreams.readpath(streamName, - startDate=startDate, - endDate=endDate, - calendar=self.calendar) - - if len(self.inputFiles) == 0: - raise IOError('No files were found in stream {} between {} and ' - '{}.'.format(streamName, startDate, - endDate)) - - update_climatology_bounds_from_file_names(self.inputFiles, - self.config) - - self.startYear = self.config.getint('climatology', 'startYear') - self.endYear = self.config.getint('climatology', 'endYear') + tasks.append(climatologyTask) + tasks.extend(climatologyMapTasks) - # }}} + return tasks # }}} def run(self): # {{{ """ @@ -107,442 +143,387 @@ def run(self): # {{{ Xylar Asay-Davis, Milena Veneziani """ - print "\nPlotting 2-d maps of sea-ice concentration and thickness " \ - "climatologies..." + print "\nPlotting 2-d maps of {} climatologies...".format( + self.fieldNameInTitle) - print '\n Reading files:\n' \ - ' {} through\n {}'.format( - os.path.basename(self.inputFiles[0]), - os.path.basename(self.inputFiles[-1])) + climatologyTask = self.climatologyTask - # Compute climatologies (first motnhly and then seasonally) - print ' Compute seasonal climatologies...' + # call setup_and_check() on the climatology task because it will make + # sure the start and end year are set and correct. (In parallel mode, + # this copy of the climatologyTask is different from the one where + # setup_and_check was already called, and run completed successfully.) + climatologyTask.setup_and_check() - mpasDescriptor = MpasMeshDescriptor( - self.restartFileName, - meshName=self.config.get('input', 'mpasMeshName')) + self._do_ploting() # }}} - comparisonDescriptor = get_lat_lon_comparison_descriptor(self.config) + def get_task_name_and_tags(self): + className = type(self).__name__ + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + taskPrefix = className[0].lower() + className[1:] - parallel = self.config.getint('execute', 'parallelTaskCount') > 1 - if parallel: - # avoid writing the same mapping file from multiple processes - mappingFilePrefix = 'map_{}'.format(self.taskName) - else: - mappingFilePrefix = 'map' + upperComparison = self.comparisonGridName[0].upper() + \ + self.comparisonGridName[1:] + + taskName = '{}{}{}{}_{}'.format(taskPrefix, self.hemisphere, + self.observationPrefix, + upperComparison, self.season) - self.mpasRemapper = get_remapper( - config=self.config, sourceDescriptor=mpasDescriptor, - comparisonDescriptor=comparisonDescriptor, - mappingFilePrefix=mappingFilePrefix, - method=self.config.get('climatology', 'mpasInterpolationMethod')) + tags = ['climatology', 'horizontalMap', self.comparisonGridName, + taskPrefix] - self._compute_seasonal_climatologies( - seasons=['JFM', 'JAS', 'DJF', 'JJA', 'FM', 'ON']) + return taskName, tags - self._compute_and_plot_concentration() + def get_section_name(self): + className = type(self).__name__ + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + sectionName = className[0].lower() + className[1:] - self._compute_and_plot_thickness() # }}} + sectionName = '{}{}'.format(sectionName, self.hemisphere) - def _compute_seasonal_climatologies(self, seasons): # {{{ + return sectionName + def _do_ploting(self): # {{{ + ''' + plots model results, observations and biases. + + Authors + ------- + Xylar Asay-Davis, Milena Veneziani + ''' config = self.config - mpasMeshName = self.mpasRemapper.sourceDescriptor.meshName - comparisonGridName = self.mpasRemapper.destinationDescriptor.meshName + mainRunName = config.get('runs', 'mainRunName') - overwriteMpasClimatology = config.getWithDefault( - 'climatology', 'overwriteMpasClimatology', False) + comparisonDescriptor = \ + get_comparison_descriptor(config, self.comparisonGridName) - self.climatologyDirectory = \ - get_mpas_climatology_dir_name( - config=config, - fieldName='seaIceAreaVol', - mpasMeshName=mpasMeshName) + remappedFileName = self.climatologyTask.get_ncclimo_file_name( + self.season, 'remapped', comparisonDescriptor) + + obsDescriptor = LatLonGridDescriptor.read(fileName=self.obsFileName, + latVarName='t_lat', + lonVarName='t_lon') + + remappedClimatology = xr.open_dataset(remappedFileName) + + modelOutput = remappedClimatology[self.mpasFieldName].values + if self.maskValue is not None: + modelOutput = ma.masked_values(modelOutput, self.maskValue) + lon = remappedClimatology['lon'].values + lat = remappedClimatology['lat'].values + + lonTarg, latTarg = np.meshgrid(lon, lat) + + if self.hemisphere == 'NH': + plotProjection = 'npstere' + else: + plotProjection = 'spstere' + + sectionName = self.get_section_name() + + (colormapResult, colorbarLevelsResult) = setup_colormap( + config, sectionName, suffix='Result') + (colormapDifference, colorbarLevelsDifference) = setup_colormap( + config, sectionName, suffix='Difference') - (self.maskedClimatologyDirectory, self.remappedDirectory) = \ - get_mpas_climatology_dir_name( + referenceLongitude = config.getfloat(sectionName, 'referenceLongitude') + minimumLatitude = config.getfloat(sectionName, 'minimumLatitude') + + if not os.path.isfile(self.obsFileName): + raise OSError('Obs file {} not found.'.format( + self.obsFileName)) + + obsRemapper = get_remapper( config=config, - fieldName='seaIceAreaVol_masked', - mpasMeshName=mpasMeshName, - comparisonGridName=comparisonGridName) - - # the last climatology produced by NCO is always the annual, so if that - # exists, others are also finished. - climatologyFileName = \ - '{}/mpascice_ANN_climo.nc'.format(self.climatologyDirectory) - if (overwriteMpasClimatology or - not os.path.exists(climatologyFileName)): - - compute_climatologies_with_ncclimo( - config=config, - inDirectory=self.historyDirectory, - outDirectory=self.climatologyDirectory, - startYear=self.startYear, - endYear=self.endYear, - variableList=['timeMonthly_avg_iceAreaCell', - 'timeMonthly_avg_iceVolumeCell'], - modelName='mpascice', - seasons=seasons, - decemberMode='sdd') - - self._remap_seasonal_climatology(seasons) + sourceDescriptor=obsDescriptor, + comparisonDescriptor=comparisonDescriptor, + mappingFilePrefix='map_obs_{}'.format(self.fieldName), + method=config.get('seaIceObservations', + 'interpolationMethod')) + + (obsClimatologyFileName, obsRemappedFileName) = \ + get_observation_climatology_file_names( + config=config, fieldName=self.obsFieldName, + monthNames=self.season, componentName=self.componentName, + remapper=obsRemapper) + + if not os.path.exists(obsRemappedFileName): + + # load the observations the first time + seasonalClimatology = self._build_observational_dataset() + write_netcdf(seasonalClimatology, obsClimatologyFileName) + + if obsRemapper is None: + # no need to remap because the observations are on the + # comparison grid already + remappedClimatology = seasonalClimatology + else: + remappedClimatology = \ + remap_and_write_climatology( + config, seasonalClimatology, obsClimatologyFileName, + obsRemappedFileName, obsRemapper) + + else: + remappedClimatology = xr.open_dataset(obsRemappedFileName) + + observations = remappedClimatology[self.obsFieldName].values + if self.maskValue is not None: + observations = ma.masked_values(observations, self.maskValue) + + difference = modelOutput - observations + + startYear = self.climatologyTask.startYear + endYear = self.climatologyTask.endYear + + title = '{} ({}, years {:04d}-{:04d})'.format( + self.fieldNameInTitle, self.season, startYear, endYear) + fileout = '{}/iceconc{}{}_{}_{}_years{:04d}-{:04d}.png'.format( + self.plotsDirectory, self.observationPrefix, self.hemisphere, + mainRunName, self.season, startYear, endYear) + plot_polar_comparison( + config, + lonTarg, + latTarg, + modelOutput, + observations, + difference, + colormapResult, + colorbarLevelsResult, + colormapDifference, + colorbarLevelsDifference, + title=title, + fileout=fileout, + plotProjection=plotProjection, + latmin=minimumLatitude, + lon0=referenceLongitude, + modelTitle=mainRunName, + obsTitle=self.observationTitleLabel, + diffTitle='Model-Observations', + cbarlabel=self.unitsLabel) # }}} - def _compute_and_plot_concentration(self): - ''' - computes seasonal climatologies and plots model results, observations - and biases in sea-ice concentration. + +class ClimatologyMapSeaIceConc(ClimatologyMapSeaIce): # {{{ + """ + An analysis task for comparison of sea ice concentration against + observations + + Authors + ------- + Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani + """ + def __init__(self, config, hemisphere, season, comparisonGridName, + observationPrefix): + # {{{ + """ + Construct the analysis task. + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + seasons : ['NH', 'SH'] + The hemisphere to plot + + seasons : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an + observations are compared + + observationPrefix : {'NASATeam', 'Bootstrap'} + A prefix describing the set of observations to use Authors ------- - Xylar Asay-Davis, Milena Veneziani - ''' + Xylar Asay-Davis + """ + self.fieldName = 'seaIceConc' + self.fieldNameInTitle = 'Sea ice concentration' + self.hemisphere = hemisphere + self.season = season + self.comparisonGridName = comparisonGridName + self.observationPrefix = observationPrefix - print ' Make ice concentration plots...' + self.mpasFieldName = 'timeMonthly_avg_iceAreaCell' + self.iselValues = None - config = self.config + taskName, tags = self.get_task_name_and_tags() - mainRunName = config.get('runs', 'mainRunName') + tags.append(self.fieldName) - subtitle = 'Ice concentration' - - hemisphereSeasons = {'JFM': ('NH', 'Winter'), - 'JAS': ('NH', 'Summer'), - 'DJF': ('SH', 'Winter'), - 'JJA': ('SH', 'Summer')} - - obsFileNames = {} - remappedObsFileNames = {} - obsRemappers = {} - - comparisonDescriptor = self.mpasRemapper.destinationDescriptor - - buildObsClimatologies = False - for months in hemisphereSeasons: - hemisphere, season = hemisphereSeasons[months] - climFieldName = 'iceConcentration' - for obsName in ['NASATeam', 'Bootstrap']: - key = (months, obsName) - obsFileName = build_config_full_path( - config, 'seaIceObservations', - 'concentration{}{}_{}'.format(obsName, hemisphere, months)) - obsFieldName = '{}_{}_{}'.format(climFieldName, hemisphere, - obsName) - - obsDescriptor = LatLonGridDescriptor.read(fileName=obsFileName, - latVarName='t_lat', - lonVarName='t_lon') - obsRemapper = get_remapper( - config=config, sourceDescriptor=obsDescriptor, - comparisonDescriptor=comparisonDescriptor, - mappingFilePrefix='map_obs_seaIce', - method=config.get('seaIceObservations', - 'interpolationMethod')) - obsRemappers[key] = obsRemapper - - if not os.path.isfile(obsFileName): - raise OSError('Obs file {} not found.'.format( - obsFileName)) - - (climatologyFileName, remappedFileName) = \ - get_observation_climatology_file_names( - config=config, fieldName=obsFieldName, - monthNames=months, componentName=self.componentName, - remapper=obsRemapper) - - obsFileNames[key] = obsFileName - remappedObsFileNames[key] = remappedFileName - - if not os.path.exists(remappedFileName): - buildObsClimatologies = True - - for months in hemisphereSeasons: - hemisphere, season = hemisphereSeasons[months] - field = 'timeMonthly_avg_iceAreaCell' - climFieldName = 'iceConcentration' - - remappedFileName = \ - get_ncclimo_season_file_name(self.remappedDirectory, - 'mpascice', months, - self.startYear, self.endYear) - - remappedClimatology = xr.open_dataset(remappedFileName) - - iceConcentration = remappedClimatology[field].values - lon = remappedClimatology['lon'].values - lat = remappedClimatology['lat'].values - - lonTarg, latTarg = np.meshgrid(lon, lat) - - if hemisphere == 'NH': - plotProjection = 'npstere' - else: - plotProjection = 'spstere' - - (colormapResult, colorbarLevelsResult) = setup_colormap( - config, - 'climatologyMapSeaIceConcThick', - suffix='ConcResult{}'.format(season)) - (colormapDifference, colorbarLevelsDifference) = setup_colormap( - config, - 'climatologyMapSeaIceConcThick', - suffix='ConcDifference{}'.format(season)) - - referenceLongitude = config.getfloat( - 'climatologyMapSeaIceConcThick', - 'referenceLongitude{}'.format(hemisphere)) - minimumLatitude = config.getfloat( - 'climatologyMapSeaIceConcThick', - 'minimumLatitude{}'.format(hemisphere)) - - # ice concentrations from NASATeam (or Bootstrap) algorithm - for obsName in ['NASATeam', 'Bootstrap']: - obsFieldName = 'AICE' - - key = (months, obsName) - remappedFileName = remappedObsFileNames[key] - - if buildObsClimatologies: - obsFileName = obsFileNames[key] - - seasonalClimatology = xr.open_dataset(obsFileName) - - remappedClimatology = remap_and_write_climatology( - config, seasonalClimatology, climatologyFileName, - remappedFileName, obsRemappers[key]) - - obsIceConcentration = remappedClimatology[obsFieldName].values - - difference = iceConcentration - obsIceConcentration - - title = '{} ({}, years {:04d}-{:04d})'.format( - subtitle, months, self.startYear, self.endYear) - fileout = '{}/iceconc{}{}_{}_{}_years{:04d}-{:04d}.png'.format( - self.plotsDirectory, obsName, hemisphere, mainRunName, - months, self.startYear, self.endYear) - plot_polar_comparison( - config, - lonTarg, - latTarg, - iceConcentration, - obsIceConcentration, - difference, - colormapResult, - colorbarLevelsResult, - colormapDifference, - colorbarLevelsDifference, - title=title, - fileout=fileout, - plotProjection=plotProjection, - latmin=minimumLatitude, - lon0=referenceLongitude, - modelTitle=mainRunName, - obsTitle='Observations (SSM/I {})'.format(obsName), - diffTitle='Model-Observations', - cbarlabel='fraction') - - def _compute_and_plot_thickness(self): + # call the constructor from the base class (AnalysisTask) + super(ClimatologyMapSeaIceConc, self).__init__(config=config, + taskName=taskName, + componentName='seaIce', + tags=tags) + + # }}} + + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + """ + # first, call setup_and_check from the base class + # (ClimatologyMapSeaIce), which will perform some common setup, + # including storing: + # self.runDirectory , self.historyDirectory, self.plotsDirectory, + # self.namelist, self.runStreams, self.historyStreams, + # self.calendar, self.namelistMap, self.streamMap, self.variableMap + super(ClimatologyMapSeaIceConc, self).setup_and_check() + + self.obsFileName = build_config_full_path( + self.config, 'seaIceObservations', + 'concentration{}{}_{}'.format(self.observationPrefix, + self.hemisphere, + self.season)) + + self.obsFieldName = 'AICE' + + self.observationTitleLabel = \ + 'Observations (SSM/I {})'.format(self.observationPrefix) + + self.outFileLabel = 'iceconc{}{}'.format(self.observationPrefix, + self.hemisphere) + self.unitsLabel = 'fraction' + + self.maskValue = None + + # }}} + + def _build_observational_dataset(self): # {{{ ''' - Computes seasonal climatologies and plots model results, observations - and biases in sea-ice thickness. + read in the data sets for observations, and possibly rename some + variables and dimensions Authors ------- - Xylar Asay-Davis, Milena Veneziani + Xylar Asay-Davis ''' - print ' Make ice thickness plots...' + dsObs = xr.open_mfdataset(self.obsFileName) - config = self.config + return dsObs # }}} - subtitle = 'Ice thickness' + # }}} - plotsDirectory = build_config_full_path(config, 'output', - 'plotsSubdirectory') - mainRunName = config.get('runs', 'mainRunName') - obsFileNames = {} - remappedObsFileNames = {} - obsRemappers = {} - - comparisonDescriptor = self.mpasRemapper.destinationDescriptor - - # build a list of remapped observations files - buildObsClimatologies = False - for months in ['FM', 'ON']: - climFieldName = 'iceThickness' - for hemisphere in ['NH', 'SH']: - key = (months, hemisphere) - obsFileName = build_config_full_path( - config, 'seaIceObservations', - 'thickness{}_{}'.format(hemisphere, months)) - if not os.path.isfile(obsFileName): - raise OSError('Obs file {} not found.'.format( - obsFileName)) - - obsFieldName = '{}_{}'.format(climFieldName, hemisphere) - obsDescriptor = LatLonGridDescriptor.read(fileName=obsFileName, - latVarName='t_lat', - lonVarName='t_lon') - obsRemapper = get_remapper( - config=config, sourceDescriptor=obsDescriptor, - comparisonDescriptor=comparisonDescriptor, - mappingFilePrefix='map_obs_seaIce', - method=config.get('seaIceObservations', - 'interpolationMethod')) - obsRemappers[key] = obsRemapper - - (climatologyFileName, remappedFileName) = \ - get_observation_climatology_file_names( - config=config, fieldName=obsFieldName, - monthNames=months, componentName=self.componentName, - remapper=obsRemapper) - - obsFileNames[key] = obsFileName - remappedObsFileNames[key] = remappedFileName - - if not os.path.exists(remappedFileName): - buildObsClimatologies = True - - for months in ['FM', 'ON']: - field = 'timeMonthly_avg_iceVolumeCell' - climFieldName = 'iceThickness' - - remappedFileName = \ - get_ncclimo_season_file_name(self.remappedDirectory, - 'mpascice', months, - self.startYear, self.endYear) - - remappedClimatology = xr.open_dataset(remappedFileName) - - iceThickness = remappedClimatology[field].values - iceThickness = ma.masked_values(iceThickness, 0) - lon = remappedClimatology['lon'].values - lat = remappedClimatology['lat'].values - - lonTarg, latTarg = np.meshgrid(lon, lat) - - for hemisphere in ['NH', 'SH']: - obsFieldName = 'HI' - - (colormapResult, colorbarLevelsResult) = setup_colormap( - config, - 'climatologyMapSeaIceConcThick', - suffix='ThickResult{}'.format(hemisphere)) - (colormapDifference, colorbarLevelsDifference) = \ - setup_colormap(config, 'climatologyMapSeaIceConcThick', - suffix='ThickDifference{}'.format( - hemisphere)) - - referenceLongitude = config.getfloat( - 'climatologyMapSeaIceConcThick', - 'referenceLongitude{}'.format(hemisphere)) - minimumLatitude = config.getfloat( - 'climatologyMapSeaIceConcThick', - 'minimumLatitude{}'.format(hemisphere)) - - # now the observations - key = (months, hemisphere) - remappedFileName = remappedObsFileNames[key] - - if buildObsClimatologies: - obsFileName = obsFileNames[key] - - seasonalClimatology = xr.open_dataset(obsFileName) - - remappedClimatology = remap_and_write_climatology( - config, seasonalClimatology, climatologyFileName, - remappedFileName, obsRemappers[key]) - - obsIceThickness = remappedClimatology[obsFieldName].values - - # Mask thickness fields - obsIceThickness = ma.masked_values(obsIceThickness, 0) - if hemisphere == 'NH': - # Obs thickness should be nan above 86 (ICESat data) - obsIceThickness[latTarg > 86] = ma.masked - plotProjection = 'npstere' - else: - plotProjection = 'spstere' - - difference = iceThickness - obsIceThickness - - title = '{} ({}, years {:04d}-{:04d})'.format(subtitle, months, - self.startYear, - self.endYear) - fileout = '{}/icethick{}_{}_{}_years{:04d}-{:04d}.png'.format( - plotsDirectory, hemisphere, mainRunName, months, - self.startYear, self.endYear) - plot_polar_comparison( - config, - lonTarg, - latTarg, - iceThickness, - obsIceThickness, - difference, - colormapResult, - colorbarLevelsResult, - colormapDifference, - colorbarLevelsDifference, - title=title, - fileout=fileout, - plotProjection=plotProjection, - latmin=minimumLatitude, - lon0=referenceLongitude, - modelTitle=mainRunName, - obsTitle='Observations (ICESat)', - diffTitle='Model-Observations', - cbarlabel='m') +class ClimatologyMapSeaIceThick(ClimatologyMapSeaIce): # {{{ + """ + An analysis task for comparison of sea ice thickness against observations - # }}} + Authors + ------- + Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani + """ + def __init__(self, config, hemisphere, season, comparisonGridName, + observationPrefix=''): + # {{{ + """ + Construct the analysis task. - def _remap_seasonal_climatology(self, seasons): # {{{ + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options - modelName = 'mpascice' + seasons : ['NH', 'SH'] + The hemisphere to plot - for season in seasons: + seasons : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted - overwriteMpasClimatology = self.config.getWithDefault( - 'climatology', 'overwriteMpasClimatology', False) + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an + observations are compared - monthValues = constants.monthDictionary[season] + observationPrefix : {''} + A prefix describing the set of observations to use (empty for + this task) - # interpolate the model results - climatologyFileName = \ - get_ncclimo_season_file_name(self.climatologyDirectory, - modelName, season, - self.startYear, self.endYear) + Authors + ------- + Xylar Asay-Davis + """ + self.fieldName = 'seaIceThick' + self.fieldNameInTitle = 'Sea ice thickness' + self.hemisphere = hemisphere + self.season = season + self.comparisonGridName = comparisonGridName + self.observationPrefix = observationPrefix - maskedClimatologyFileName = \ - get_ncclimo_season_file_name(self.maskedClimatologyDirectory, - modelName, season, - self.startYear, self.endYear) + self.mpasFieldName = 'timeMonthly_avg_iceVolumeCell' + self.iselValues = None - remappedFileName = \ - get_ncclimo_season_file_name(self.remappedDirectory, - modelName, season, - self.startYear, self.endYear) + taskName, tags = self.get_task_name_and_tags() - if (overwriteMpasClimatology or - not os.path.exists(maskedClimatologyFileName)): - # slice the data set and set _FillValue (happens automatically) - print climatologyFileName - climatology = xr.open_dataset(climatologyFileName) - iselValues = {'Time': 0} - # select only Time=0 - climatology = climatology.isel(**iselValues) + tags.append(self.fieldName) - climatology.to_netcdf(maskedClimatologyFileName) + # call the constructor from the base class (AnalysisTask) + super(ClimatologyMapSeaIceThick, self).__init__(config=config, + taskName=taskName, + componentName='seaIce', + tags=tags) - if (overwriteMpasClimatology or - not os.path.exists(remappedFileName)): - self.mpasRemapper.remap_file( - inFileName=maskedClimatologyFileName, - outFileName=remappedFileName, - overwrite=True) # }}} + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + """ + # first, call setup_and_check from the base class + # (ClimatologyMapSeaIce), which will perform some common setup, + # including storing: + # self.runDirectory , self.historyDirectory, self.plotsDirectory, + # self.namelist, self.runStreams, self.historyStreams, + # self.calendar, self.namelistMap, self.streamMap, self.variableMap + super(ClimatologyMapSeaIceThick, self).setup_and_check() + + self.obsFileName = build_config_full_path( + self.config, 'seaIceObservations', + 'thickness{}_{}'.format(self.hemisphere, self.season)) + + self.obsFieldName = 'HI' + + self.observationTitleLabel = 'Observations (ICESat)' + + self.outFileLabel = 'icethick{}'.format(self.hemisphere) + + self.unitsLabel = 'm' + + self.maskValue = 0 + + # }}} + + def _build_observational_dataset(self): # {{{ + ''' + read in the data sets for observations, and possibly rename some + variables and dimensions + + Authors + ------- + Xylar Asay-Davis + ''' + + dsObs = xr.open_mfdataset(self.obsFileName) + + return dsObs # }}} + + # }}} # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/sea_ice/sea_ice_analysis_task.py b/mpas_analysis/sea_ice/sea_ice_analysis_task.py index 53897bb6b..4a5aed172 100644 --- a/mpas_analysis/sea_ice/sea_ice_analysis_task.py +++ b/mpas_analysis/sea_ice/sea_ice_analysis_task.py @@ -10,6 +10,15 @@ class SeaIceAnalysisTask(AnalysisTask): # {{{ ''' A base class for sea-ice analysis tasks that implements common setup + Attributes + ---------- + simulationStartTime : str + The start date of the simulation parsed from a restart file identified + by the contents of ``streams``. + + restartFileName : str + Name of a restart file used for mesh information + Authors ------- Xylar Asay-Davis @@ -65,7 +74,6 @@ def setup_and_check(self): # {{{ # }}} - # }}} # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/shared/climatology/__init__.py b/mpas_analysis/shared/climatology/__init__.py index c9bead3f6..7fe92abb5 100644 --- a/mpas_analysis/shared/climatology/__init__.py +++ b/mpas_analysis/shared/climatology/__init__.py @@ -1,6 +1,10 @@ -from .climatology import get_lat_lon_comparison_descriptor, get_remapper, \ - get_mpas_climatology_dir_name, get_observation_climatology_file_names, \ - compute_monthly_climatology, compute_climatology, cache_climatologies, \ - update_start_end_year, add_years_months_days_in_month, \ - remap_and_write_climatology, compute_climatologies_with_ncclimo, \ - update_climatology_bounds_from_file_names, get_ncclimo_season_file_name +from .climatology import get_remapper, \ + get_observation_climatology_file_names, \ + compute_monthly_climatology, compute_climatology, \ + add_years_months_days_in_month, \ + remap_and_write_climatology + +from .comparison_descriptors import get_comparison_descriptor, \ + get_antarctic_stereographic_projection + +from .mpas_climatology_task import MpasClimatology diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index bfb4d01d4..b8b341a04 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -10,9 +10,6 @@ import os import numpy import warnings -from distutils.spawn import find_executable -import sys -import subprocess from ..constants import constants @@ -26,44 +23,6 @@ from ..grid import LatLonGridDescriptor, ProjectionGridDescriptor -def get_lat_lon_comparison_descriptor(config): # {{{ - """ - Get a descriptor of the lat/lon comparison grid, used for remapping and - determining the grid name - - Parameters - ---------- - config : instance of ``MpasAnalysisConfigParser`` - Contains configuration options - - Returns - ------- - descriptor : ``LatLonGridDescriptor`` object - A descriptor of the lat/lon grid - - Authors - ------- - Xylar Asay-Davis - """ - climSection = 'climatology' - - comparisonLatRes = config.getWithDefault(climSection, - 'comparisonLatResolution', - constants.dLatitude) - comparisonLonRes = config.getWithDefault(climSection, - 'comparisonLatResolution', - constants.dLongitude) - - nLat = int((constants.latmax-constants.latmin)/comparisonLatRes)+1 - nLon = int((constants.lonmax-constants.lonmin)/comparisonLonRes)+1 - lat = numpy.linspace(constants.latmin, constants.latmax, nLat) - lon = numpy.linspace(constants.lonmin, constants.lonmax, nLon) - - descriptor = LatLonGridDescriptor.create(lat, lon, units='degrees') - - return descriptor # }}} - - def get_remapper(config, sourceDescriptor, comparisonDescriptor, mappingFilePrefix, method): # {{{ """ @@ -141,222 +100,6 @@ def get_remapper(config, sourceDescriptor, comparisonDescriptor, return remapper # }}} -def get_mpas_climatology_dir_name(config, fieldName, mpasMeshName, - comparisonGridName=None): # {{{ - """ - Given config options, the name of a field and a string identifying the - months in a seasonal climatology, returns the full path for MPAS - climatology files before and after remapping. - - Parameters - ---------- - config : instance of MpasAnalysisConfigParser - Contains configuration options - - fieldName : str - Name of the field being mapped, used as a prefix for the climatology - file name. - - mpasMeshName : str - The name of the MPAS mesh - - comparisonGridName : str, optional - The name of the comparison grid (if any) - - Returns - ------- - climatologyFileName : str - The absolute path to a file where the climatology should be stored - before remapping. - - climatologyPrefix : str - The prfix including absolute path for climatology cache files before - remapping. - - remappedFileName : str - The absolute path to a file where the climatology should be stored - after remapping if ``comparisonGridName`` is supplied - - Authors - ------- - Xylar Asay-Davis - """ - - climatologyBaseDirectory = build_config_full_path( - config, 'output', 'mpasClimatologySubdirectory') - - climatologyDirectory = '{}/{}_{}'.format(climatologyBaseDirectory, - fieldName, - mpasMeshName) - - make_directories(climatologyDirectory) - - if comparisonGridName is None: - return climatologyDirectory - else: - remappedBaseDirectory = build_config_full_path( - config, 'output', 'mpasRemappedClimSubdirectory') - - remappedDirectory = '{}/{}_{}_to_{}'.format( - remappedBaseDirectory, fieldName, mpasMeshName, - comparisonGridName) - - make_directories(remappedDirectory) - - return (climatologyDirectory, remappedDirectory) - - # }}} - - -def get_ncclimo_season_file_name(directory, modelName, seasonName, startYear, - endYear): # {{{ - """ - Given config options, the name of a field and a string identifying the - months in a seasonal climatology, returns the full path for MPAS - climatology files before and after regridding. - - Parameters - ---------- - directory : str - the directory containing climatologies generated by ncclimo - - modelName : ['mpaso', 'mpascice'] - The name of the component for which the climatology is to be computed - - seasonName : str - One of the season names in ``constants.monthDictionary`` - - startYear, endYear : int - The start and end years of the climatology - - Returns - ------- - fileName : str - The path to the climatology file for the specified season. - - Authors - ------- - Xylar Asay-Davis - """ - - monthValues = sorted(constants.monthDictionary[seasonName]) - startMonth = monthValues[0] - endMonth = monthValues[-1] - - suffix = '{:04d}{:02d}_{:04d}{:02d}_climo'.format(startYear, startMonth, - endYear, endMonth) - - if seasonName in constants.abrevMonthNames: - seasonName = '{:02d}'.format(monthValues[0]) - fileName = '{}/{}_{}_{}.nc'.format(directory, modelName, seasonName, - suffix) - return fileName # }}} - - -def compute_climatologies_with_ncclimo(config, inDirectory, outDirectory, - startYear, endYear, - variableList, modelName, - seasons='none', - decemberMode='sdd', - remapper=None, - regriddedDirectory=None): # {{{ - ''' - Uses ncclimo to compute monthly, seasonal (DJF, MAM, JJA, SON) and annual - climatologies. - - Parameters - ---------- - config : instance of MpasAnalysisConfigParser - Contains configuration options - - inDirectory : str - The run directory containing timeSeriesStatsMonthly output - - outDirectory : str - The output directory where climatologies will be written - - - startYear, endYear : int - The start and end years of the climatology - - variableList : list of str - A list of variables to include in the climatology - - modelName : ['mpaso', 'mpascice'] - The name of the component for which the climatology is to be computed - - seasons : list of str - Seasons (keys in ``constants.monthDictionary`` other than individual - months, which will be removed automatically) over which monthly - climatologies should be aggregated. - - decemberMode : ['scd', 'sdd'], optional - Whether years start in December (scd - seasonally continuous December) - or January (sdd - seasonally discontinuous December). If the former, - the data set begins with December of the year before startYear and ends - with November of endYear. Otherwise (the default), goes from January - of startYear to December of endYear. - - remapper : ``shared.intrpolation.Remapper`` object, optional - If present, a remapper that defines the source and desitnation grids - for remapping the climatologies. - - regriddedDirectory : str, optional - If present, the path where regridded climatologies should be written. - By default, regridded files are stored in the same directory as the - climatologies on the source grid. Has no effect if ``remapper`` is - ``None``. - - Raises - ------ - OSError - If ``ncclimo`` is not in the system path. - - Author - ------ - Xylar Asay-Davis - ''' - - if find_executable('ncclimo') is None: - raise OSError('ncclimo not found. Make sure the latest nco ' - 'package is installed: \n' - 'conda install nco\n' - 'Note: this presumes use of the conda-forge ' - 'channel.') - - parallelMode = config.get('execute', 'ncclimoParallelMode') - - # make sure to remove individual months from seasons - seasons = [season for season in seasons if season not in - constants.abrevMonthNames] - - args = ['ncclimo', - '--clm_md=mth', - '-a', decemberMode, - '-m', modelName, - '-p', parallelMode, - '-v', ','.join(variableList), - '--seasons={}'.format(','.join(seasons)), - '-s', '{:04d}'.format(startYear), - '-e', '{:04d}'.format(endYear), - '-i', inDirectory, - '-o', outDirectory] - - if remapper is not None: - args.extend(['-r', remapper.mappingFileName]) - if regriddedDirectory is not None: - args.extend(['-O', regriddedDirectory]) - - print 'running: {}'.format(' '.join(args)) - - # make sure any output is flushed before we add output from the - # subprocess - sys.stdout.flush() - sys.stderr.flush() - - subprocess.check_call(args) # }}} - - def get_observation_climatology_file_names(config, fieldName, monthNames, componentName, remapper): # {{{ """ @@ -530,206 +273,6 @@ def compute_climatology(ds, monthValues, calendar=None, return climatology # }}} -def cache_climatologies(ds, monthValues, config, cachePrefix, calendar, - printProgress=False): # {{{ - ''' - Cache NetCDF files for each year of an annual climatology, and then use - the cached files to compute a climatology for the full range of years. - The start and end years of the climatology are taken from ``config``, and - are updated in ``config`` if the data set ``ds`` doesn't contain this - full range. - - Note: only works with climatologies where the mask (locations of ``NaN`` - values) doesn't vary with time. - - Parameters - ---------- - ds : ``xarray.Dataset`` or ``xarray.DataArray`` object - A data set with a ``Time`` coordinate expressed as days since - 0001-01-01 - - monthValues : int or array-like of ints - A single month or an array of months to be averaged together - - config : instance of MpasAnalysisConfigParser - Contains configuration options - - cachePrefix : str - The file prefix (including path) to which the year (or years) will be - appended as cache files are stored - - calendar : ``{'gregorian', 'gregorian_noleap'}`` - The name of one of the calendars supported by MPAS cores, used to - determine ``year`` and ``month`` from ``Time`` coordinate - - printProgress: bool, optional - Whether progress messages should be printed as the climatology is - computed - - Returns - ------- - climatology : object of same type as ``ds`` - A data set without the ``'Time'`` coordinate containing the mean - of ds over all months in monthValues, weighted by the number of days - in each month. - - Authors - ------- - Xylar Asay-Davis - ''' - startYearClimo = config.getint('climatology', 'startYear') - endYearClimo = config.getint('climatology', 'endYear') - yearsPerCacheFile = config.getint('climatology', 'yearsPerCacheFile') - - if printProgress: - print ' Computing and caching climatologies covering {}-year ' \ - 'spans...'.format(yearsPerCacheFile) - - ds = add_years_months_days_in_month(ds, calendar) - - cacheInfo, cacheIndices = _setup_climatology_caching(ds, startYearClimo, - endYearClimo, - yearsPerCacheFile, - cachePrefix, - monthValues) - - ds = ds.copy() - ds.coords['cacheIndices'] = ('Time', cacheIndices) - - # compute and store each cache file with interval yearsPerCacheFile - _cache_individual_climatologies(ds, cacheInfo, printProgress, - yearsPerCacheFile, monthValues, - calendar) - - # compute the aggregate climatology - climatology = _cache_aggregated_climatology(startYearClimo, endYearClimo, - cachePrefix, printProgress, - monthValues, cacheInfo) - - return climatology # }}} - - -def update_start_end_year(ds, config, calendar): # {{{ - """ - Update the start and end years for climatologies based on the - years actually present in the given data set. - - Parameters - ---------- - ds : instance of xarray.Dataset - A data set from which start and end years will be determined - - config : instance of MpasAnalysisConfigParser - Contains configuration options - - calendar : {'gregorian', 'gregorian_noleap'} - The name of one of the calendars supported by MPAS cores - - Returns - ------- - changed : bool - Whether the start and end years were changed - - startYear, endYear : int - The start and end years of the data set - - Authors - ------- - Xylar Asay-Davis - """ - requestedStartYear = config.getint('climatology', 'startYear') - requestedEndYear = config.getint('climatology', 'endYear') - - startYear = days_to_datetime(ds.Time.min().values, calendar=calendar).year - endYear = days_to_datetime(ds.Time.max().values, calendar=calendar).year - changed = False - if startYear != requestedStartYear or endYear != requestedEndYear: - message = "climatology start and/or end year different from " \ - "requested\n" \ - "requestd: {:04d}-{:04d}\n" \ - "actual: {:04d}-{:04d}\n".format(requestedStartYear, - requestedEndYear, - startYear, - endYear) - warnings.warn(message) - config.set('climatology', 'startYear', str(startYear)) - config.set('climatology', 'endYear', str(endYear)) - changed = True - - return changed, startYear, endYear # }}} - - -def update_climatology_bounds_from_file_names(inputFiles, config): # {{{ - """ - Update the start and end years and dates for climatologies based on the - years actually available in the list of files. - - Parameters - ---------- - inputFiles : list of str - A list of file names ending with dates (before the '.nc' extension) - - config : instance of MpasAnalysisConfigParser - Contains configuration options - - Returns - ------- - changed : bool - Whether the start and end years were changed - - startYear, endYear : int - The start and end years of the data set - - Authors - ------- - Xylar Asay-Davis - - """ - requestedStartYear = config.getint('climatology', 'startYear') - requestedEndYear = config.getint('climatology', 'endYear') - - dates = sorted([fileName[-13:-6] for fileName in inputFiles]) - years = [int(date[0:4]) for date in dates] - months = [int(date[5:7]) for date in dates] - - # search for the start of the first full year - firstIndex = 0 - while(firstIndex < len(years) and months[firstIndex] != 1): - firstIndex += 1 - startYear = years[firstIndex] - - # search for the end of the last full year - lastIndex = len(years)-1 - while(lastIndex >= 0 and months[lastIndex] != 12): - lastIndex -= 1 - endYear = years[lastIndex] - - changed = False - if startYear != requestedStartYear or endYear != requestedEndYear: - message = "climatology start and/or end year different from " \ - "requested\n" \ - "requestd: {:04d}-{:04d}\n" \ - "actual: {:04d}-{:04d}\n".format(requestedStartYear, - requestedEndYear, - startYear, - endYear) - warnings.warn(message) - config.set('climatology', 'startYear', str(startYear)) - config.set('climatology', 'endYear', str(endYear)) - - startDate = '{:04d}-01-01_00:00:00'.format(startYear) - config.set('climatology', 'startDate', startDate) - endDate = '{:04d}-12-31_23:59:59'.format(endYear) - config.set('climatology', 'endDate', endDate) - changed = True - - else: - startDate = config.get('climatology', 'startDate') - endDate = config.get('climatology', 'endDate') - - return changed, startYear, endYear, startDate, endDate # }}} - - def add_years_months_days_in_month(ds, calendar=None): # {{{ ''' Add ``year``, ``month`` and ``daysInMonth`` as data arrays in ``ds``. diff --git a/mpas_analysis/shared/climatology/comparison_descriptors.py b/mpas_analysis/shared/climatology/comparison_descriptors.py new file mode 100644 index 000000000..a1e993088 --- /dev/null +++ b/mpas_analysis/shared/climatology/comparison_descriptors.py @@ -0,0 +1,144 @@ +""" +Functions for creating climatologies from monthly time series data + +Authors +------- +Xylar Asay-Davis +""" + +import numpy +import pyproj + +from ..constants import constants + +from ..grid import LatLonGridDescriptor, ProjectionGridDescriptor + + +def get_comparison_descriptor(config, comparisonGridName): # {{{ + """ + Get the comparison grid descriptor from the comparisonGridName. + + Parameters + ---------- + config : MpasAnalysisConfigParser object + Contains configuration options + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid to use for remapping. + + Raises + ------ + ValueError + If comparisonGridName does not describe a known comparions grid + + Authors + ------- + Xylar Asay-Davis + """ + if comparisonGridName == 'latlon': + comparisonDescriptor = \ + _get_lat_lon_comparison_descriptor(config) + elif comparisonGridName == 'antarctic': + comparisonDescriptor = \ + _get_antarctic_stereographic_comparison_descriptor(config) + else: + raise ValueError('Unknown comaprison grid type {}'.format( + comparisonGridName)) + return comparisonDescriptor # }}} + + +def get_antarctic_stereographic_projection(): # {{{ + """ + Get a projection for an Antarctic steregraphic comparison grid + + Returns + ------- + projection : ``pyproj.Proj`` object + The projection + + Authors + ------- + Xylar Asay-Davis + """ + projection = pyproj.Proj('+proj=stere +lat_ts=-71.0 +lat_0=-90 +lon_0=0.0 ' + '+k_0=1.0 +x_0=0.0 +y_0=0.0 +ellps=WGS84') + + return projection # }}} + + +def _get_lat_lon_comparison_descriptor(config): # {{{ + """ + Get a descriptor of the lat/lon comparison grid, used for remapping and + determining the grid name + + Parameters + ---------- + config : instance of ``MpasAnalysisConfigParser`` + Contains configuration options + + Returns + ------- + descriptor : ``LatLonGridDescriptor`` object + A descriptor of the lat/lon grid + + Authors + ------- + Xylar Asay-Davis + """ + climSection = 'climatology' + + comparisonLatRes = config.getWithDefault(climSection, + 'comparisonLatResolution', + constants.dLatitude) + comparisonLonRes = config.getWithDefault(climSection, + 'comparisonLatResolution', + constants.dLongitude) + + nLat = int((constants.latmax-constants.latmin)/comparisonLatRes)+1 + nLon = int((constants.lonmax-constants.lonmin)/comparisonLonRes)+1 + lat = numpy.linspace(constants.latmin, constants.latmax, nLat) + lon = numpy.linspace(constants.lonmin, constants.lonmax, nLon) + + descriptor = LatLonGridDescriptor.create(lat, lon, units='degrees') + + return descriptor # }}} + + +def _get_antarctic_stereographic_comparison_descriptor(config): # {{{ + """ + Get a descriptor of an Antarctic steregraphic comparison grid, used for + remapping and determining the grid name + + Parameters + ---------- + config : instance of ``MpasAnalysisConfigParser`` + Contains configuration options + + Returns + ------- + descriptor : ``ProjectionGridDescriptor`` object + A descriptor of the Antarctic comparison grid + + Authors + ------- + Xylar Asay-Davis + """ + climSection = 'climatology' + + comparisonStereoWidth = config.getfloat(climSection, + 'comparisonAntarcticStereoWidth') + comparisonStereoResolution = config.getfloat( + climSection, 'comparisonAntarcticStereoResolution') + + projection = get_antarctic_stereographic_projection() + + xMax = 0.5*comparisonStereoWidth*1e3 + nx = int(comparisonStereoWidth/comparisonStereoResolution)+1 + x = numpy.linspace(-xMax, xMax, nx) + + meshName = '{}x{}km_{}km_Antarctic_stereo'.format( + comparisonStereoWidth, comparisonStereoWidth, + comparisonStereoResolution) + descriptor = ProjectionGridDescriptor.create(projection, x, x, meshName) + + return descriptor # }}} diff --git a/mpas_analysis/shared/climatology/mpas_climatology_task.py b/mpas_analysis/shared/climatology/mpas_climatology_task.py new file mode 100644 index 000000000..9d9c511c8 --- /dev/null +++ b/mpas_analysis/shared/climatology/mpas_climatology_task.py @@ -0,0 +1,593 @@ +import xarray as xr +import os +import warnings +import sys +import subprocess +from distutils.spawn import find_executable + +from ..analysis_task import AnalysisTask + +from ..constants import constants + +from ..io.utility import build_config_full_path, make_directories +from ..io import write_netcdf + +from .climatology import get_remapper +from .comparison_descriptors import get_comparison_descriptor + +from ..grid import MpasMeshDescriptor + +from ..mpas_xarray import mpas_xarray + + +class MpasClimatology(AnalysisTask): # {{{ + ''' + An analysis tasks for computing climatologies from output from the + ``timeSeriesStatsMonthly`` analysis member. + + Attributes + ---------- + + taskSuffix : str + The suffix to append to the task name, typically a short name for + the field(s) being analyzed. For clarity, the taskSuffix should + start with a capital letter. + + variableList : list of str + A list of variable names in ``timeSeriesStatsMonthly`` to be + included in the climatologies + + iselValues : dict + A dictionary of dimensions and indices (or ``None``) used to extract + a slice of the MPAS field. + + seasons : list of str + A list of seasons (keys in ``shared.constants.monthDictionary``) + over which the climatology should be computed or ['none'] if only + monthly climatologies are needed. + + inputFiles : list of str + A list of input files used to compute the climatologies. + + comparisonGridNames : list of {``None``, 'latlon', 'antarctic'} + The name(s) of the comparison grid to use for remapping. + + restartFileName : str + If ``comparisonGridName`` is not ``None``, the name of a restart + file from which the MPAS mesh can be read. + + ncclimoModel : {'mpaso', 'mpascice'} + The name of the component expected by ``ncclimo`` + + startDate, endDate : str + The start and end dates of the climatology as strings + + startYear, endYear : int + The start and end years of the climatology + + fillValue : float + The fill value used in MPAS output (but currently not written to the + ``_FillValue`` attribute) + + Authors + ------- + Xylar Asay-Davis + ''' + + def __init__(self, config, variableList, taskSuffix, + componentName, comparisonGridNames=None, + seasons=['none'], tags=None, iselValues=None): # {{{ + ''' + Construct the analysis task. + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + variableList : list of str + A list of variable names in ``timeSeriesStatsMonthly`` to be + included in the climatologies + + taskSuffix : str + The suffix to append to the task name, typically a short name for + the field(s) being analyzed. For clarity, the taskSuffix should + start with a capital letter. + + componentName : {'ocean', 'seaIce'} + The name of the component (same as the folder where the task + resides) + + comparisonGridNames : list of {'latlon', 'antarctic'}, optional + The name(s) of the comparison grid to use for remapping. + + seasons : list of str, optional + A list of seasons (keys in ``shared.constants.monthDictionary``) + to be computed or ['none'] (not ``None``) if only monthly + climatologies are needed. + + tags : list of str, optional + Tags used to describe the task (e.g. 'timeSeries', 'climatology', + horizontalMap', 'index', 'transect'). These are used to determine + which tasks are generated (e.g. 'all_transect' or 'no_climatology' + in the 'generate' flags) + + iselValues : dict, optional + A dictionary of dimensions and indices (or ``None``) used to + extract a slice of the MPAS field(s). + + Authors + ------- + Xylar Asay-Davis + ''' + self.variableList = variableList + self.seasons = seasons + self.taskSuffix = taskSuffix + self.comparisonGridNames = comparisonGridNames + self.iselValues = iselValues + + # this is a stopgap until MPAS implements the _FillValue attribute + # correctly + self.fillValue = -9.99999979021476795361e+33 + + if 'climatology' not in tags: + tags.append('climatology') + + if componentName == 'ocean': + self.ncclimoModel = 'mpaso' + elif componentName == 'seaIce': + self.ncclimoModel = 'mpascice' + else: + raise ValueError('component {} is not supported by ncclimo.\n' + 'Check with Charlie Zender and Xylar Asay-Davis\n' + 'about getting it added'.format(componentName)) + + # call the constructor from the base class (AnalysisTask) + super(MpasClimatology, self).__init__( + config=config, + taskName='mpasClimatology{}'.format(taskSuffix), + componentName=componentName, + tags=tags) + + # }}} + + def setup_and_check(self): # {{{ + ''' + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + ''' + # first, call setup_and_check from the base class (AnalysisTask), + # which will perform some common setup, including storing: + # self.runDirectory , self.historyDirectory, self.plotsDirectory, + # self.namelist, self.runStreams, self.historyStreams, + # self.calendar, self.namelistMap, self.streamMap, self.variableMap + super(MpasClimatology, self).setup_and_check() + + self.check_analysis_enabled( + analysisOptionName='config_am_timeseriesstatsmonthly_enable', + raiseException=True) + + self.restartFileName = None + if self.comparisonGridNames is not None: + try: + self.restartFileName = self.runStreams.readpath('restart')[0] + except ValueError: + raise IOError('No MPAS restart file found: need at least one ' + 'restart file to perform remapping of ' + 'climatologies.') + + # get a list of timeSeriesStats output files from the streams file, + # reading only those that are between the start and end dates + startDate = self.config.get('climatology', 'startDate') + endDate = self.config.get('climatology', 'endDate') + streamName = \ + self.historyStreams.find_stream(self.streamMap['timeSeriesStats']) + self.inputFiles = self.historyStreams.readpath( + streamName, startDate=startDate, endDate=endDate, + calendar=self.calendar) + + if len(self.inputFiles) == 0: + raise IOError('No files were found in stream {} between {} and ' + '{}.'.format(streamName, startDate, endDate)) + + self._update_climatology_bounds_from_file_names() + + # }}} + + def run(self): # {{{ + ''' + Compute the requested climatologies + + Authors + ------- + Xylar Asay-Davis + ''' + + print '\nComputing {} climatologies from files:\n' \ + ' {} through\n {}'.format( + self.taskSuffix, + os.path.basename(self.inputFiles[0]), + os.path.basename(self.inputFiles[-1])) + + config = self.config + + mpasMeshName = config.get('input', 'mpasMeshName') + + if self.seasons[0] is 'none': + seasonsToCheck = ['{:02d}'.format(month) for month in range(1, 13)] + else: + seasonsToCheck = self.seasons + + allExist = True + for season in seasonsToCheck: + + climatologyFileName, climatologyDirectory = \ + self.get_ncclimo_file_name(season, 'unmasked', + returnDir=True) + + if not os.path.exists(climatologyFileName): + allExist = False + break + + if not allExist: + self._compute_climatologies_with_ncclimo( + inDirectory=self.historyDirectory, + outDirectory=climatologyDirectory) + + if self.comparisonGridNames is not None: + + parallel = self.config.getint('execute', 'parallelTaskCount') > 1 + if parallel: + # avoid writing the same mapping file from multiple processes + mappingFilePrefix = 'map_{}'.format(self.taskName) + else: + mappingFilePrefix = 'map' + + mpasDescriptor = MpasMeshDescriptor( + self.restartFileName, + meshName=mpasMeshName) + + dsMask = xr.open_dataset(self.inputFiles[0]) + dsMask = mpas_xarray.subset_variables(dsMask, self.variableList) + iselValues = {'Time': 0} + if self.iselValues is not None: + iselValues.update(self.iselValues) + # select only Time=0 and possibly only the desired vertical + # slice + dsMask = dsMask.isel(**iselValues) + + firstGrid = True + for comparisonGridName in self.comparisonGridNames: + comparisonDescriptor = \ + get_comparison_descriptor(config, comparisonGridName) + + mpasRemapper = get_remapper( + config=config, sourceDescriptor=mpasDescriptor, + comparisonDescriptor=comparisonDescriptor, + mappingFilePrefix=mappingFilePrefix, + method=config.get('climatology', + 'mpasInterpolationMethod')) + + for season in self.seasons: + if firstGrid: + self._mask_climatologies(season, dsMask, + comparisonDescriptor) + + maskedClimatologyFileName = self.get_ncclimo_file_name( + season, 'masked', comparisonDescriptor) + + remappedFileName = self.get_ncclimo_file_name( + season, 'remapped', comparisonDescriptor) + + if not os.path.exists(remappedFileName): + self._remap(inFileName=maskedClimatologyFileName, + outFileName=remappedFileName, + remapper=mpasRemapper, + comparisonGridName=comparisonGridName) + + firstGrid = False + # }}} + + def get_ncclimo_file_name(self, season, stage, comparisonDescriptor=None, + returnDir=False): # {{{ + """ + Given config options, the name of a field and a string identifying the + months in a seasonal climatology, returns the full path for MPAS + climatology files before and after remapping. + + Parameters + ---------- + season : str + One of the seasons in ``constants.monthDictionary`` + + mpasMeshName : str + The name of the MPAS mesh + + stage : {'unmasked', 'masked', 'remapped'} + The stage of the masking and remapping process + + comparisonDescriptor : MeshDescriptor, optional + The comparison mesh descriptor, used to get the mesh name + + returnDir : bool, optional + Return the directory as well + + Returns + ------- + fileName : str + The path to the climatology file for the specified season. + + Authors + ------- + Xylar Asay-Davis + """ + + climatologyBaseDirectory = build_config_full_path( + self.config, 'output', 'mpasClimatologySubdirectory') + + mpasMeshName = self.config.get('input', 'mpasMeshName') + + climatologyBaseDirectory = '{}/{}'.format(climatologyBaseDirectory, + stage) + + if stage in ['unmasked', 'masked']: + directory = '{}/{}_{}'.format( + climatologyBaseDirectory, self.taskSuffix, mpasMeshName) + elif stage == 'remapped': + directory = '{}/{}_{}_to_{}'.format( + climatologyBaseDirectory, self.taskSuffix, mpasMeshName, + comparisonDescriptor.meshName) + else: + raise ValueError('Unsupported stage {}'.format(stage)) + + make_directories(directory) + + monthValues = sorted(constants.monthDictionary[season]) + startMonth = monthValues[0] + endMonth = monthValues[-1] + + suffix = '{:04d}{:02d}_{:04d}{:02d}_climo'.format( + self.startYear, startMonth, self.endYear, endMonth) + + if season in constants.abrevMonthNames: + season = '{:02d}'.format(monthValues[0]) + fileName = '{}/{}_{}_{}.nc'.format(directory, self.ncclimoModel, + season, suffix) + + if returnDir: + return fileName, directory + else: + return fileName # }}} + + def _update_climatology_bounds_from_file_names(self): # {{{ + """ + Update the start and end years and dates for climatologies based on the + years actually available in the list of files. + + Authors + ------- + Xylar Asay-Davis + """ + + config = self.config + + requestedStartYear = config.getint('climatology', 'startYear') + requestedEndYear = config.getint('climatology', 'endYear') + + dates = sorted([fileName[-13:-6] for fileName in self.inputFiles]) + years = [int(date[0:4]) for date in dates] + months = [int(date[5:7]) for date in dates] + + # search for the start of the first full year + firstIndex = 0 + while(firstIndex < len(years) and months[firstIndex] != 1): + firstIndex += 1 + startYear = years[firstIndex] + + # search for the end of the last full year + lastIndex = len(years)-1 + while(lastIndex >= 0 and months[lastIndex] != 12): + lastIndex -= 1 + endYear = years[lastIndex] + + if startYear != requestedStartYear or endYear != requestedEndYear: + message = "climatology start and/or end year different from " \ + "requested\n" \ + "requestd: {:04d}-{:04d}\n" \ + "actual: {:04d}-{:04d}\n".format(requestedStartYear, + requestedEndYear, + startYear, + endYear) + warnings.warn(message) + config.set('climatology', 'startYear', str(startYear)) + config.set('climatology', 'endYear', str(endYear)) + + startDate = '{:04d}-01-01_00:00:00'.format(startYear) + config.set('climatology', 'startDate', startDate) + endDate = '{:04d}-12-31_23:59:59'.format(endYear) + config.set('climatology', 'endDate', endDate) + + else: + startDate = config.get('climatology', 'startDate') + endDate = config.get('climatology', 'endDate') + + self.startDate = startDate + self.endDate = endDate + self.startYear = startYear + self.endYear = endYear + + # }}} + + def _compute_climatologies_with_ncclimo(self, inDirectory, outDirectory, + remapper=None, + remappedDirectory=None): # {{{ + ''' + Uses ncclimo to compute monthly, seasonal and/or annual climatologies. + + Parameters + ---------- + inDirectory : str + The run directory containing timeSeriesStatsMonthly output + + outDirectory : str + The output directory where climatologies will be written + + remapper : ``shared.intrpolation.Remapper`` object, optional + If present, a remapper that defines the source and desitnation + grids for remapping the climatologies. + + remappedDirectory : str, optional + If present, the path where remapped climatologies should be + written. By default, remapped files are stored in the same + directory as the climatologies on the source grid. Has no effect + if ``remapper`` is ``None``. + + Raises + ------ + OSError + If ``ncclimo`` is not in the system path. + + Author + ------ + Xylar Asay-Davis + ''' + + if find_executable('ncclimo') is None: + raise OSError('ncclimo not found. Make sure the latest nco ' + 'package is installed: \n' + 'conda install nco\n' + 'Note: this presumes use of the conda-forge ' + 'channel.') + + parallelMode = self.config.get('execute', 'ncclimoParallelMode') + + args = ['ncclimo', + '--clm_md=mth', + '-a', 'sdd', + '-m', self.ncclimoModel, + '-p', parallelMode, + '-v', ','.join(self.variableList), + '--seasons={}'.format(','.join(self.seasons)), + '-s', '{:04d}'.format(self.startYear), + '-e', '{:04d}'.format(self.endYear), + '-i', inDirectory, + '-o', outDirectory] + + if remapper is not None: + args.extend(['-r', remapper.mappingFileName]) + if remappedDirectory is not None: + args.extend(['-O', remappedDirectory]) + + # make sure any output is flushed before we add output from the + # subprocess + sys.stdout.flush() + sys.stderr.flush() + + subprocess.check_call(args) # }}} + + def _mask_climatologies(self, season, dsMask, comparisonDescriptor): # {{{ + ''' + For each season, creates a masked version of the climatology + + Parameters + ---------- + season : str + The name of the season to be masked + + dsMask : ``xarray.Dataset`` object + A data set (from the first input file) that can be used to + determine the mask in MPAS output files. + + comparisonDescriptor : MeshDescriptor, optional + The comparison mesh descriptor, used to get the mesh name + + Author + ------ + Xylar Asay-Davis + ''' + + climatologyFileName = self.get_ncclimo_file_name( + season, 'unmasked', comparisonDescriptor) + + maskedClimatologyFileName = self.get_ncclimo_file_name( + season, 'masked', comparisonDescriptor) + + if not os.path.exists(maskedClimatologyFileName): + # slice and mask the data set + climatology = xr.open_dataset(climatologyFileName) + iselValues = {'Time': 0} + if self.iselValues is not None: + iselValues.update(self.iselValues) + # select only Time=0 and possibly only the desired vertical + # slice + climatology = climatology.isel(**iselValues) + + # mask the data set + for variableName in self.variableList: + climatology[variableName] = \ + climatology[variableName].where( + dsMask[variableName] != self.fillValue) + + write_netcdf(climatology, maskedClimatologyFileName) + # }}} + + def _remap(self, inFileName, outFileName, remapper, comparisonGridName): + # {{{ + """ + Performs remapping either using ``ncremap`` or the native python code, + depending on the requested setting and the comparison grid + + Parameters + ---------- + inFileName : str + The name of the input file to be remapped. + + outFileName : str + The name of the output file to which the remapped data set should + be written. + + remapper : ``Remapper`` object + A remapper that can be used to remap files or data sets to a + comparison grid. + + comparisonGridNames : {'latlon', 'antarctic'} + The name of the comparison grid to use for remapping. + + Authors + ------- + Xylar Asay-Davis + """ + if remapper.mappingFileName is None: + # no remapping is needed + return + + useNcremap = self.config.getboolean('climatology', 'useNcremap') + + if comparisonGridName == 'antarctic': + # ncremap doesn't support polar stereographic grids + useNcremap = False + + renormalizationThreshold = self.config.getfloat( + 'climatology', 'renormalizationThreshold') + + if useNcremap: + remapper.remap_file(inFileName=inFileName, + outFileName=outFileName, + overwrite=True, + renormalize=renormalizationThreshold) + else: + + climatologyDataSet = xr.open_dataset(inFileName) + + remappedClimatology = remapper.remap(climatologyDataSet, + renormalizationThreshold) + write_netcdf(remappedClimatology, outFileName) + # }}} + + # }}} + + +# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/shared/timekeeping/utility.py b/mpas_analysis/shared/timekeeping/utility.py index 27f2a1a07..b5af1f5df 100644 --- a/mpas_analysis/shared/timekeeping/utility.py +++ b/mpas_analysis/shared/timekeeping/utility.py @@ -25,9 +25,9 @@ def get_simulation_start_time(streams): Returns ------- - simulation_start_time : string + simulationStartTime : str The start date of the simulation parsed from a restart file identified - by the contents of `streams`. + by the contents of ``streams``. Raises ------ diff --git a/run_analysis.py b/run_analysis.py index 56b5c582a..07b78e23e 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -60,7 +60,9 @@ def build_analysis_list(config, isSubtask): # {{{ # Sea Ice Analyses analyses.extend(sea_ice.TimeSeriesSeaIce.create_tasks(config)) - analyses.extend(sea_ice.ClimatologyMapSeaIce.create_tasks(config)) + + analyses.extend(sea_ice.ClimatologyMapSeaIceConc.create_tasks(config)) + analyses.extend(sea_ice.ClimatologyMapSeaIceThick.create_tasks(config)) possibleAnalyses = OrderedDict() for analysisTask in analyses: @@ -113,7 +115,8 @@ def add_task_and_prereqisites(analysisTask, possibleAnalyses, if prereq not in analysesToGenerate.keys(): prereqToAdd = add_task_and_prereqisites( possibleAnalyses[prereq], possibleAnalyses, - analysesToGenerate, isPrerequisite=True) + analysesToGenerate, isPrerequisite=True, + isSubtask=isSubtask) if len(prereqToAdd.keys()) == 0: # a prerequisite failed setup_and_check print "ERROR: a prerequisite of analysis task {}" \ From a4b2c3858cb52bd6174d901f5fd8597a13beb783 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 15:05:44 +0200 Subject: [PATCH 24/47] Add hyperslabbing to ncclimo call Rather than doing hyperslabbing (via iselValues) after a climatology has been computed on the full 3D variable, this commit passes the flags needed ot do hyperslabbing in ncclimo. This should save time and disk space for high res and/or long climatologies. --- .../shared/climatology/mpas_climatology_task.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mpas_analysis/shared/climatology/mpas_climatology_task.py b/mpas_analysis/shared/climatology/mpas_climatology_task.py index 9d9c511c8..5caf5e315 100644 --- a/mpas_analysis/shared/climatology/mpas_climatology_task.py +++ b/mpas_analysis/shared/climatology/mpas_climatology_task.py @@ -254,7 +254,9 @@ def run(self): # {{{ dsMask = mpas_xarray.subset_variables(dsMask, self.variableList) iselValues = {'Time': 0} if self.iselValues is not None: - iselValues.update(self.iselValues) + for dim in self.iselValues: + # we've already hyperslabbed this dimension in ncclimo + iselValues[dim] = 0 # select only Time=0 and possibly only the desired vertical # slice dsMask = dsMask.isel(**iselValues) @@ -481,6 +483,15 @@ def _compute_climatologies_with_ncclimo(self, inDirectory, outDirectory, if remappedDirectory is not None: args.extend(['-O', remappedDirectory]) + if self.iselValues is not None: + ncksOptions = ['-O', '--no_tmp_fl'] + + for dim in self.iselValues: + val = self.iselValues[dim] + ncksOptions.extend(['-d', '{},{},{}'.format(dim, val, val)]) + + args.extend(['-n', ' '.join(ncksOptions)]) + # make sure any output is flushed before we add output from the # subprocess sys.stdout.flush() From eefcaee3ffd6b886178c0e48a884753fc1d3d5b4 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 17:27:08 +0200 Subject: [PATCH 25/47] Fix CI Remove CI for functions that have moved to MpasClimatology. Considerably more work would be required to set up a test for MpasClimatology and this will be undertaken later. A few changes to CI were needed after grid descriptor calls were made classmethods. --- mpas_analysis/test/test_climatology.py | 217 +------------------------ mpas_analysis/test/test_interpolate.py | 14 +- 2 files changed, 16 insertions(+), 215 deletions(-) diff --git a/mpas_analysis/test/test_climatology.py b/mpas_analysis/test/test_climatology.py index 4b88c41e5..6cf50584c 100644 --- a/mpas_analysis/test/test_climatology.py +++ b/mpas_analysis/test/test_climatology.py @@ -18,10 +18,10 @@ from mpas_analysis.configuration.MpasAnalysisConfigParser \ import MpasAnalysisConfigParser from mpas_analysis.shared.climatology import \ - get_lat_lon_comparison_descriptor, get_remapper, \ - get_mpas_climatology_dir_name, get_observation_climatology_file_names, \ + get_comparison_descriptor, get_remapper, \ + get_observation_climatology_file_names, \ add_years_months_days_in_month, compute_climatology, \ - compute_monthly_climatology, update_start_end_year, cache_climatologies + compute_monthly_climatology from mpas_analysis.shared.grid import MpasMeshDescriptor, LatLonGridDescriptor from mpas_analysis.shared.constants import constants @@ -73,7 +73,7 @@ def setup_mpas_remapper(self, config): mpasMeshFileName = '{}/mpasMesh.nc'.format(self.datadir) comparisonDescriptor = \ - get_lat_lon_comparison_descriptor(config) + get_comparison_descriptor(config, 'latlon') mpasDescriptor = MpasMeshDescriptor( mpasMeshFileName, meshName=config.get('input', 'mpasMeshName')) @@ -90,11 +90,11 @@ def setup_obs_remapper(self, config, fieldName): gridFileName = '{}/obsGrid.nc'.format(self.datadir) comparisonDescriptor = \ - get_lat_lon_comparison_descriptor(config) + get_comparison_descriptor(config, 'latlon') - obsDescriptor = LatLonGridDescriptor() - obsDescriptor.read(fileName=gridFileName, latVarName='lat', - lonVarName='lon') + obsDescriptor = LatLonGridDescriptor.read(fileName=gridFileName, + latVarName='lat', + lonVarName='lon') remapper = \ get_remapper( @@ -192,25 +192,6 @@ def test_get_observations_remapper(self): shutil.copyfile(defaultMappingFileName, explicitMappingFileName) - def test_get_mpas_climatology_dir_name(self): - config = self.setup_config() - fieldName = 'sst' - - remapper = self.setup_mpas_remapper(config) - - (climatologyDirectory, remappedDirectory) = \ - get_mpas_climatology_dir_name( - config, fieldName, - remapper.sourceDescriptor.meshName, - remapper.destinationDescriptor.meshName) - expectedClimatologyDirectory = \ - '{}/clim/mpas/sst_QU240'.format(self.test_dir) - self.assertEqual(climatologyDirectory, expectedClimatologyDirectory) - - expectedRemappedDirectory = '{}/clim/mpas/remap/sst_QU240_to_' \ - '0.5x0.5degree'.format(self.test_dir) - self.assertEqual(remappedDirectory, expectedRemappedDirectory) - def test_get_observation_climatology_file_names(self): config = self.setup_config() fieldName = 'sst' @@ -291,187 +272,5 @@ def test_compute_monthly_climatology(self): self.assertArrayApproxEqual(monthlyClimatology.month.values, refClimatology.month.values) - def test_update_start_end_year(self): - config = self.setup_config() - calendar = 'gregorian_noleap' - ds = self.open_test_ds(config, calendar) - - changed, startYear, endYear = \ - update_start_end_year(ds, config, calendar) - - assert(not changed) - assert(startYear == 2) - assert(endYear == 2) - - config.set('climatology', 'endYear', '50') - ds = self.open_test_ds(config, calendar) - - with self.assertWarns('climatology start and/or end year different ' - 'from requested'): - changed, startYear, endYear = \ - update_start_end_year(ds, config, calendar) - - assert(changed) - assert(startYear == 2) - assert(endYear == 2) - - def cache_climatologies_setup(self): - config = self.setup_config() - calendar = 'gregorian_noleap' - ds = self.open_test_ds(config, calendar) - fieldName = 'mld' - climFileName = '{}/refSeasonalClim.nc'.format(self.datadir) - refClimatology = xarray.open_dataset(climFileName) - - remapper = self.setup_mpas_remapper(config) - - return {'config': config, 'calendar': calendar, 'ds': ds, - 'fieldName': fieldName, 'climFileName': climFileName, - 'refClimatology': refClimatology, 'remapper': remapper} - - def test_jan_1yr_climo_test1(self): - setup = self.cache_climatologies_setup() - # test1: Just January, 1-year climatologies are cached; only one file - # is produced with suffix year0002; a second run of - # cache_climatologies doesn't modify any files - test1 = {'monthNames': 'Jan', - 'monthValues': [1], - 'yearsPerCacheFile': 1, - 'expectedSuffixes': ['year0002'], - 'expectedModified': [False], - # weird value because first time step of Jan. missing in ds - 'expectedDays': 30.958333, - 'expectedMonths': 1, - 'refClimatology': None} - self.cache_climatologies_driver(test1, **setup) - - def test_jfm_1yr_climo_test2(self): - setup = self.cache_climatologies_setup() - # same as test1 but with JFM - test2 = {'monthNames': 'JFM', - 'monthValues': constants.monthDictionary['JFM'], - 'yearsPerCacheFile': 1, - 'expectedSuffixes': ['year0002'], - 'expectedModified': [False], - # weird value because first time step of Jan. missing in ds - 'expectedDays': 89.958333, - 'expectedMonths': 3, - 'refClimatology': setup['refClimatology']} - self.cache_climatologies_driver(test2, **setup) - - def test_jan_2yr_climo_test3(self): - setup = self.cache_climatologies_setup() - # test3: 2-year climatologies are cached; 2 files are produced - # with suffix years0002-0003 (the "individual" climatology - # file) and year0002 (the "aggregated" climatology file); - # a second tries to update the "individual" cache file - # because it appears to be incomplete but does not attempt - # to update the aggregated climatology file because no - # additional years were processed and the file was already - # complete for the span of years present - test3 = {'monthNames': 'Jan', - 'monthValues': [1], - 'yearsPerCacheFile': 2, - 'expectedSuffixes': ['years0002-0003', 'year0002'], - 'expectedModified': [True, False], - # weird value because first time step of Jan. missing in ds - 'expectedDays': 30.958333, - 'expectedMonths': 1, - 'refClimatology': None} - self.cache_climatologies_driver(test3, **setup) - - def test_jfm_2yr_climo_test4(self): - setup = self.cache_climatologies_setup() - # test4: same as test3 but with JFM - test4 = {'monthNames': 'JFM', - 'monthValues': constants.monthDictionary['JFM'], - 'yearsPerCacheFile': 2, - 'expectedSuffixes': ['years0002-0003', 'year0002'], - 'expectedModified': [True, False], - # weird value because first time step of Jan. missing in ds - 'expectedDays': 89.958333, - 'expectedMonths': 3, - 'refClimatology': setup['refClimatology']} - self.cache_climatologies_driver(test4, **setup) - - def cache_climatologies_driver(self, test, config, fieldName, - ds, remapper, calendar, **kwargs): - monthNames = test['monthNames'] - monthValues = test['monthValues'] - yearsPerCacheFile = test['yearsPerCacheFile'] - expectedSuffixes = test['expectedSuffixes'] - expectedModified = test['expectedModified'] - expectedDays = test['expectedDays'] - expectedMonths = test['expectedMonths'] - refClimatology = test['refClimatology'] - - climatologyDirectory = \ - get_mpas_climatology_dir_name( - config, fieldName, - remapper.sourceDescriptor.meshName) - - climatologyPrefix = '{}/mpaso_{}_climo'.format( - climatologyDirectory, monthNames) - - config.set('climatology', 'yearsPerCacheFile', - str(yearsPerCacheFile)) - # once without cache files - dsClimatology = cache_climatologies( - ds, monthValues, config, climatologyPrefix, calendar, - printProgress=True) - - if refClimatology is not None: - self.assertArrayApproxEqual(dsClimatology.mld.values, - refClimatology.mld.values) - - self.assertEqual(dsClimatology.attrs['totalMonths'], - expectedMonths) - self.assertApproxEqual(dsClimatology.attrs['totalDays'], - expectedDays) - dsClimatology.close() - - fingerprints = [] - for suffix in expectedSuffixes: - expectedClimatologyFileName = '{}/clim/mpas/mld_QU240/mpaso_' \ - '{}_climo_{}.nc'.format( - self.test_dir, monthNames, - suffix) - assert os.path.exists(expectedClimatologyFileName) - - dsClimatology = xarray.open_dataset(expectedClimatologyFileName) - fingerprints.append(dsClimatology.fingerprintClimo) - - # try it again with cache files saved - dsClimatology = cache_climatologies( - ds, monthValues, config, climatologyPrefix, calendar, - printProgress=True) - - if refClimatology is not None: - self.assertArrayApproxEqual(dsClimatology.mld.values, - refClimatology.mld.values) - - self.assertEqual(dsClimatology.attrs['totalMonths'], - expectedMonths) - self.assertApproxEqual(dsClimatology.attrs['totalDays'], - expectedDays) - dsClimatology.close() - - for index, suffix in enumerate(expectedSuffixes): - expectedClimatologyFileName = '{}/clim/mpas/mld_QU240/mpaso_' \ - '{}_climo_{}.nc'.format( - self.test_dir, monthNames, - suffix) - - dsClimatology = xarray.open_dataset(expectedClimatologyFileName) - fingerprintCheck = dsClimatology.fingerprintClimo - - # Check whether the given file was modified, and whether - # this was the expected result - fileWasModified = fingerprints[index] != fingerprintCheck - assert fileWasModified == expectedModified[index] - - # remove the cache file for the next try - os.remove(expectedClimatologyFileName) - # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/test/test_interpolate.py b/mpas_analysis/test/test_interpolate.py index 0008459c4..62a35233d 100644 --- a/mpas_analysis/test/test_interpolate.py +++ b/mpas_analysis/test/test_interpolate.py @@ -42,8 +42,9 @@ def get_mpas_descriptor(self): def get_latlon_file_descriptor(self): latLonGridFileName = str(self.datadir.join('SST_annual_1870-1900.nc')) - descriptor = LatLonGridDescriptor() - descriptor.read(latLonGridFileName, latVarName='lat', lonVarName='lon') + descriptor = LatLonGridDescriptor.read(latLonGridFileName, + latVarName='lat', + lonVarName='lon') return (descriptor, latLonGridFileName) @@ -57,8 +58,7 @@ def get_latlon_array_descriptor(self): lon = numpy.array(config.getExpression('interpolate', 'lon', usenumpyfunc=True)) - descriptor = LatLonGridDescriptor() - descriptor.create(lat, lon, units='degrees') + descriptor = LatLonGridDescriptor.create(lat, lon, units='degrees') return descriptor def get_stereographic_array_descriptor(self): @@ -73,9 +73,9 @@ def get_stereographic_array_descriptor(self): res = 100e3 nx = 2*int(xMax/res)+1 x = numpy.linspace(-xMax, xMax, nx) - descriptor = ProjectionGridDescriptor(projection) meshName = '{}km_Antarctic_stereo'.format(int(res*1e-3)) - descriptor.create(x, x, meshName) + descriptor = \ + ProjectionGridDescriptor.create(projection, x, x, meshName) return descriptor def get_file_names(self, suffix): @@ -246,6 +246,8 @@ def test_stereographic_array_to_latlon_array(self): sourceDescriptor = self.get_stereographic_array_descriptor() destinationDescriptor = self.get_latlon_array_descriptor() + print vars(destinationDescriptor) + Lat = sourceDescriptor.coords['lat']['data'] # now, let's make a more complicated field with more dimensions to From 45aa58aa192980a14990172769c6fa58ff6f3a0d Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Thu, 17 Aug 2017 07:07:43 +0200 Subject: [PATCH 26/47] Add season to print statements from clim. map tasks --- mpas_analysis/ocean/climatology_map.py | 4 ++-- mpas_analysis/sea_ice/climatology_map.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 33d63f25f..0b4e9fb17 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -180,8 +180,8 @@ def run(self): # {{{ Luke Van Roekel, Xylar Asay-Davis, Milena Veneziani """ - print "\nPlotting 2-d maps of {} climatologies...".format( - self.fieldNameInTitle) + print "\nPlotting 2-d maps of {} climatologies for season {}" \ + "...".format(self.fieldNameInTitle, self.season) # get local versions of member variables for convenience config = self.config diff --git a/mpas_analysis/sea_ice/climatology_map.py b/mpas_analysis/sea_ice/climatology_map.py index dc8a5b64d..d0a51f53b 100644 --- a/mpas_analysis/sea_ice/climatology_map.py +++ b/mpas_analysis/sea_ice/climatology_map.py @@ -143,8 +143,8 @@ def run(self): # {{{ Xylar Asay-Davis, Milena Veneziani """ - print "\nPlotting 2-d maps of {} climatologies...".format( - self.fieldNameInTitle) + print "\nPlotting 2-d maps of {} climatologies for season {}" \ + "...".format(self.fieldNameInTitle, self.season) climatologyTask = self.climatologyTask From 3aee9e1f903f9503d2b08bbbf75cc2475f5af6eb Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 19 Apr 2017 12:28:10 +0200 Subject: [PATCH 27/47] Lat/lon grids are not always global In the LatLonGridDescriptor, determine if the grid is local based on whether longitude covers the full 360 degrees. --- mpas_analysis/shared/grid/grid.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/mpas_analysis/shared/grid/grid.py b/mpas_analysis/shared/grid/grid.py index 2fff25ec0..cec5c2744 100644 --- a/mpas_analysis/shared/grid/grid.py +++ b/mpas_analysis/shared/grid/grid.py @@ -252,13 +252,14 @@ def read(cls, fileName=None, ds=None, latVarName='lat', else: descriptor.units = 'radians' - descriptor._set_coords(latVarName, lonVarName, ds[latVarName].dims[0], - ds[lonVarName].dims[0]) - # interp/extrap corners descriptor.lonCorner = _interp_extrap_corner(descriptor.lon) descriptor.latCorner = _interp_extrap_corner(descriptor.lat) + descriptor._set_coords(latVarName, lonVarName, ds[latVarName].dims[0], + ds[lonVarName].dims[0]) + + if 'history' in ds.attrs: descriptor.history = '\n'.join([ds.attrs['history'], ' '.join(sys.argv[:])]) @@ -364,6 +365,15 @@ def _set_coords(self, latVarName, lonVarName, latDimName, self.units)) if self.meshName is None: self.meshName = '{}x{}{}'.format(abs(dLat), abs(dLon), units) + + # determine if the grid is regional or global + totalLon = numpy.abs(self.lonCorner[-1] - self.lonCorner[0]) + if units == 'radian': + totalLon = numpy.radians(totalLon) + # regardless of the extent in latitude, it seems like a grid should + # be considered "global" if it covers 360 degrees longitude. + # Otherwise, you end up with a seam at the prime- or antemeridian. + self.regional = not numpy.isclose(totalLon, 360.) # }}} From 3eb5dd83f906f303355d38fdb4709e231b2ae7e4 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Mon, 14 Aug 2017 23:10:05 +0200 Subject: [PATCH 28/47] Add antarctic comparison grid to ocean clim. maps SST, SSS and MLD can be plotted on this grid by adding 'antarctic' to the comparisonGrids list. A plotting routine for data on a ploar grid has also been added, including support for both index and norm color maps (the latter will be used for melt rates and Antarctic temperatures at various depths). --- config.default | 81 +++- mpas_analysis/ocean/climatology_map.py | 207 +++++++--- .../shared/climatology/climatology.py | 5 + .../climatology/mpas_climatology_task.py | 8 +- mpas_analysis/shared/grid/__init__.py | 2 +- mpas_analysis/shared/grid/grid.py | 40 +- mpas_analysis/shared/plot/plotting.py | 355 +++++++++++++++++- 7 files changed, 605 insertions(+), 93 deletions(-) diff --git a/config.default b/config.default index ae54f0d04..f840ebe00 100644 --- a/config.default +++ b/config.default @@ -152,7 +152,7 @@ startYear = 11 # the last year over which to average climatalogies endYear = 20 -# The comparison grid resolution in degrees +# The comparison lat/lon grid resolution in degrees comparisonLatResolution = 0.5 comparisonLonResolution = 0.5 @@ -453,9 +453,32 @@ colorbarLevelsDifference = [-5, -3, -2, -1, 0, 1, 2, 3, 5] # Nov, Dec, JFM, AMJ, JAS, OND, ANN) seasons = ['JFM', 'JAS', 'ANN'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] +[climatologyMapSSTAntarctic] +## options related to color maps for horizontally remapped climatologies of +## sea surface temperature (SST) against reference model results and +## observations on an Antarctic comparison grid + +# colormap for model/observations +colormapNameResult = RdBu_r +# the type of norm used in the colormap +normTypeResult = linear +# A dictionary with keywords for the SemiLogNorm +normArgsResult = {'vmin': -2.5, 'vmax': 2.5} +# place the ticks automatically by default +# colorbarTicksResult = numpy.linspace(-2.5, 2.5, 9) + +# colormap for differences +colormapNameDifference = RdBu_r +# the type of norm used in the colormap +normTypeDifference = linear +# A dictionary with keywords for the SemiLogNorm +normArgsDifference = {'vmin': -2., 'vmax': 2.} +# place the ticks automatically by default +# colorbarTicksDifference = numpy.linspace(-2., 2., 9) + [climatologyMapSSS] ## options related to plotting horizontally remapped climatologies of ## sea surface salinity (SSS) against reference model results and observations @@ -478,9 +501,32 @@ colorbarLevelsDifference = [-3, -2, -1, -0.5, 0, 0.5, 1, 2, 3] # Nov, Dec, JFM, AMJ, JAS, OND, ANN) seasons = ['JFM', 'JAS', 'ANN'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] +[climatologyMapSSSAntarctic] +## options related to color maps for horizontally remapped climatologies of +## sea surface salinity (SSS) against reference model results and observations +## on an Antarctic comparison grid + +# colormap for model/observations +colormapNameResult = BuOr +# the type of norm used in the colormap +normTypeResult = linear +# A dictionary with keywords for the SemiLogNorm +normArgsResult = {'vmin': 32., 'vmax': 35.} +# place the ticks automatically by default +# colorbarTicksResult = numpy.linspace(32., 35., 9) + +# colormap for differences +colormapNameDifference = RdBu_r +# the type of norm used in the colormap +normTypeDifference = linear +# A dictionary with keywords for the SemiLogNorm +normArgsDifference = {'vmin': -2, 'vmax': 2} +# place the ticks automatically by default +# colorbarTicksDifference = numpy.linspace(-2, 2, 9) + [climatologyMapMLD] ## options related to plotting horizontally remapped climatologies of ## mixed layer depth (MLD) against reference model results and observations @@ -503,9 +549,28 @@ colorbarLevelsDifference = [-150, -80, -30, -10, 0, 10, 30, 80, 150] # Nov, Dec, JFM, AMJ, JAS, OND, ANN) seasons = ['JFM', 'JAS', 'ANN'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] +[climatologyMapMLDAntarctic] +## options related to color maps for horizontally remapped climatologies of +## mixed layer depth (MLD) against reference model results and observations +## on an Antarctic comparison grid + +# colormap for model/observations +colormapNameResult = viridis +# color indices into colormapName for filled contours +colormapIndicesResult = [0, 40, 80, 110, 140, 170, 200, 230, 255] +# colormap levels/values for contour boundaries +colorbarLevelsResult = [0, 20, 40, 60, 80, 100, 150, 200, 400, 800] + +# colormap for differences +colormapNameDifference = RdBu_r +# color indices into colormapName for filled contours +colormapIndicesDifference = [0, 28, 57, 85, 113, 142, 170, 198, 227, 255] +# colormap levels/values for contour boundaries +colorbarLevelsDifference = [-150, -80, -30, -10, 0, 10, 30, 80, 150] + [climatologyMapSeaIceConcNH] ## options related to plotting horizontally remapped climatologies of ## sea ice concentration against reference model results and observations @@ -529,7 +594,7 @@ colorbarLevelsDifference = [-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8] # observations are only available for these seasons) seasons = ['JFM', 'JAS'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] # reference lat/lon for sea ice plots in the northern hemisphere @@ -562,7 +627,7 @@ colorbarLevelsDifference = [-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8] # observations are only available for these seasons) seasons = ['DJF', 'JJA'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] # reference lat/lon for sea ice plots in the northern hemisphere @@ -595,7 +660,7 @@ colorbarLevelsDifference = [-2.5, -2, -0.5, -0.1, 0, 0.1, 0.5, 2, 2.5] # observations are only available for these seasons) seasons = ['FM', 'ON'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] # reference lat/lon for sea ice plots in the northern hemisphere @@ -628,7 +693,7 @@ colorbarLevelsDifference = [-2.5, -2, -0.5, -0.1, 0, 0.1, 0.5, 2, 2.5] # observations are only available for these seasons) seasons = ['FM', 'ON'] -# comparison grid(s) ('lonlat', 'anatarctic') on which to plot analysis +# comparison grid(s) ('lonlat', 'antarctic') on which to plot analysis comparisonGrids = ['latlon'] # reference lat/lon for sea ice plots in the northern hemisphere diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 0b4e9fb17..279737c64 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -16,7 +16,7 @@ from ..shared.analysis_task import AnalysisTask from ..shared.plot.plotting import plot_global_comparison, \ - setup_colormap + setup_colormap, plot_polar_projection_comparison from ..shared.constants import constants from ..shared.io.utility import build_config_full_path @@ -26,7 +26,7 @@ get_remapper, get_observation_climatology_file_names, \ compute_climatology, remap_and_write_climatology, MpasClimatology -from ..shared.grid import LatLonGridDescriptor +from ..shared.grid import LatLonGridDescriptor, interp_extrap_corner from ..shared.mpas_xarray import mpas_xarray @@ -194,42 +194,27 @@ def run(self): # {{{ # setup_and_check was already called, and run completed successfully.) climatologyTask.setup_and_check() - mainRunName = config.get('runs', 'mainRunName') + # we don't have any way to know the observation lat/lon and grid + # without this, so we have to read the observational data set even + # if it's already been remapped. + dsObs, obsDescriptor = self._build_observational_dataset() - obsDescriptor = LatLonGridDescriptor.read(fileName=self.obsFileName, - latVarName='lat', - lonVarName='lon') + # set the landMask to None so we know we need to compute it later + # (if this is an antarctic projection) + self.landMask = None comparisonDescriptor = \ get_comparison_descriptor(config, self.comparisonGridName) origObsRemapper = Remapper(comparisonDescriptor, obsDescriptor) - sectionName = self.get_section_name() - - (colormapResult, colorbarLevelsResult) = setup_colormap( - config, sectionName, suffix='Result') - (colormapDifference, colorbarLevelsDifference) = setup_colormap( - config, sectionName, suffix='Difference') - - startYear = climatologyTask.startYear - endYear = climatologyTask.endYear - # Interpolate and compute biases monthValues = constants.monthDictionary[self.season] remappedFileName = climatologyTask.get_ncclimo_file_name( self.season, 'remapped', comparisonDescriptor) - remappedClimatology = xr.open_dataset(remappedFileName) - - modelOutput = \ - remappedClimatology[self.mpasFieldName].values - - lon = remappedClimatology['lon'].values - lat = remappedClimatology['lat'].values - - lonTarg, latTarg = np.meshgrid(lon, lat) + remappedModelClimatology = xr.open_dataset(remappedFileName) # now the observations (climatologyFileName, remappedFileName) = \ @@ -239,9 +224,6 @@ def run(self): # {{{ if not os.path.exists(remappedFileName): - # load the observations the first time - dsObs = self._build_observational_dataset() - seasonalClimatology = compute_climatology( dsObs, monthValues, maskVaries=True) @@ -264,41 +246,22 @@ def run(self): # {{{ if obsRemapper is None: # no need to remap because the observations are on the # comparison grid already - remappedClimatology = seasonalClimatology + remappedObsClimatology = seasonalClimatology else: - remappedClimatology = \ + remappedObsClimatology = \ remap_and_write_climatology( config, seasonalClimatology, climatologyFileName, remappedFileName, obsRemapper) else: - remappedClimatology = xr.open_dataset(remappedFileName) - observations = remappedClimatology[self.obsFieldName].values + remappedObsClimatology = xr.open_dataset(remappedFileName) - bias = modelOutput - observations - - outFileName = '{}/{}_{}_{}_years{:04d}-{:04d}.png'.format( - self.plotsDirectory, self.outFileLabel, mainRunName, - self.season, startYear, endYear) - title = '{} ({}, years {:04d}-{:04d})'.format( - self.fieldNameInTitle, self.season, startYear, endYear) - plot_global_comparison(config, - lonTarg, - latTarg, - modelOutput, - observations, - bias, - colormapResult, - colorbarLevelsResult, - colormapDifference, - colorbarLevelsDifference, - fileout=outFileName, - title=title, - modelTitle='{}'.format(mainRunName), - obsTitle=self.observationTitleLabel, - diffTitle='Model-Observations', - cbarlabel=self.unitsLabel) + if self.comparisonGridName == 'latlon': + self._plot_latlon(remappedModelClimatology, remappedObsClimatology) + elif self.comparisonGridName == 'antarctic': + self._plot_antarctic(remappedModelClimatology, + remappedObsClimatology) # }}} @@ -334,6 +297,122 @@ def get_section_name(self): return sectionName + def _plot_latlon(self, remappedModelClimatology, remappedObsClimatology): + # {{{ + """ plotting a global lat-lon data set """ + config = self.config + climatologyTask = self.climatologyTask + startYear = climatologyTask.startYear + endYear = climatologyTask.endYear + + sectionName = self.get_section_name() + + (colormapResult, colorbarLevelsResult) = setup_colormap( + config, sectionName, suffix='Result') + (colormapDifference, colorbarLevelsDifference) = setup_colormap( + config, sectionName, suffix='Difference') + + modelOutput = \ + remappedModelClimatology[self.mpasFieldName].values + + observations = remappedObsClimatology[self.obsFieldName].values + + bias = modelOutput - observations + + lon = remappedModelClimatology['lon'].values + lat = remappedModelClimatology['lat'].values + + lonTarg, latTarg = np.meshgrid(lon, lat) + + mainRunName = config.get('runs', 'mainRunName') + title = '{} ({}, years {:04d}-{:04d})'.format( + self.fieldNameInTitle, self.season, startYear, endYear) + + outFileName = '{}/{}_{}_{}_years{:04d}-{:04d}.png'.format( + self.plotsDirectory, self.outFileLabel, mainRunName, + self.season, startYear, endYear) + + plot_global_comparison(config, + lonTarg, + latTarg, + modelOutput, + observations, + bias, + colormapResult, + colorbarLevelsResult, + colormapDifference, + colorbarLevelsDifference, + fileout=outFileName, + title=title, + modelTitle='{}'.format(mainRunName), + obsTitle=self.observationTitleLabel, + diffTitle='Model - Observations', + cbarlabel=self.unitsLabel) + # }}} + + def _plot_antarctic(self, remappedModelClimatology, + remappedObsClimatology): # {{{ + """ plotting an Antarctic data set """ + + config = self.config + climatologyTask = self.climatologyTask + + startYear = climatologyTask.startYear + endYear = climatologyTask.endYear + + sectionName = self.get_section_name() + + mainRunName = config.get('runs', 'mainRunName') + title = '{} ({}, years {:04d}-{:04d})'.format( + self.fieldNameInTitle, self.season, startYear, endYear) + + if self.landMask is None: + oceanMask = remappedModelClimatology['validMask'].values + self.landMask = np.ma.masked_array( + np.ones(oceanMask.shape), + mask=np.logical_not(np.isnan(oceanMask))) + + modelOutput = \ + remappedModelClimatology[self.mpasFieldName].values + + observations = remappedObsClimatology[self.obsFieldName].values + + bias = modelOutput - observations + + x = interp_extrap_corner(remappedModelClimatology['x'].values) + y = interp_extrap_corner(remappedModelClimatology['y'].values) + + outFileName = '{}/{}_{}_{}_{}_years{:04d}-{:04d}.png'.format( + self.plotsDirectory, self.comparisonGridName, self.outFileLabel, + mainRunName, self.season, startYear, endYear) + + if config.has_option(sectionName, 'colormapIndicesResult'): + colorMapType = 'indexed' + elif config.has_option(sectionName, 'normTypeResult'): + colorMapType = 'norm' + else: + raise ValueError('config section {} contains neither the info' + 'for an indexed color map nor for computing a ' + 'norm'.format(sectionName)) + + plot_polar_projection_comparison( + config, + x, + y, + self.landMask, + modelOutput, + observations, + bias, + fileout=outFileName, + colorMapSectionName=sectionName, + colorMapType=colorMapType, + title=title, + modelTitle='{}'.format(mainRunName), + obsTitle=self.observationTitleLabel, + diffTitle='Model - Observations', + cbarlabel=self.unitsLabel) + # }}} + # }}} @@ -455,7 +534,11 @@ def _build_observational_dataset(self): # {{{ dsObs.coords['month'] = dsObs['Time.month'] dsObs.coords['year'] = dsObs['Time.year'] - return dsObs # }}} + # create a descriptor of the observation grid using the lat/lon + # coordinates + obsDescriptor = LatLonGridDescriptor.read(ds=dsObs) + + return dsObs, obsDescriptor # }}} # }}} @@ -560,7 +643,11 @@ def _build_observational_dataset(self): # {{{ dsObs.coords['month'] = dsObs['Time.month'] dsObs.coords['year'] = dsObs['Time.year'] - return dsObs # }}} + # create a descriptor of the observation grid using the lat/lon + # coordinates + obsDescriptor = LatLonGridDescriptor.read(ds=dsObs) + + return dsObs, obsDescriptor # }}} # }}} @@ -681,6 +768,10 @@ def _build_observational_dataset(self): # {{{ dsObs = mpas_xarray.subset_variables(dsObs, [self.obsFieldName, 'month']) - return dsObs # }}} + # create a descriptor of the observation grid using the lat/lon + # coordinates + obsDescriptor = LatLonGridDescriptor.read(ds=dsObs) + + return dsObs, obsDescriptor # }}} # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index b8b341a04..d3c63195c 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -386,6 +386,11 @@ def remap_and_write_climatology(config, climatologyDataSet, """ useNcremap = config.getboolean('climatology', 'useNcremap') + if (isinstance(remapper.sourceDescriptor, ProjectionGridDescriptor) or + isinstance(remapper.destinationDescriptor, ProjectionGridDescriptor)): + # ncremap doesn't support projection grids + useNcremap = False + if remapper.mappingFileName is None: # no remapping is needed remappedClimatology = climatologyDataSet diff --git a/mpas_analysis/shared/climatology/mpas_climatology_task.py b/mpas_analysis/shared/climatology/mpas_climatology_task.py index 5caf5e315..a78fb1300 100644 --- a/mpas_analysis/shared/climatology/mpas_climatology_task.py +++ b/mpas_analysis/shared/climatology/mpas_climatology_task.py @@ -1,3 +1,4 @@ +import numpy import xarray as xr import os import warnings @@ -536,6 +537,11 @@ def _mask_climatologies(self, season, dsMask, comparisonDescriptor): # {{{ # slice climatology = climatology.isel(**iselValues) + # add valid mask as a variable, useful for remapping later + climatology['validMask'] = \ + xr.DataArray(numpy.ones(climatology.dims['nCells']), + dims=['nCells']) + # mask the data set for variableName in self.variableList: climatology[variableName] = \ @@ -577,7 +583,7 @@ def _remap(self, inFileName, outFileName, remapper, comparisonGridName): useNcremap = self.config.getboolean('climatology', 'useNcremap') - if comparisonGridName == 'antarctic': + if comparisonGridName != 'latlon': # ncremap doesn't support polar stereographic grids useNcremap = False diff --git a/mpas_analysis/shared/grid/__init__.py b/mpas_analysis/shared/grid/__init__.py index 7fae57fb3..beffc841f 100644 --- a/mpas_analysis/shared/grid/__init__.py +++ b/mpas_analysis/shared/grid/__init__.py @@ -1,2 +1,2 @@ from .grid import MpasMeshDescriptor, LatLonGridDescriptor, \ - ProjectionGridDescriptor + ProjectionGridDescriptor, interp_extrap_corner diff --git a/mpas_analysis/shared/grid/grid.py b/mpas_analysis/shared/grid/grid.py index cec5c2744..1f54b1efd 100644 --- a/mpas_analysis/shared/grid/grid.py +++ b/mpas_analysis/shared/grid/grid.py @@ -186,7 +186,7 @@ def to_scrip(self, scripFileName): # {{{ inFile.close() outFile.close() # }}} -# }}} + # }}} class LatLonGridDescriptor(MeshDescriptor): # {{{ @@ -253,13 +253,12 @@ def read(cls, fileName=None, ds=None, latVarName='lat', descriptor.units = 'radians' # interp/extrap corners - descriptor.lonCorner = _interp_extrap_corner(descriptor.lon) - descriptor.latCorner = _interp_extrap_corner(descriptor.lat) + descriptor.lonCorner = interp_extrap_corner(descriptor.lon) + descriptor.latCorner = interp_extrap_corner(descriptor.lat) descriptor._set_coords(latVarName, lonVarName, ds[latVarName].dims[0], ds[lonVarName].dims[0]) - if 'history' in ds.attrs: descriptor.history = '\n'.join([ds.attrs['history'], ' '.join(sys.argv[:])]) @@ -375,6 +374,7 @@ def _set_coords(self, latVarName, lonVarName, latDimName, # Otherwise, you end up with a seam at the prime- or antemeridian. self.regional = not numpy.isclose(totalLon, 360.) # }}} + # }}} class ProjectionGridDescriptor(MeshDescriptor): # {{{ @@ -453,8 +453,8 @@ def read(cls, projection, fileName, meshName=None, xVarName='x', ds[yVarName].dims[0]) # interp/extrap corners - descriptor.xCorner = _interp_extrap_corner(descriptor.x) - descriptor.yCorner = _interp_extrap_corner(descriptor.y) + descriptor.xCorner = interp_extrap_corner(descriptor.x) + descriptor.yCorner = interp_extrap_corner(descriptor.y) # Update history attribute of netCDF file if 'history' in ds.attrs: @@ -494,8 +494,8 @@ def create(cls, projection, x, y, meshName): # {{{ descriptor._set_coords('x', 'y', 'x', 'y') # interp/extrap corners - descriptor.xCorner = _interp_extrap_corner(descriptor.x) - descriptor.yCorner = _interp_extrap_corner(descriptor.y) + descriptor.xCorner = interp_extrap_corner(descriptor.x) + descriptor.yCorner = interp_extrap_corner(descriptor.y) descriptor.history = sys.argv[:] return descriptor # }}} @@ -594,6 +594,19 @@ def _set_coords(self, xVarName, yVarName, xDimName, yDimName): # {{{ self.dimSize = [len(self.x), len(self.y)] # }}} + # }}} + + +def interp_extrap_corner(inField): # {{{ + '''Interpolate/extrapolate a 1D field from grid centers to grid corners''' + + outField = numpy.zeros(len(inField)+1) + outField[1:-1] = 0.5*(inField[0:-1] + inField[1:]) + # extrapolate the ends + outField[0] = 1.5*inField[0] - 0.5*inField[1] + outField[-1] = 1.5*inField[-1] - 0.5*inField[-2] + return outField # }}} + def _create_scrip(outFile, grid_size, grid_corners, grid_rank, units, meshName): # {{{ @@ -652,17 +665,6 @@ def _create_scrip(outFile, grid_size, grid_corners, grid_rank, units, # }}} -def _interp_extrap_corner(inField): # {{{ - '''Interpolate/extrapolate a 1D field from grid centers to grid corners''' - - outField = numpy.zeros(len(inField)+1) - outField[1:-1] = 0.5*(inField[0:-1] + inField[1:]) - # extrapolate the ends - outField[0] = 1.5*inField[0] - 0.5*inField[1] - outField[-1] = 1.5*inField[-1] - 0.5*inField[-2] - return outField # }}} - - def _unwrap_corners(inField): '''Turn a 2D array of corners into an array of rectangular mesh elements''' outField = numpy.zeros(((inField.shape[0]-1)*(inField.shape[1]-1), 4)) diff --git a/mpas_analysis/shared/plot/plotting.py b/mpas_analysis/shared/plot/plotting.py index 910c4b150..241bc75da 100644 --- a/mpas_analysis/shared/plot/plotting.py +++ b/mpas_analysis/shared/plot/plotting.py @@ -841,13 +841,175 @@ def plot_global_comparison( plt.close() -def _date_tick(days, pos, calendar='gregorian', includeMonth=True): - days = np.maximum(days, 0.) - date = days_to_datetime(days, calendar) - if includeMonth: - return '{:04d}-{:02d}'.format(date.year, date.month) +def plot_polar_projection_comparison( + config, + x, + y, + landMask, + modelArray, + obsArray, + diffArray, + fileout, + colorMapSectionName, + colorMapType='norm', + title=None, + modelTitle='Model', + obsTitle='Observations', + diffTitle='Model-Observations', + cbarlabel='units', + titleFontSize=None, + figsize=(8, 22), + dpi=300): + + """ + Plots a data set as a longitude/latitude map. + + Parameters + ---------- + config : instance of ConfigParser + the configuration, containing a [plot] section with options that + control plotting + + x, y : numpy ndarrays + 1D x and y arrays defining the projection grid + + landMask : numpy ndarrays + model and observational data sets + + modelArray, obsArray : numpy ndarrays + model and observational data sets + + diffArray : float array + difference between modelArray and obsArray + + fileout : str + the file name to be written + + colorMapSectionName : str + section name in ``config`` where color map info can be found. + + colorMapType : {'norm', 'indexed'}, optional + The type of color map, either a matplotlib norm or indices into a color + map. + + If 'norm', the following options must be defined for suffixes + ``Result`` and ``Difference``: + ``colormapName``, ``normType``, + ``normArgs``, ``colorbarTicks`` + + If 'indexed', these options are required: + ``colormapName``, ``colormapIndices``, + ``colorbarLevels`` + + The colorbar for each panel will be constructed from these options + + + title : str, optional + the subtitle of the plot + + plotProjection : str, optional + Basemap projection for the plot + + modelTitle : str, optional + title of the model panel + + obsTitle : str, optional + title of the observations panel + + diffTitle : str, optional + title of the difference (bias) panel + + cbarlabel : str, optional + label on the colorbar + + titleFontSize : int, optional + size of the title font + + figsize : tuple of float, optional + the size of the figure in inches + + dpi : int, optional + the number of dots per inch of the figure + + Authors + ------- + Xylar Asay-Davis + """ + + def plot_panel(ax, title, array, cmap, norm, ticks): + plt.title(title, y=1.06, **axis_font) + + plt.pcolormesh(x, y, array, cmap=cmap, norm=norm) + cbar = plt.colorbar() + cbar.set_label(cbarlabel) + if ticks is not None: + cbar.set_ticks(ticks) + cbar.set_ticklabels(['{}'.format(tick) for tick in ticks]) + plt.pcolormesh(x, y, landMask, cmap=landColorMap) + plt.contour(xCenter, yCenter, landMask.mask, (0.5,), colors='k', + linewidths=0.5) + ax.axis('off') + ax.set_aspect('equal') + ax.autoscale(tight=True) + + if colorMapType == 'norm': + (cmapModelObs, normModelObs) = _setup_colormap_and_norm( + config, colorMapSectionName, suffix='Result') + (cmapDiff, normDiff) = _setup_colormap_and_norm( + config, colorMapSectionName, suffix='Difference') + + colorbarTicksResult = config.getExpression(colorMapSectionName, + 'colorbarTicksResult') + colorbarTicksDifference = config.getExpression( + colorMapSectionName, 'colorbarTicksDifference') + elif colorMapType == 'indexed': + + (cmapModelObs, colorbarTicksResult) = setup_colormap( + config, colorMapSectionName, suffix='Result') + (cmapDiff, colorbarTicksDifference) = setup_colormap( + config, colorMapSectionName, suffix='Difference') + + normModelObs = cols.BoundaryNorm(colorbarTicksResult, cmapModelObs.N) + normDiff = cols.BoundaryNorm(colorbarTicksDifference, cmapDiff.N) else: - return '{:04d}'.format(date.year) + raise ValueError('colorMapType must be one of {norm, indexed}') + + # set up figure + fig = plt.figure(figsize=figsize, dpi=dpi) + if (title is not None): + if titleFontSize is None: + titleFontSize = config.get('plot', 'titleFontSize') + title_font = {'size': titleFontSize, + 'color': config.get('plot', 'titleFontColor'), + 'weight': config.get('plot', 'titleFontWeight')} + fig.suptitle(title, y=0.95, **title_font) + axis_font = {'size': config.get('plot', 'axisFontSize')} + + # set up land colormap + colorList = [(0.8, 0.8, 0.8), (0.8, 0.8, 0.8)] + landColorMap = cols.LinearSegmentedColormap.from_list('land', colorList) + + # locations of centers for land contour + xCenter = 0.5*(x[1:] + x[0:-1]) + yCenter = 0.5*(y[1:] + y[0:-1]) + + ax = plt.subplot(3, 1, 1) + plot_panel(ax, modelTitle, modelArray, cmapModelObs, normModelObs, + colorbarTicksResult) + + ax = plt.subplot(3, 1, 2) + plot_panel(ax, obsTitle, obsArray, cmapModelObs, normModelObs, + colorbarTicksResult) + + ax = plt.subplot(3, 1, 3) + plot_panel(ax, diffTitle, diffArray, cmapDiff, normDiff, + colorbarTicksDifference) + + if (fileout is not None): + plt.savefig(fileout, dpi=dpi, bbox_inches='tight', pad_inches=0.1) + + if not config.getboolean('plot', 'displayToScreen'): + plt.close() def plot_1D(config, xArrays, fieldArrays, errArrays, @@ -1121,6 +1283,8 @@ def setup_colormap(config, configSectionName, suffix=''): Xylar Asay-Davis, Milena Veneziani ''' + _register_custom_colormaps() + colormap = plt.get_cmap(config.get(configSectionName, 'colormapName{}'.format(suffix))) indices = config.getExpression(configSectionName, @@ -1142,6 +1306,185 @@ def setup_colormap(config, configSectionName, suffix=''): return (colormap, colorbarLevels) +def _setup_colormap_and_norm(config, configSectionName, suffix=''): + + ''' + Set up a colormap from the registry + + Parameters + ---------- + config : instance of ConfigParser + the configuration, containing a [plot] section with options that + control plotting + + configSectionName : str + name of config section + + suffix: str, optional + suffix of colormap related options + + Returns + ------- + colormap : srt + new colormap + + norm : ``SymLogNorm`` object + the norm used to normalize the colormap + + Authors + ------- + Xylar Asay-Davis + ''' + + _register_custom_colormaps() + + colormap = plt.get_cmap(config.get(configSectionName, + 'colormapName{}'.format(suffix))) + + normType = config.get(configSectionName, 'normType{}'.format(suffix)) + + kwargs = config.getExpression(configSectionName, + 'normArgs{}'.format(suffix)) + + if normType == 'symLog': + norm = cols.SymLogNorm(**kwargs) + elif normType == 'linear': + norm = cols.Normalize(**kwargs) + else: + raise ValueError('Unsupported norm type {} in section {}'.format( + normType, configSectionName)) + + return (colormap, norm) + + +def _date_tick(days, pos, calendar='gregorian', includeMonth=True): + days = np.maximum(days, 0.) + date = days_to_datetime(days, calendar) + if includeMonth: + return '{:04d}-{:02d}'.format(date.year, date.month) + else: + return '{:04d}'.format(date.year) + + +def _register_custom_colormaps(): + name = 'ferret' + backgroundColor = (0.9, 0.9, 0.9) + + red = np.array([[0, 0.6], + [0.15, 1], + [0.35, 1], + [0.65, 0], + [0.8, 0], + [1, 0.75]]) + + green = np.array([[0, 0], + [0.1, 0], + [0.35, 1], + [1, 0]]) + + blue = np.array([[0, 0], + [0.5, 0], + [0.9, 0.9], + [1, 0.9]]) + + colorCount = 21 + colorList = np.ones((colorCount, 4), float) + colorList[:, 0] = np.interp(np.linspace(0, 1, colorCount), + red[:, 0], red[:, 1]) + colorList[:, 1] = np.interp(np.linspace(0, 1, colorCount), + green[:, 0], green[:, 1]) + colorList[:, 2] = np.interp(np.linspace(0, 1, colorCount), + blue[:, 0], blue[:, 1]) + colorList = colorList[::-1, :] + + colorMap = cols.LinearSegmentedColormap.from_list( + name, colorList, N=255) + + colorMap.set_bad(backgroundColor) + plt.register_cmap(name, colorMap) + + name = 'erdc_iceFire_H' + + colorArray = np.array([ + [-1, 4.05432e-07, 0, 5.90122e-06], + [-0.87451, 0, 0.120401, 0.302675], + [-0.74902, 0, 0.216583, 0.524574], + [-0.623529, 0.0552475, 0.345025, 0.6595], + [-0.498039, 0.128047, 0.492588, 0.720288], + [-0.372549, 0.188955, 0.641309, 0.792092], + [-0.247059, 0.327673, 0.784935, 0.873434], + [-0.121569, 0.60824, 0.892164, 0.935547], + [0.00392157, 0.881371, 0.912178, 0.818099], + [0.129412, 0.951407, 0.835621, 0.449279], + [0.254902, 0.904481, 0.690489, 0], + [0.380392, 0.85407, 0.510864, 0], + [0.505882, 0.777093, 0.33018, 0.00088199], + [0.631373, 0.672862, 0.139087, 0.00269398], + [0.756863, 0.508815, 0, 0], + [0.882353, 0.299417, 0.000366289, 0.000547829], + [1, 0.0157519, 0.00332021, 4.55569e-08]], float) + + colorCount = 255 + colorList = np.ones((colorCount, 4), float) + x = colorArray[:, 0] + for cIndex in range(3): + colorList[:, cIndex] = np.interp( + np.linspace(-1., 1., colorCount), + x, colorArray[:, cIndex+1]) + + colorMap = cols.LinearSegmentedColormap.from_list( + name, colorList, N=255) + + plt.register_cmap(name, colorMap) + + name = 'erdc_iceFire_L' + + colorArray = np.array([ + [-1, 0.870485, 0.913768, 0.832905], + [-0.87451, 0.586919, 0.887865, 0.934003], + [-0.74902, 0.31583, 0.776442, 0.867858], + [-0.623529, 0.18302, 0.632034, 0.787722], + [-0.498039, 0.117909, 0.484134, 0.713825], + [-0.372549, 0.0507239, 0.335979, 0.654741], + [-0.247059, 0, 0.209874, 0.511832], + [-0.121569, 0, 0.114689, 0.28935], + [0.00392157, 0.0157519, 0.00332021, 4.55569e-08], + [0.129412, 0.312914, 0, 0], + [0.254902, 0.520865, 0, 0], + [0.380392, 0.680105, 0.15255, 0.0025996], + [0.505882, 0.785109, 0.339479, 0.000797922], + [0.631373, 0.857354, 0.522494, 0], + [0.756863, 0.910974, 0.699774, 0], + [0.882353, 0.951921, 0.842817, 0.478545], + [1, 0.881371, 0.912178, 0.818099]], float) + + colorCount = 255 + colorList = np.ones((colorCount, 4), float) + x = colorArray[:, 0] + for cIndex in range(3): + colorList[:, cIndex] = np.interp( + np.linspace(-1., 1., colorCount), + x, colorArray[:, cIndex+1]) + + colorMap = cols.LinearSegmentedColormap.from_list( + name, colorList, N=255) + + plt.register_cmap(name, colorMap) + + name = 'BuOr' + colors1 = plt.cm.PuOr(np.linspace(0., 1, 256)) + colors2 = plt.cm.RdBu(np.linspace(0, 1, 256)) + + # combine them and build a new colormap, just the orange from the first + # and the blue from the second + colorList = np.vstack((colors1[0:128, :], colors2[128:256, :])) + # reverse the order + colorList = colorList[::-1, :] + colorMap = cols.LinearSegmentedColormap.from_list(name, colorList) + + plt.register_cmap(name, colorMap) + + def _plot_size_y_axis(plt, xaxisValues, **data): ''' Resize the y-axis limit based on the curves being plotted From 7e5237057116701b148fc3bbda9f82e88ba5aa31 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 09:31:20 +0200 Subject: [PATCH 29/47] Add customize_climatology funciton This function in MpasClimatology allows derived classes to make additions or modifications to the climatology before remapping. This can be helpful for performing masking. --- .../climatology/mpas_climatology_task.py | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/mpas_analysis/shared/climatology/mpas_climatology_task.py b/mpas_analysis/shared/climatology/mpas_climatology_task.py index a78fb1300..16b76c052 100644 --- a/mpas_analysis/shared/climatology/mpas_climatology_task.py +++ b/mpas_analysis/shared/climatology/mpas_climatology_task.py @@ -365,6 +365,36 @@ def get_ncclimo_file_name(self, season, stage, comparisonDescriptor=None, else: return fileName # }}} + def customize_climatology(self, climatology): # {{{ + """ + A function that can be overridden by child classes for purposes of + making custom changes to the climatology data set after slicing and + masking and before remapping. By default, a field 'validMask' is added + to the climatology. After remapping, this field indicates which cells + on the remapped grid came from valid cells on the MPAS grid, useful for + plotting a land mask (for example). + + Parameters + ---------- + climatology : ``xarray.Dataset`` object + the climatology data set + + Returns + ------- + climatology : ``xarray.Dataset`` object + the modified climatology data set + + Authors + ------- + Xylar Asay-Davis + """ + + # add valid mask as a variable, useful for remapping later + climatology['validMask'] = \ + xr.DataArray(numpy.ones(climatology.dims['nCells']), + dims=['nCells']) + return climatology # }}} + def _update_climatology_bounds_from_file_names(self): # {{{ """ Update the start and end years and dates for climatologies based on the @@ -537,10 +567,7 @@ def _mask_climatologies(self, season, dsMask, comparisonDescriptor): # {{{ # slice climatology = climatology.isel(**iselValues) - # add valid mask as a variable, useful for remapping later - climatology['validMask'] = \ - xr.DataArray(numpy.ones(climatology.dims['nCells']), - dims=['nCells']) + climatology = self.customize_climatology(climatology) # mask the data set for variableName in self.variableList: From bb3704b1651700089a6d8a0b8b8d59baa84e037d Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 22:34:57 +0200 Subject: [PATCH 30/47] Get rid of old sea ice config options They have now been divided into 4 separate sections. --- config.default | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) diff --git a/config.default b/config.default index f840ebe00..87b527c40 100644 --- a/config.default +++ b/config.default @@ -703,54 +703,6 @@ referenceLongitude = 180 # a list of prefixes describing the sources of the observations to be used observationPrefixes = [''] -[climatologyMapSeaIceConcThick] -## options related to plotting horizontally remapped climatologies of -## sea ice concentration and thickness against reference model results and -## observations - -# colormap for model/observations -colormapNameConcResultWinter = inferno -colormapNameConcResultSummer = inferno -colormapNameThickResultNH = inferno -colormapNameThickResultSH = inferno -# color indices into colormapName for filled contours -colormapIndicesConcResultWinter = [20, 80, 110, 140, 170, 200, 230, 255] -colormapIndicesConcResultSummer = [20, 80, 110, 140, 170, 200, 230, 255] -colormapIndicesThickResultNH = [20, 80, 110, 140, 170, 200, 230, 255] -colormapIndicesThickResultSH = [20, 80, 110, 140, 170, 200, 230, 255] -# colormap levels/values for contour boundaries for: -# concentration in winter and summer -colorbarLevelsConcResultWinter = [0.15, 0.4, 0.7, 0.9, 0.94, 0.96, 0.98, 0.99, 1] -colorbarLevelsConcResultSummer = [0.15, 0.3, 0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1] -# thickness in the northern and southern hemispheres -colorbarLevelsThickResultNH = [0, 0.25, 0.5, 1, 1.5, 2, 2.5, 3, 3.5] -colorbarLevelsThickResultSH = [0, 0.2, 0.4, 0.6, 0.8, 1, 1.5, 2, 2.5] - -# colormap for differences -colormapNameConcDifferenceWinter = RdBu_r -colormapNameConcDifferenceSummer = RdBu_r -colormapNameThickDifferenceNH = RdBu_r -colormapNameThickDifferenceSH = RdBu_r -# color indices into colormapName for filled contours -colormapIndicesConcDifferenceWinter = [0, 40, 80, 127, 127, 170, 210, 255] -colormapIndicesConcDifferenceSummer = [0, 40, 80, 127, 127, 170, 210, 255] -colormapIndicesThickDifferenceNH = [0, 40, 80, 127, 127, 170, 210, 255] -colormapIndicesThickDifferenceSH = [0, 40, 80, 127, 127, 170, 210, 255] -# colormap levels/values for contour boundaries for: -# concentration in winter and summer -colorbarLevelsConcDifferenceWinter = [-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8] -colorbarLevelsConcDifferenceSummer = [-0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8] -# thickness in the northern and southern hemispheres -colorbarLevelsThickDifferenceNH = [-2.5, -2, -0.5, -0.1, 0, 0.1, 0.5, 2, 2.5] -colorbarLevelsThickDifferenceSH = [-2.5, -2, -0.5, -0.1, 0, 0.1, 0.5, 2, 2.5] - -# reference lat/lon for sea ice plots in the northern hemisphere -minimumLatitudeNH = 50 -referenceLongitudeNH = 0 -# reference lat/lon for sea ice plots in the southern hemisphere -minimumLatitudeSH = -50 -referenceLongitudeSH = 180 - [regions] ## options related to ocean regions used in several analysis modules From c16568da639fb107926accf6966054d1d582e32e Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 22:37:59 +0200 Subject: [PATCH 31/47] Some clean up of ClimatologyMapOcean Some of these changes are needed to support Antarctic climatology maps (melt, temperature, etc.) and some are clean up: * consolidating code in create_tasks * fixing typos (seasons --> season) --- mpas_analysis/ocean/climatology_map.py | 129 ++++++++++++++----------- 1 file changed, 72 insertions(+), 57 deletions(-) diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 279737c64..54053f482 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -44,7 +44,7 @@ class ClimatologyMapOcean(AnalysisTask): # {{{ method gets called in this class. It is used to figure out the names of the climatology files that it created. - seasons : str + season : str A season (keys in ``shared.constants.monthDictionary``) to be plotted comparisonGridName : {'latlon', 'antarctic'} @@ -123,57 +123,66 @@ def create_tasks(cls, config): # {{{ raise ValueError('config section {} does not contain valid list ' 'of comparison grids'.format(sectionName)) - climatologyMapTasks = [] + first = True + tasks = [] for comparisonGridName in comparisonGridNames: for season in seasons: # one plotting task for each season and comparison grid - climatologyMapTasks.append(cls( + climatologyMapTask = cls( config=config, season=season, - comparisonGridName=comparisonGridName)) - - # we'll use the first task (corresponding to the first season in - # the list) as a way to get some information we need to build the - # MpasClimatology task for computing climatologies: - # mpasVariableName, componentName, fieldName - firstTask = climatologyMapTasks[0] - - taskSuffix = firstTask.fieldName[0].upper() + \ - firstTask.fieldName[1:] - - climatologyTask = \ - MpasClimatology(config=config, - variableList=[firstTask.mpasFieldName], - taskSuffix=taskSuffix, - componentName=firstTask.componentName, - comparisonGridNames=comparisonGridNames, - seasons=seasons, - tags=['climatology'], - iselValues=firstTask.iselValues) - - for index in range(len(climatologyMapTasks)): - climatologyMapTask = climatologyMapTasks[index] - # add climatologyTask as a prerequisite of each task so - # plotting won't happen until we have the required - # climatologies - if climatologyMapTask.prerequisiteTasks is None: - climatologyMapTask.prerequisiteTasks = \ - [climatologyTask.taskName] - else: - climatologyMapTask.prerequisiteTasks.append( - climatologyTask.taskName) - # We want to have access to some information from the - # climatologyTask (namely, we need a way to find out what the - # names of the climatology files are that it created), so we'll - # keep a reference to it handy. - climatologyMapTask.climatologyTask = climatologyTask + comparisonGridName=comparisonGridName) + + if first: + climatologyTask = \ + climatologyMapTask.create_mpas_climatology( + comparisonGridNames=comparisonGridNames, + seasons=seasons) + tasks.append(climatologyTask) + + climatologyMapTask.add_prerequisite_tasks( + [climatologyTask.taskName]) - tasks = [climatologyTask] + climatologyMapTasks + climatologyMapTask.climatologyTask = climatologyTask + + tasks.append(climatologyMapTask) + + first = False return tasks # }}} + def create_mpas_climatology(self, comparisonGridNames, seasons): # {{{ + """ + Create an MpasClimatology task to use as a prerequisite of this task + + comparisonGridNames : list of {'latlon', 'antarctic'}, optional + The name(s) of the comparison grid to use for remapping. + + seasons : list of str, optional + A list of seasons (keys in ``shared.constants.monthDictionary``) + to be computed. + + Authors + ------- + Xylar Asay-Davis + """ + + taskSuffix = self.fieldName[0].upper() + self.fieldName[1:] + + climatologyTask = MpasClimatology( + config=self.config, + variableList=[self.mpasFieldName], + taskSuffix=taskSuffix, + componentName=self.componentName, + comparisonGridNames=comparisonGridNames, + seasons=seasons, + tags=['climatology'], + iselValues=self.iselValues) + + return climatologyTask # }}} + def run(self): # {{{ """ - Plots a comparison of ACME/MPAS output to SST, MLD or SSS observations + Plots 2D map comparing ACME/MPAS ocean output to observations Authors ------- @@ -224,18 +233,19 @@ def run(self): # {{{ if not os.path.exists(remappedFileName): - seasonalClimatology = compute_climatology( - dsObs, monthValues, maskVaries=True) + if 'month' in dsObs.coords: + # we should make a seasonal climatology + seasonalClimatology = compute_climatology( + dsObs, monthValues, maskVaries=True) - seasonalClimatology.load() - seasonalClimatology.close() - write_netcdf(seasonalClimatology, climatologyFileName) - # make the remapper for the climatology - obsDescriptor = LatLonGridDescriptor.read( - fileName=climatologyFileName, - latVarName='lat', - lonVarName='lon') + seasonalClimatology.load() + seasonalClimatology.close() + write_netcdf(seasonalClimatology, climatologyFileName) + else: + # we assume dsObs is already a seasonal climatology + seasonalClimatology = dsObs + # make the remapper for the climatology obsRemapper = get_remapper( config=config, sourceDescriptor=obsDescriptor, comparisonDescriptor=comparisonDescriptor, @@ -375,16 +385,21 @@ def _plot_antarctic(self, remappedModelClimatology, modelOutput = \ remappedModelClimatology[self.mpasFieldName].values + modelOutput = np.ma.masked_where(np.isnan(modelOutput), modelOutput) + observations = remappedObsClimatology[self.obsFieldName].values + observations = np.ma.masked_where(np.isnan(observations), observations) + bias = modelOutput - observations x = interp_extrap_corner(remappedModelClimatology['x'].values) y = interp_extrap_corner(remappedModelClimatology['y'].values) outFileName = '{}/{}_{}_{}_{}_years{:04d}-{:04d}.png'.format( - self.plotsDirectory, self.comparisonGridName, self.outFileLabel, - mainRunName, self.season, startYear, endYear) + self.plotsDirectory, self.comparisonGridName, + self.outFileLabel, mainRunName, self.season, startYear, + endYear) if config.has_option(sectionName, 'colormapIndicesResult'): colorMapType = 'indexed' @@ -434,7 +449,7 @@ def __init__(self, config, season, comparisonGridName): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options - seasons : str + season : str A season (keys in ``shared.constants.monthDictionary``) to be plotted @@ -561,7 +576,7 @@ def __init__(self, config, season, comparisonGridName): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options - seasons : str + season : str A season (keys in ``shared.constants.monthDictionary``) to be plotted @@ -670,7 +685,7 @@ def __init__(self, config, season, comparisonGridName): # {{{ config : instance of MpasAnalysisConfigParser Contains configuration options - seasons : str + season : str A season (keys in ``shared.constants.monthDictionary``) to be plotted From e526cf72768b22eef4a04c53d335c9c210227c59 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 22:39:58 +0200 Subject: [PATCH 32/47] Add a function for adding prerequisite tasks Sometimes, it is useful to add a prerequisiste after construction, so this funciton takes care of appending the new task to the list if it is not already there. --- mpas_analysis/shared/analysis_task.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/mpas_analysis/shared/analysis_task.py b/mpas_analysis/shared/analysis_task.py index 65c836cdc..c14e84a8c 100644 --- a/mpas_analysis/shared/analysis_task.py +++ b/mpas_analysis/shared/analysis_task.py @@ -561,6 +561,28 @@ def get_input_file_names(self, streamName, startDate, endDate)) return inputFileNames # }}} + def add_prerequisite_tasks(self, prerequisiteTasks): # {{{ + ''' + Add one or more task names to the list of prerequisite tasks + + Parameters + ---------- + prerequisiteTasks : list of str + The names of the tasks to add as prerequisites + + Authors + ------- + Xylar Asay-Davis + ''' + + if self.prerequisiteTasks is None: + self.prerequisiteTasks = prerequisiteTasks + else: + for task in prerequisiteTasks: + if task not in self.prerequisiteTasks: + self.prerequisiteTasks.apend(task) + + # }}} # }}} From d2624b363f310afcdef2c54a4c906d2c284ec1a4 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 22:41:27 +0200 Subject: [PATCH 33/47] small pep8 fix --- mpas_analysis/shared/climatology/climatology.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mpas_analysis/shared/climatology/climatology.py b/mpas_analysis/shared/climatology/climatology.py index d3c63195c..c846940a5 100644 --- a/mpas_analysis/shared/climatology/climatology.py +++ b/mpas_analysis/shared/climatology/climatology.py @@ -387,7 +387,8 @@ def remap_and_write_climatology(config, climatologyDataSet, useNcremap = config.getboolean('climatology', 'useNcremap') if (isinstance(remapper.sourceDescriptor, ProjectionGridDescriptor) or - isinstance(remapper.destinationDescriptor, ProjectionGridDescriptor)): + isinstance(remapper.destinationDescriptor, + ProjectionGridDescriptor)): # ncremap doesn't support projection grids useNcremap = False From 01aadf65fa70c2248d691464094822168026f9c9 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Tue, 15 Aug 2017 22:42:44 +0200 Subject: [PATCH 34/47] Add task climatologyMapMeltAntarctic This task compares Antarctic melt rates from MPAS/ACME runs with ice shelves to Rignot et al. 2013 --- config.default | 33 +++ mpas_analysis/ocean/__init__.py | 1 + .../ocean/antarctic_climatology_map.py | 271 ++++++++++++++++++ mpas_analysis/shared/constants/constants.py | 3 + run_analysis.py | 1 + 5 files changed, 309 insertions(+) create mode 100644 mpas_analysis/ocean/antarctic_climatology_map.py diff --git a/config.default b/config.default index 87b527c40..e8c8b35c2 100644 --- a/config.default +++ b/config.default @@ -207,6 +207,7 @@ sssSubdirectory = SSS mldSubdirectory = MLD ninoSubdirectory = Nino mhtSubdirectory = MHT +meltSubdirectory = Melt # first and last year of SST observational climatology (preferably one of the # two ranges given below) @@ -571,6 +572,38 @@ colormapIndicesDifference = [0, 28, 57, 85, 113, 142, 170, 198, 227, 255] # colormap levels/values for contour boundaries colorbarLevelsDifference = [-150, -80, -30, -10, 0, 10, 30, 80, 150] +[climatologyMapMeltAntarctic] +## options related to plotting horizontally regridded maps of Antarctic +## sub-ice-shelf melt rates against reference model results and observations + +# comparison grid(s) +# only the Antarctic really makes sense but lat-lon could technically work. +comparisonGrids = ['antarctic'] + +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['JFM', 'JAS', 'ANN'] + +# colormap for model/observations +colormapNameResult = erdc_iceFire_H +# the type of norm used in the colormap +normTypeResult = symLog +# A dictionary with keywords for the SemiLogNorm +normArgsResult = {'linthresh': 1., 'linscale': 0.5, 'vmin': -100., + 'vmax': 100.} +colorbarTicksResult = [-100., -50., -20., -10., -5., -2., -1., 0., 1., 2., 5., + 10., 20., 50., 100.] + +# colormap for differences +colormapNameDifference = RdBu_r +# the type of norm used in the colormap +normTypeDifference = symLog +# A dictionary with keywords for the SemiLogNorm +normArgsDifference = {'linthresh': 1., 'linscale': 0.5, 'vmin': -100., + 'vmax': 100.} +colorbarTicksDifference = [-100., -50., -20., -10., -5., -2., -1., 0., 1., 2., + 5., 10., 20., 50., 100.] + [climatologyMapSeaIceConcNH] ## options related to plotting horizontally remapped climatologies of ## sea ice concentration against reference model results and observations diff --git a/mpas_analysis/ocean/__init__.py b/mpas_analysis/ocean/__init__.py index a6022b7d8..a7d505623 100644 --- a/mpas_analysis/ocean/__init__.py +++ b/mpas_analysis/ocean/__init__.py @@ -1,5 +1,6 @@ from climatology_map import ClimatologyMapSST, ClimatologyMapMLD, \ ClimatologyMapSSS +from antarctic_climatology_map import ClimatologyMapMeltAntarctic from time_series_ohc import TimeSeriesOHC from time_series_sst import TimeSeriesSST from index_nino34 import IndexNino34 diff --git a/mpas_analysis/ocean/antarctic_climatology_map.py b/mpas_analysis/ocean/antarctic_climatology_map.py new file mode 100644 index 000000000..8c1342224 --- /dev/null +++ b/mpas_analysis/ocean/antarctic_climatology_map.py @@ -0,0 +1,271 @@ +''' +Analysis tasks for comparing Antarctic climatology maps against observations +and reanalysis data. + +Authors +------- +Xylar Asay-Davis +''' + +import xarray as xr + +from .climatology_map import ClimatologyMapOcean + +from ..shared.constants import constants + +from ..shared.io.utility import build_config_full_path + +from ..shared.grid import ProjectionGridDescriptor +from ..shared.climatology import get_antarctic_stereographic_projection, \ + MpasClimatology + +from ..shared.mpas_xarray import mpas_xarray + + +class MpasClimatologyMeltAntarctic(MpasClimatology): # {{{ + """ + A task for creating and remapping climatologies of Antarctic melt rates + + Attributes + ---------- + landIceMask : xarray.DataArray + A mask indicating where there is land ice on the ocean grid (thus, + where melt rates are valid) + + Authors + ------- + Xylar Asay-Davis + """ + + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + """ + + # first, call setup_and_check from the base class + # (ClimatologyMapOcean), which will perform some common setup + super(MpasClimatologyMeltAntarctic, self).setup_and_check() + + landIceFluxMode = self.namelist.get('config_land_ice_flux_mode') + if landIceFluxMode not in ['standalone', 'coupled']: + raise ValueError('*** climatologyMapMeltAntarctic requires ' + 'config_land_ice_flux_mode \n' + ' to be standalone or coupled. Otherwise, no ' + 'melt rates are available \n' + ' for plotting.') + + # }}} + + def run(self): # {{{ + """ + Compute climatologie sof melt rates from ACME/MPAS output + + This function has been overridden to load ``landIceMask`` from a + restart file for later use in masking the melt rate. It then simply + calls the run function from + + Authors + ------- + Xylar Asay-Davis + """ + + # first, load the land-ice mask from the restart file + dsLandIceMask = xr.open_dataset(self.restartFileName) + dsLandIceMask = mpas_xarray.subset_variables(dsLandIceMask, + ['landIceMask']) + dsLandIceMask = dsLandIceMask.isel(Time=0) + self.landIceMask = dsLandIceMask.landIceMask > 0. + + # then, call run from the base class (ClimatologyMapOcean), which will + # perform the main function of the task + super(MpasClimatologyMeltAntarctic, self).run() + + # }}} + + def customize_climatology(self, climatology): # {{{ + """ + A function that can be overridden by child classes for purposes of + making custom changes to the climatology data set after slicing and + masking and before remapping. By default, a field 'validMask' is added + to the climatology. After remapping, this field indicates which cells + on the remapped grid came from valid cells on the MPAS grid, useful for + plotting a land mask (for example). + + Parameters + ---------- + climatology : ``xarray.Dataset`` object + the climatology data set + + Returns + ------- + climatology : ``xarray.Dataset`` object + the modified climatology data set + + Authors + ------- + Xylar Asay-Davis + """ + + # perform the custimization in MpasClimatology (adding a 'validMask') + climatology = \ + super(MpasClimatologyMeltAntarctic, self).customize_climatology( + climatology) + + fieldName = self.variableList[0] + + # scale the field to m/yr from kg/m^2/s and mask out non-land-ice areas + climatology[fieldName] = \ + constants.sec_per_year/constants.rho_fw * \ + climatology[fieldName].where(self.landIceMask) + + return climatology # }}} + + # }}} + + +class ClimatologyMapMeltAntarctic(ClimatologyMapOcean): # {{{ + """ + An analysis task for comparison of antarctic melt rates against + observations + + Authors + ------- + Xylar Asay-Davis + """ + + def create_mpas_climatology(self, comparisonGridNames, seasons): # {{{ + """ + Create an MpasClimatologyMeltAntarctic task to use as a prerequisite + of this task + + comparisonGridNames : list of {'latlon', 'antarctic'}, optional + The name(s) of the comparison grid to use for remapping. + + seasons : list of str, optional + A list of seasons (keys in ``shared.constants.monthDictionary``) + to be computed. + + Authors + ------- + Xylar Asay-Davis + """ + + climatologyTask = MpasClimatologyMeltAntarctic( + config=self.config, + variableList=[self.mpasFieldName], + taskSuffix='AntarcticMelt', + componentName=self.componentName, + comparisonGridNames=comparisonGridNames, + seasons=seasons, + tags=['climatology', 'landIceCavities'], + iselValues=self.iselValues) + + return climatologyTask # }}} + + def __init__(self, config, season, comparisonGridName): # {{{ + """ + Construct the analysis task. + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + season : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'} + The name of the comparison grid that where model data an + observations are compared + + Authors + ------- + Xylar Asay-Davis + """ + + self.fieldName = 'melt' + self.fieldNameInTitle = 'Melt Rate' + self.season = season + self.comparisonGridName = comparisonGridName + + self.mpasFieldName = 'timeMonthly_avg_landIceFreshwaterFlux' + self.iselValues = None + + taskName, tags = self.get_task_name_and_tags() + + tags.extend([self.fieldName, 'landIceCavities']) + + # call the constructor from the base class (ClimatologyMapOcean) + super(ClimatologyMapMeltAntarctic, self).__init__( + config=config, + taskName=taskName, + componentName='ocean', + tags=tags) + # }}} + + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + """ + + # first, call setup_and_check from the base class + # (ClimatologyMapOcean), which will perform some common setup + super(ClimatologyMapMeltAntarctic, self).setup_and_check() + + landIceFluxMode = self.namelist.get('config_land_ice_flux_mode') + if landIceFluxMode not in ['standalone', 'coupled']: + raise ValueError('*** climatologyMapMeltAntarctic requires ' + 'config_land_ice_flux_mode \n' + ' to be standalone or coupled. Otherwise, no ' + 'melt rates are available \n' + ' for plotting.') + + observationsDirectory = build_config_full_path( + self.config, 'oceanObservations', + '{}Subdirectory'.format(self.fieldName)) + + self.obsFileName = \ + '{}/Rignot_2013_melt_rates_6000.0x6000.0km_10.0km_' \ + 'Antarctic_stereo.nc'.format(observationsDirectory) + + self.obsFieldName = 'meltRate' + + # Set appropriate figure labels for melt rates + self.observationTitleLabel = 'Observations (Rignot et al, 2013)' + self.outFileLabel = 'meltRignot' + self.unitsLabel = r'm a$^{-1}$' + + # }}} + + def _build_observational_dataset(self): # {{{ + ''' + read in the data sets for observations, and possibly rename some + variables and dimensions + + Authors + ------- + Xylar Asay-Davis + ''' + + dsObs = xr.open_mfdataset(self.obsFileName) + + # create a descriptor of the observation grid using the x/y + # coordinates + projection = get_antarctic_stereographic_projection() + obsDescriptor = ProjectionGridDescriptor.read( + projection, fileName=self.obsFileName, xVarName='x', yVarName='y') + + return dsObs, obsDescriptor # }}} + + # }}} + +# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/shared/constants/constants.py b/mpas_analysis/shared/constants/constants.py index 0d999fdba..f91df8cb8 100644 --- a/mpas_analysis/shared/constants/constants.py +++ b/mpas_analysis/shared/constants/constants.py @@ -55,4 +55,7 @@ # small value to prevent division by zero eps = 1.E-10 +# density of freshwater (kg/m^3) +rho_fw = 1000. + # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/run_analysis.py b/run_analysis.py index 07b78e23e..da7c6a145 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -57,6 +57,7 @@ def build_analysis_list(config, isSubtask): # {{{ analyses.extend(ocean.ClimatologyMapSST.create_tasks(config)) analyses.extend(ocean.ClimatologyMapMLD.create_tasks(config)) analyses.extend(ocean.ClimatologyMapSSS.create_tasks(config)) + analyses.extend(ocean.ClimatologyMapMeltAntarctic.create_tasks(config)) # Sea Ice Analyses analyses.extend(sea_ice.TimeSeriesSeaIce.create_tasks(config)) From e3e8fe07d7e5b9f90de56f16f95a62dc633312b1 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 16 Aug 2017 01:27:33 +0200 Subject: [PATCH 35/47] Add a CI test for MpasClimatology Since ncclimo has trouble with the fact that stdin is redirected to NULL, redirecting of stdin/stdout/stderr is disabled around calls to ncclimo. New data sets have been added to accommodate the test, since a full year of data is the minimum that ncclimo can handle. --- .../climatology/mpas_climatology_task.py | 2 +- mpas_analysis/test/__init__.py | 1 + mpas_analysis/test/test_mpas_climatology.py | 101 ++ .../test/test_mpas_climatology/config.GQU240 | 61 + .../test/test_mpas_climatology/mpas-o_in | 1092 +++++++++++++++++ ...st.am.timeSeriesStatsMonthly.0001-01-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-02-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-03-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-04-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-05-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-06-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-07-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-08-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-09-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-10-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-11-01.nc | Bin 0 -> 168332 bytes ...st.am.timeSeriesStatsMonthly.0001-12-01.nc | Bin 0 -> 168332 bytes .../mpaso.rst.0001-01-01_00000.nc | 1 + .../test/test_mpas_climatology/streams.ocean | 604 +++++++++ 19 files changed, 1861 insertions(+), 1 deletion(-) create mode 100644 mpas_analysis/test/test_mpas_climatology.py create mode 100644 mpas_analysis/test/test_mpas_climatology/config.GQU240 create mode 100644 mpas_analysis/test/test_mpas_climatology/mpas-o_in create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-01-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-02-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-03-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-04-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-05-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-06-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-07-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-08-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-09-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-10-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-11-01.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-12-01.nc create mode 120000 mpas_analysis/test/test_mpas_climatology/mpaso.rst.0001-01-01_00000.nc create mode 100644 mpas_analysis/test/test_mpas_climatology/streams.ocean diff --git a/mpas_analysis/shared/climatology/mpas_climatology_task.py b/mpas_analysis/shared/climatology/mpas_climatology_task.py index 16b76c052..789069aed 100644 --- a/mpas_analysis/shared/climatology/mpas_climatology_task.py +++ b/mpas_analysis/shared/climatology/mpas_climatology_task.py @@ -218,7 +218,7 @@ def run(self): # {{{ mpasMeshName = config.get('input', 'mpasMeshName') if self.seasons[0] is 'none': - seasonsToCheck = ['{:02d}'.format(month) for month in range(1, 13)] + seasonsToCheck = constants.abrevMonthNames else: seasonsToCheck = self.seasons diff --git a/mpas_analysis/test/__init__.py b/mpas_analysis/test/__init__.py index 81d0f563d..e22c29e23 100644 --- a/mpas_analysis/test/__init__.py +++ b/mpas_analysis/test/__init__.py @@ -59,6 +59,7 @@ def loaddatadir(request, tmpdir): class TestCase(unittest.TestCase): + def assertEqual(self, a1, a2): assert a1 == a2 or (a1 != a1 and a2 != a2) diff --git a/mpas_analysis/test/test_mpas_climatology.py b/mpas_analysis/test/test_mpas_climatology.py new file mode 100644 index 000000000..53ce0e2e3 --- /dev/null +++ b/mpas_analysis/test/test_mpas_climatology.py @@ -0,0 +1,101 @@ +""" +Unit test infrastructure for climatologies. + +Xylar Asay-Davis +04/11/2017 +""" + +import pytest +import tempfile +import shutil +import os +from mpas_analysis.test import TestCase, loaddatadir +from mpas_analysis.configuration.MpasAnalysisConfigParser \ + import MpasAnalysisConfigParser +from mpas_analysis.shared.climatology import MpasClimatology, \ + get_comparison_descriptor +from mpas_analysis.shared.constants import constants + + +@pytest.mark.usefixtures("loaddatadir") +class TestMpasClimatology(TestCase): + + def setUp(self): + # Create a temporary directory + self.test_dir = tempfile.mkdtemp() + + def tearDown(self): + # Remove the directory after the test + shutil.rmtree(self.test_dir) + + def setup_config(self): + config = MpasAnalysisConfigParser() + config.read('{}/config.GQU240'.format(self.datadir)) + config.set('input', 'baseDirectory', str(self.datadir)) + config.set('output', 'baseDirectory', str(self.test_dir)) + return config + + def setup_climatology(self, config, seasons, comparisonGridNames=None): + variableList = ['timeMonthly_avg_ssh', 'timeMonthly_avg_tThreshMLD'] + climatologyTask = \ + MpasClimatology(config=config, + variableList=variableList, + taskSuffix='SSH_MLD', + componentName='ocean', + comparisonGridNames=comparisonGridNames, + seasons=seasons, + tags=['climatology', 'ssh', 'mld']) + + climatologyTask.setup_and_check() + + climatologyTask.run() + + return climatologyTask + + def test_seasons_none(self): + config = self.setup_config() + climatologyTask = \ + self.setup_climatology(config=config, + seasons=['none']) + + for month in constants.abrevMonthNames: + fileName = climatologyTask.get_ncclimo_file_name( + season=month, stage='unmasked') + assert os.path.exists(fileName) + + def test_seasons(self): + config = self.setup_config() + seasons = ['JFM', 'JAS', 'FM', 'ON', 'ANN'] + climatologyTask = \ + self.setup_climatology(config=config, + seasons=seasons) + + for season in seasons: + fileName = climatologyTask.get_ncclimo_file_name( + season=season, stage='unmasked') + assert os.path.exists(fileName) + + def test_remap(self): + config = self.setup_config() + seasons = ['JFM', 'JAS', 'FM', 'ON', 'ANN'] + comparisonGridNames = ['latlon', 'antarctic'] + climatologyTask = \ + self.setup_climatology(config=config, + seasons=seasons, + comparisonGridNames=comparisonGridNames) + + for season in seasons: + fileName = climatologyTask.get_ncclimo_file_name( + season=season, stage='masked') + assert os.path.exists(fileName) + + for comparisonGridName in comparisonGridNames: + comparisonDescriptor = \ + get_comparison_descriptor(config, comparisonGridName) + fileName = climatologyTask.get_ncclimo_file_name( + season=season, stage='remapped', + comparisonDescriptor=comparisonDescriptor) + assert os.path.exists(fileName) + + +# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/test/test_mpas_climatology/config.GQU240 b/mpas_analysis/test/test_mpas_climatology/config.GQU240 new file mode 100644 index 000000000..35028a656 --- /dev/null +++ b/mpas_analysis/test/test_mpas_climatology/config.GQU240 @@ -0,0 +1,61 @@ +[execute] +parallelTaskCount = 1 + +# the parallelism mode in ncclimo ("serial" or "bck") +# Set this to "bck" (background parallelism) if running on a machine that can +# handle 12 simultaneous processes, one for each monthly climatology. +ncclimoParallelMode = serial + +[input] +# subdirectory containing restart files +runSubdirectory = . +# subdirectory for ocean history files +oceanHistorySubdirectory = . +# subdirectory for sea ice history files +seaIceHistorySubdirectory = . + +# names of namelist and streams files, either a path relative to baseDirectory +# or an absolute path. +oceanNamelistFileName = mpas-o_in +oceanStreamsFileName = streams.ocean +seaIceNamelistFileName = mpas-cice_in +seaIceStreamsFileName = streams.cice + +# names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) +mpasMeshName = oQU240 + + +[output] +# subdirectories within baseDirectory for analysis output +plotsSubdirectory = plots +logsSubdirectory = logs +mpasClimatologySubdirectory = clim/mpas +mappingSubdirectory = mapping + + +[climatology] +# the first year over which to average climatalogies +startYear = 1 +# the last year over which to average climatalogies +endYear = 1 + +# The comparison lat/lon grid resolution in degrees +comparisonLatResolution = 2 +comparisonLonResolution = 2 + +# The comparison Antarctic polar stereographic grid size and resolution in km +comparisonAntarcticStereoWidth = 6000. +comparisonAntarcticStereoResolution = 100. + +# interpolation order for model and observation results. Likely values are +# 'bilinear', 'neareststod' (nearest neighbor) or 'conserve' +mpasInterpolationMethod = bilinear + +# should remapping be performed with ncremap or with the Remapper class +# directly in MPAS-Analysis +useNcremap = True + +# The minimum weight of a destination cell after remapping. Any cell with +# weights lower than this threshold will therefore be masked out. +renormalizationThreshold = 0.01 + diff --git a/mpas_analysis/test/test_mpas_climatology/mpas-o_in b/mpas_analysis/test/test_mpas_climatology/mpas-o_in new file mode 100644 index 000000000..0d8ba89a3 --- /dev/null +++ b/mpas_analysis/test/test_mpas_climatology/mpas-o_in @@ -0,0 +1,1092 @@ +&run_modes + config_ocean_run_mode = 'forward' +/ +&time_management + config_calendar_type = 'gregorian_noleap' + config_do_restart = .true. + config_restart_timestamp_name = 'rpointer.ocn' + config_start_time = 'file' +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 + config_write_output_on_startup = .true. +/ +&decomposition + config_block_decomp_file_prefix = '/project/projectdirs/acme/inputdata/ocn/mpas-o/oQU240/mpas-o.graph.info.151209.part.' + config_explicit_proc_decomp = .false. + config_num_halos = 3 + config_number_of_blocks = 0 + config_proc_decomp_file_prefix = 'graph.info.part.' +/ +&init_setup + config_expand_sphere = .false. + config_init_configuration = 'none' + config_realistic_coriolis_parameter = .false. + config_vert_levels = -1 + config_vertical_grid = 'uniform' + config_write_cull_cell_mask = .true. +/ +&cvtgenerator + config_1dcvtgenerator_dzseed = 1.2 + config_1dcvtgenerator_stretch1 = 1.0770 + config_1dcvtgenerator_stretch2 = 1.0275 +/ +&init_ssh_and_landicepressure + config_iterative_init_variable = 'landIcePressure' +/ +&time_integration + config_dt = '01:00:00' + config_time_integrator = 'split_explicit' +/ +&ale_vertical_grid + config_dzdk_positive = .false. + config_max_thickness_factor = 6.0 + config_min_thickness = 1.0 + config_use_min_max_thickness = .false. + config_vert_coord_movement = 'uniform_stretching' +/ +&ale_frequency_filtered_thickness + config_highfreqthick_del2 = 100.0 + config_highfreqthick_restore_time = 30.0 + config_thickness_filter_timescale = 5.0 + config_use_freq_filtered_thickness = .false. + config_use_highfreqthick_del2 = .false. + config_use_highfreqthick_restore = .false. +/ +&partial_bottom_cells + config_alter_ics_for_pbcs = .false. + config_min_pbc_fraction = 0.10 + config_pbc_alteration_type = 'full_cell' +/ +&hmix + config_apvm_scale_factor = 0.0 + config_hmix_scalewithmesh = .false. + config_maxmeshdensity = -1.0 +/ +&hmix_del2 + config_mom_del2 = 10.0 + config_tracer_del2 = 10.0 + config_use_mom_del2 = .false. + config_use_tracer_del2 = .false. +/ +&hmix_del4 + config_mom_del4 = 2.0e14 + config_mom_del4_div_factor = 1.0 + config_tracer_del4 = 0.0 + config_use_mom_del4 = .true. + config_use_tracer_del4 = .false. +/ +&hmix_leith + config_leith_dx = 15000.0 + config_leith_parameter = 1.0 + config_leith_visc2_max = 2.5e3 + config_use_leith_del2 = .false. +/ +&mesoscale_eddy_parameterization + config_gravwavespeed_trunc = 0.3 + config_max_relative_slope = 0.01 + config_redi_bottom_layer_tapering_depth = 0.0 + config_redi_kappa = 0.0 + config_redi_surface_layer_tapering_extent = 0.0 + config_standardgm_tracer_kappa = 600.0 + config_use_redi_bottom_layer_tapering = .false. + config_use_redi_surface_layer_tapering = .false. + config_use_standardgm = .true. +/ +&hmix_del2_tensor + config_mom_del2_tensor = 10.0 + config_use_mom_del2_tensor = .false. +/ +&hmix_del4_tensor + config_mom_del4_tensor = 5.0e13 + config_use_mom_del4_tensor = .false. +/ +&rayleigh_damping + config_rayleigh_damping_coeff = 0.0 + config_rayleigh_friction = .false. +/ +&vmix + config_convective_diff = 1.0 + config_convective_visc = 1.0 +/ +&vmix_const + config_use_const_diff = .false. + config_use_const_visc = .false. + config_vert_diff = 1.0e-5 + config_vert_visc = 1.0e-4 +/ +&vmix_rich + config_bkrd_vert_diff = 1.0e-5 + config_bkrd_vert_visc = 1.0e-4 + config_rich_mix = 0.005 + config_use_rich_diff = .false. + config_use_rich_visc = .false. +/ +&vmix_tanh + config_max_diff_tanh = 2.5e-2 + config_max_visc_tanh = 2.5e-1 + config_min_diff_tanh = 1.0e-5 + config_min_visc_tanh = 1.0e-4 + config_use_tanh_diff = .false. + config_use_tanh_visc = .false. + config_zmid_tanh = -100 + config_zwidth_tanh = 100 +/ +&cvmix + config_cvmix_background_diffusion = 1.0e-5 + config_cvmix_background_viscosity = 1.0e-4 + config_cvmix_convective_basedonbvf = .true. + config_cvmix_convective_diffusion = 1.0 + config_cvmix_convective_triggerbvf = 0.0 + config_cvmix_convective_viscosity = 1.0 + config_cvmix_kpp_boundary_layer_depth = 30.0 + config_cvmix_kpp_criticalbulkrichardsonnumber = 0.25 + config_cvmix_kpp_ekmanobl = .false. + config_cvmix_kpp_interpolationomltype = 'quadratic' + config_cvmix_kpp_matching = 'SimpleShapes' + config_cvmix_kpp_monobobl = .false. + config_cvmix_kpp_stop_obl_search = 100.0 + config_cvmix_kpp_surface_layer_averaging = 5.0 + config_cvmix_kpp_surface_layer_extent = 0.1 + config_cvmix_kpp_use_enhanced_diff = .true. + config_cvmix_num_ri_smooth_loops = 2 + config_cvmix_prandtl_number = 1.0 + config_cvmix_shear_kpp_exp = 3 + config_cvmix_shear_kpp_nu_zero = 0.005 + config_cvmix_shear_kpp_ri_zero = 0.7 + config_cvmix_shear_mixing_scheme = 'KPP' + config_cvmix_shear_pp_alpha = 5.0 + config_cvmix_shear_pp_exp = 2.0 + config_cvmix_shear_pp_nu_zero = 0.005 + config_use_cvmix = .true. + config_use_cvmix_background = .true. + config_use_cvmix_convection = .true. + config_use_cvmix_double_diffusion = .false. + config_use_cvmix_fixed_boundary_layer = .false. + config_use_cvmix_kpp = .true. + config_use_cvmix_shear = .true. + config_use_cvmix_tidal_mixing = .false. + configure_cvmix_kpp_minimum_obl_under_sea_ice = 10.0 +/ +&forcing + config_flux_attenuation_coefficient = 0.001 + config_flux_attenuation_coefficient_runoff = 10.0 + config_use_bulk_thickness_flux = .true. + config_use_bulk_wind_stress = .true. +/ +&coupling + config_ssh_grad_relax_timescale = 86400.0 +/ +&shortwaveradiation + config_forcing_restart_file = 'Restart_forcing_time_stamp' + config_jerlov_water_type = 3 + config_surface_buoyancy_depth = 1 + config_sw_absorption_type = 'jerlov' +/ +&frazil_ice + config_frazil_fractional_thickness_limit = 0.1 + config_frazil_heat_of_fusion = 3.337e5 + config_frazil_ice_density = 1000.0 + config_frazil_in_open_ocean = .true. + config_frazil_land_ice_reference_salinity = 0.0 + config_frazil_maximum_depth = 100.0 + config_frazil_maximum_freezing_temperature = 0.0 + config_frazil_sea_ice_reference_salinity = 4.0 + config_frazil_under_land_ice = .true. + config_frazil_use_surface_pressure = .false. + config_specific_heat_sea_water = 3.996e3 + config_use_frazil_ice_formation = .true. +/ +&land_ice_fluxes + config_land_ice_flux_attenuation_coefficient = 10.0 + config_land_ice_flux_boundarylayerneighborweight = 0.0 + config_land_ice_flux_boundarylayerthickness = 10.0 + config_land_ice_flux_cp_ice = 2.009e3 + config_land_ice_flux_formulation = 'Jenkins' + config_land_ice_flux_isomip_gammat = 1e-4 + config_land_ice_flux_jenkins_heat_transfer_coefficient = 0.011 + config_land_ice_flux_jenkins_salt_transfer_coefficient = 3.1e-4 + config_land_ice_flux_mode = 'off' + config_land_ice_flux_rho_ice = 918 + config_land_ice_flux_rms_tidal_velocity = 5e-2 + config_land_ice_flux_topdragcoeff = 2.5e-3 + config_land_ice_flux_usehollandjenkinsadvdiff = .false. +/ +&advection + config_coef_3rd_order = 0.25 + config_horiz_tracer_adv_order = 3 + config_monotonic = .true. + config_vert_tracer_adv = 'stencil' + config_vert_tracer_adv_order = 3 +/ +&bottom_drag + config_bottom_drag_coeff = 1.0e-3 +/ +&ocean_constants + config_density0 = 1026.0 +/ +&pressure_gradient + config_common_level_weight = 0.5 + config_pressure_gradient_type = 'Jacobian_from_TS' +/ +&eos + config_eos_type = 'jm' + config_land_ice_cavity_freezing_temperature_coeff_0 = 6.22e-2 + config_land_ice_cavity_freezing_temperature_coeff_p = -7.43e-8 + config_land_ice_cavity_freezing_temperature_coeff_ps = -1.74e-10 + config_land_ice_cavity_freezing_temperature_coeff_s = -5.63e-2 + config_land_ice_cavity_freezing_temperature_reference_pressure = 0.0 + config_open_ocean_freezing_temperature_coeff_0 = -1.8 + config_open_ocean_freezing_temperature_coeff_p = 0.0 + config_open_ocean_freezing_temperature_coeff_ps = 0.0 + config_open_ocean_freezing_temperature_coeff_s = 0.0 + config_open_ocean_freezing_temperature_reference_pressure = 0.0 +/ +&eos_linear + config_eos_linear_alpha = 0.2 + config_eos_linear_beta = 0.8 + config_eos_linear_densityref = 1000.0 + config_eos_linear_sref = 35.0 + config_eos_linear_tref = 5.0 +/ +&split_explicit_ts + config_btr_dt = '0000_00:03:00' + config_btr_gam1_velwt1 = 0.5 + config_btr_gam2_sshwt1 = 1.0 + config_btr_gam3_velwt2 = 1.0 + config_btr_solve_ssh2 = .false. + config_btr_subcycle_loop_factor = 2 + config_n_bcl_iter_beg = 1 + config_n_bcl_iter_end = 2 + config_n_bcl_iter_mid = 2 + config_n_btr_cor_iter = 2 + config_n_ts_iter = 2 + config_vel_correction = .true. +/ +&testing + config_conduct_tests = .false. + config_tensor_test_function = 'sph_uCosCos' + config_test_tensors = .false. +/ +&debug + config_check_ssh_consistency = .true. + config_check_tracer_monotonicity = .false. + config_check_zlevel_consistency = .false. + config_disable_redi_horizontal_term1 = .false. + config_disable_redi_horizontal_term2 = .false. + config_disable_redi_horizontal_term3 = .false. + config_disable_redi_k33 = .false. + config_disable_thick_all_tend = .false. + config_disable_thick_hadv = .false. + config_disable_thick_sflux = .false. + config_disable_thick_vadv = .false. + config_disable_tr_adv = .false. + config_disable_tr_all_tend = .false. + config_disable_tr_hmix = .false. + config_disable_tr_nonlocalflux = .false. + config_disable_tr_sflux = .false. + config_disable_tr_vmix = .false. + config_disable_vel_all_tend = .false. + config_disable_vel_coriolis = .false. + config_disable_vel_hmix = .false. + config_disable_vel_pgrad = .false. + config_disable_vel_surface_stress = .false. + config_disable_vel_vadv = .false. + config_disable_vel_vmix = .false. + config_filter_btr_mode = .false. + config_include_ke_vertex = .false. + config_prescribe_thickness = .false. + config_prescribe_velocity = .false. + config_read_nearest_restart = .false. +/ +&constrain_haney_number + config_rx1_horiz_smooth_open_ocean_cells = 20 + config_rx1_horiz_smooth_weight = 1.0 + config_rx1_init_inner_weight = 0.1 + config_rx1_inner_iter_count = 10 + config_rx1_max = 5.0 + config_rx1_min_layer_thickness = 1.0 + config_rx1_min_levels = 3 + config_rx1_outer_iter_count = 20 + config_rx1_slope_weight = 1e-1 + config_rx1_vert_smooth_weight = 1.0 + config_rx1_zstar_weight = 1.0 + config_use_rx1_constraint = .false. +/ +&baroclinic_channel + config_baroclinic_channel_bottom_depth = 1000.0 + config_baroclinic_channel_bottom_temperature = 10.1 + config_baroclinic_channel_coriolis_parameter = -1.2e-4 + config_baroclinic_channel_gradient_width_dist = 40e3 + config_baroclinic_channel_gradient_width_frac = 0.08 + config_baroclinic_channel_salinity = 35.0 + config_baroclinic_channel_surface_temperature = 13.1 + config_baroclinic_channel_temperature_difference = 1.2 + config_baroclinic_channel_use_distances = .false. + config_baroclinic_channel_vert_levels = 20 +/ +&lock_exchange + config_lock_exchange_bottom_depth = 20.0 + config_lock_exchange_cold_temperature = 5.0 + config_lock_exchange_direction = 'y' + config_lock_exchange_isopycnal_min_thickness = 0.01 + config_lock_exchange_layer_type = 'z-level' + config_lock_exchange_salinity = 35.0 + config_lock_exchange_vert_levels = 20 + config_lock_exchange_warm_temperature = 30.0 +/ +&internal_waves + config_internal_waves_amplitude_width_dist = 50e3 + config_internal_waves_amplitude_width_frac = 0.33 + config_internal_waves_bottom_depth = 500.0 + config_internal_waves_bottom_temperature = 10.1 + config_internal_waves_isopycnal_displacement = 125.0 + config_internal_waves_layer_type = 'z-level' + config_internal_waves_salinity = 35.0 + config_internal_waves_surface_temperature = 20.1 + config_internal_waves_temperature_difference = 2.0 + config_internal_waves_use_distances = false + config_internal_waves_vert_levels = 20 +/ +&overflow + config_overflow_bottom_depth = 2000.0 + config_overflow_domain_temperature = 20.0 + config_overflow_isopycnal_min_thickness = 0.01 + config_overflow_layer_type = 'z-level' + config_overflow_plug_temperature = 10.0 + config_overflow_plug_width_dist = 20e3 + config_overflow_plug_width_frac = 0.10 + config_overflow_ridge_depth = 500.0 + config_overflow_salinity = 35.0 + config_overflow_slope_center_dist = 40e3 + config_overflow_slope_center_frac = 0.20 + config_overflow_slope_width_dist = 7e3 + config_overflow_slope_width_frac = 0.05 + config_overflow_use_distances = false + config_overflow_vert_levels = 100 +/ +&global_ocean + config_global_ocean_chlorophyll_varname = 'none' + config_global_ocean_clearsky_varname = 'none' + config_global_ocean_cull_inland_seas = .true. + config_global_ocean_deepen_critical_passages = .true. + config_global_ocean_depress_by_land_ice = .false. + config_global_ocean_depth_conversion_factor = 1.0 + config_global_ocean_depth_dimname = 'none' + config_global_ocean_depth_file = 'none' + config_global_ocean_depth_varname = 'none' + config_global_ocean_ecosys_depth_conversion_factor = 1.0 + config_global_ocean_ecosys_depth_varname = 'none' + config_global_ocean_ecosys_file = 'unknown' + config_global_ocean_ecosys_forcing_file = 'unknown' + config_global_ocean_ecosys_forcing_time_dimname = 'none' + config_global_ocean_ecosys_lat_varname = 'none' + config_global_ocean_ecosys_latlon_degrees = .true. + config_global_ocean_ecosys_lon_varname = 'none' + config_global_ocean_ecosys_method = 'bilinear_interpolation' + config_global_ocean_ecosys_ndepth_dimname = 'none' + config_global_ocean_ecosys_nlat_dimname = 'none' + config_global_ocean_ecosys_nlon_dimname = 'none' + config_global_ocean_ecosys_vert_levels = -1 + config_global_ocean_interior_restore_rate = 1.0e-7 + config_global_ocean_land_ice_topo_draft_varname = 'none' + config_global_ocean_land_ice_topo_file = 'none' + config_global_ocean_land_ice_topo_grounded_frac_varname = 'none' + config_global_ocean_land_ice_topo_ice_frac_varname = 'none' + config_global_ocean_land_ice_topo_lat_varname = 'none' + config_global_ocean_land_ice_topo_latlon_degrees = .true. + config_global_ocean_land_ice_topo_lon_varname = 'none' + config_global_ocean_land_ice_topo_nlat_dimname = 'none' + config_global_ocean_land_ice_topo_nlon_dimname = 'none' + config_global_ocean_land_ice_topo_thickness_varname = 'none' + config_global_ocean_minimum_depth = 15 + config_global_ocean_piston_velocity = 5.0e-5 + config_global_ocean_salinity_file = 'none' + config_global_ocean_salinity_varname = 'none' + config_global_ocean_smooth_ecosys_iterations = 0 + config_global_ocean_smooth_topography = .true. + config_global_ocean_smooth_ts_iterations = 0 + config_global_ocean_swdata_file = 'none' + config_global_ocean_swdata_lat_varname = 'none' + config_global_ocean_swdata_latlon_degrees = .true. + config_global_ocean_swdata_lon_varname = 'none' + config_global_ocean_swdata_method = 'bilinear_interpolation' + config_global_ocean_swdata_nlat_dimname = 'none' + config_global_ocean_swdata_nlon_dimname = 'none' + config_global_ocean_temperature_file = 'none' + config_global_ocean_temperature_varname = 'none' + config_global_ocean_topography_file = 'none' + config_global_ocean_topography_has_ocean_frac = .false. + config_global_ocean_topography_lat_varname = 'none' + config_global_ocean_topography_latlon_degrees = .true. + config_global_ocean_topography_lon_varname = 'none' + config_global_ocean_topography_method = 'bilinear_interpolation' + config_global_ocean_topography_nlat_dimname = 'none' + config_global_ocean_topography_nlon_dimname = 'none' + config_global_ocean_topography_ocean_frac_varname = 'none' + config_global_ocean_topography_varname = 'none' + config_global_ocean_tracer_depth_conversion_factor = 1.0 + config_global_ocean_tracer_depth_varname = 'none' + config_global_ocean_tracer_lat_varname = 'none' + config_global_ocean_tracer_latlon_degrees = .true. + config_global_ocean_tracer_lon_varname = 'none' + config_global_ocean_tracer_method = 'bilinear_interpolation' + config_global_ocean_tracer_ndepth_dimname = 'none' + config_global_ocean_tracer_nlat_dimname = 'none' + config_global_ocean_tracer_nlon_dimname = 'none' + config_global_ocean_tracer_vert_levels = -1 + config_global_ocean_windstress_conversion_factor = 1 + config_global_ocean_windstress_file = 'none' + config_global_ocean_windstress_lat_varname = 'none' + config_global_ocean_windstress_latlon_degrees = .true. + config_global_ocean_windstress_lon_varname = 'none' + config_global_ocean_windstress_meridional_varname = 'none' + config_global_ocean_windstress_method = 'bilinear_interpolation' + config_global_ocean_windstress_nlat_dimname = 'none' + config_global_ocean_windstress_nlon_dimname = 'none' + config_global_ocean_windstress_zonal_varname = 'none' + config_global_ocean_zenithangle_varname = 'none' +/ +&cvmix_wswsbf + config_cvmix_wswsbf_bottom_depth = 400.0 + config_cvmix_wswsbf_coriolis_parameter = 1.0e-4 + config_cvmix_wswsbf_evaporation_flux = 0.0 + config_cvmix_wswsbf_interior_salinity_restoring_rate = 1.0e-6 + config_cvmix_wswsbf_interior_temperature_restoring_rate = 1.0e-6 + config_cvmix_wswsbf_latent_heat_flux = 0.0 + config_cvmix_wswsbf_max_windstress = 0.10 + config_cvmix_wswsbf_mixed_layer_depth_salinity = 0.0 + config_cvmix_wswsbf_mixed_layer_depth_temperature = 0.0 + config_cvmix_wswsbf_mixed_layer_salinity_change = 0.0 + config_cvmix_wswsbf_mixed_layer_temperature_change = 0.0 + config_cvmix_wswsbf_rain_flux = 0.0 + config_cvmix_wswsbf_salinity_gradient = 0.0 + config_cvmix_wswsbf_salinity_gradient_mixed_layer = 0.0 + config_cvmix_wswsbf_salinity_piston_velocity = 4.0e-6 + config_cvmix_wswsbf_sensible_heat_flux = 0.0 + config_cvmix_wswsbf_shortwave_heat_flux = 0.0 + config_cvmix_wswsbf_surface_restoring_salinity = 35.0 + config_cvmix_wswsbf_surface_restoring_temperature = 15.0 + config_cvmix_wswsbf_surface_salinity = 35.0 + config_cvmix_wswsbf_surface_temperature = 15.0 + config_cvmix_wswsbf_temperature_gradient = 0.01 + config_cvmix_wswsbf_temperature_gradient_mixed_layer = 0.0 + config_cvmix_wswsbf_temperature_piston_velocity = 4.0e-6 + config_cvmix_wswsbf_vert_levels = 100 + config_cvmix_wswsbf_vertical_grid = 'uniform' +/ +&iso + config_iso_acc_wind = 0.2 + config_iso_asf_wind = -0.05 + config_iso_cont_slope_flag = .true. + config_iso_depression_center_lon = 60 + config_iso_depression_depth = 800 + config_iso_depression_flag = .true. + config_iso_depression_north_lat = -65 + config_iso_depression_south_lat = -72 + config_iso_depression_width = 480000 + config_iso_embayment_center_lat = -71 + config_iso_embayment_center_lon = 60 + config_iso_embayment_depth = 2000 + config_iso_embayment_flag = .true. + config_iso_embayment_radius = 500000 + config_iso_heat_flux_lat_mn = -53 + config_iso_heat_flux_lat_sm = -65 + config_iso_heat_flux_lat_ss = -70 + config_iso_heat_flux_middle = 10 + config_iso_heat_flux_north = -5 + config_iso_heat_flux_region1 = -5 + config_iso_heat_flux_region1_flag = false + config_iso_heat_flux_region1_radius = 300000 + config_iso_heat_flux_region2 = -5 + config_iso_heat_flux_region2_flag = false + config_iso_heat_flux_region2_radius = 240000 + config_iso_heat_flux_south = -5 + config_iso_initial_temp_h0 = 1200 + config_iso_initial_temp_h1 = 500 + config_iso_initial_temp_latn = -50 + config_iso_initial_temp_lats = -75 + config_iso_initial_temp_mt = 0.000075 + config_iso_initial_temp_t1 = 3.5 + config_iso_initial_temp_t2 = 4.0 + config_iso_main_channel_depth = 4000.0 + config_iso_max_cont_slope = 0.01 + config_iso_north_wall_lat = -50 + config_iso_plateau_center_lat = -58 + config_iso_plateau_center_lon = 300 + config_iso_plateau_flag = .true. + config_iso_plateau_height = 2000 + config_iso_plateau_radius = 200000 + config_iso_plateau_slope_width = 1000000 + config_iso_region1_center_lat = -75 + config_iso_region1_center_lon = 60 + config_iso_region2_center_lat = -71 + config_iso_region2_center_lon = 150 + config_iso_region3_center_lat = -71 + config_iso_region3_center_lon = 240 + config_iso_region4_center_lat = -71 + config_iso_region4_center_lon = 330 + config_iso_ridge_center_lon = 180 + config_iso_ridge_flag = .true. + config_iso_ridge_height = 2000.0 + config_iso_ridge_width = 2000000 + config_iso_salinity = 35.0 + config_iso_shelf_depth = 500 + config_iso_shelf_flag = .true. + config_iso_shelf_width = 120000 + config_iso_south_wall_lat = -70 + config_iso_surface_temperature_piston_velocity = 5.787e-5 + config_iso_temperature_restore_lcx1 = 600000 + config_iso_temperature_restore_lcx2 = 600000 + config_iso_temperature_restore_lcx3 = 600000 + config_iso_temperature_restore_lcx4 = 600000 + config_iso_temperature_restore_lcy1 = 600000 + config_iso_temperature_restore_lcy2 = 250000 + config_iso_temperature_restore_lcy3 = 250000 + config_iso_temperature_restore_lcy4 = 250000 + config_iso_temperature_restore_region1_flag = .true. + config_iso_temperature_restore_region2_flag = .true. + config_iso_temperature_restore_region3_flag = .true. + config_iso_temperature_restore_region4_flag = .true. + config_iso_temperature_restore_t1 = -1 + config_iso_temperature_restore_t2 = -1 + config_iso_temperature_restore_t3 = -1 + config_iso_temperature_restore_t4 = -1 + config_iso_temperature_sponge_h1 = 1000 + config_iso_temperature_sponge_l1 = 120000 + config_iso_temperature_sponge_t1 = 10 + config_iso_temperature_sponge_tau1 = 10.0 + config_iso_vert_levels = 100 + config_iso_wind_stress_max = 0.01 + config_iso_wind_trans = -65 +/ +&soma + config_soma_bottom_depth = 2500.0 + config_soma_center_latitude = 35.0 + config_soma_center_longitude = 0.0 + config_soma_density_difference = 4.0 + config_soma_density_difference_linear = 0.05 + config_soma_domain_width = 1.25e6 + config_soma_phi = 0.1 + config_soma_ref_density = 1000.0 + config_soma_restoring_temp_piston_vel = 1.0e-5 + config_soma_shelf_depth = 100.0 + config_soma_shelf_width = -0.4 + config_soma_surface_salinity = 33.0 + config_soma_surface_temp_restoring_at_center_latitude = 7.5 + config_soma_surface_temp_restoring_latitude_gradient = 0.5 + config_soma_surface_temperature = 20.0 + config_soma_thermocline_depth = 300.0 + config_soma_use_surface_temp_restoring = false + config_soma_vert_levels = 100 +/ +&ziso + config_ziso_add_easterly_wind_stress_asf = false + config_ziso_antarctic_shelf_front_width = 600000 + config_ziso_bottom_depth = 2500.0 + config_ziso_coriolis_gradient = 1e-11 + config_ziso_frazil_enable = false + config_ziso_frazil_temperature_anomaly = -3.0 + config_ziso_initial_temp_h1 = 300.0 + config_ziso_initial_temp_mt = 7.5e-5 + config_ziso_initial_temp_t1 = 6.0 + config_ziso_initial_temp_t2 = 3.6 + config_ziso_mean_restoring_temp = 3.0 + config_ziso_meridional_extent = 2.0e6 + config_ziso_reference_coriolis = -1e-4 + config_ziso_restoring_sponge_l = 8.0e4 + config_ziso_restoring_temp_dev_ta = 2.0 + config_ziso_restoring_temp_dev_tb = 2.0 + config_ziso_restoring_temp_piston_vel = 1.93e-5 + config_ziso_restoring_temp_tau = 30.0 + config_ziso_restoring_temp_ze = 1250.0 + config_ziso_shelf_depth = 500.0 + config_ziso_slope_center_position = 5.0e5 + config_ziso_slope_half_width = 1.0e5 + config_ziso_use_slopping_bathymetry = false + config_ziso_vert_levels = 100 + config_ziso_wind_stress_max = 0.2 + config_ziso_wind_stress_shelf_front_max = -0.05 + config_ziso_wind_transition_position = 800000.0 + config_ziso_zonal_extent = 1.0e6 +/ +&sub_ice_shelf_2d + config_sub_ice_shelf_2d_bottom_depth = 2000.0 + config_sub_ice_shelf_2d_bottom_salinity = 34.7 + config_sub_ice_shelf_2d_cavity_thickness = 25.0 + config_sub_ice_shelf_2d_edge_width = 15.0e3 + config_sub_ice_shelf_2d_slope_height = 500.0 + config_sub_ice_shelf_2d_surface_salinity = 34.5 + config_sub_ice_shelf_2d_temperature = 1.0 + config_sub_ice_shelf_2d_vert_levels = 20 + config_sub_ice_shelf_2d_y1 = 30.0e3 + config_sub_ice_shelf_2d_y2 = 60.0e3 +/ +&periodic_planar + config_periodic_planar_bottom_depth = 2500.0 + config_periodic_planar_velocity_strength = 1.0 + config_periodic_planar_vert_levels = 100 +/ +&ecosys_column + config_ecosys_column_bottom_depth = 6000.0 + config_ecosys_column_ecosys_filename = 'unknown' + config_ecosys_column_ts_filename = 'unknown' + config_ecosys_column_vert_levels = 100 + config_ecosys_column_vertical_grid = '100layerACMEv1' +/ +&sea_mount + config_sea_mount_bottom_depth = 5000.0 + config_sea_mount_coriolis_parameter = -1.0e-4 + config_sea_mount_density_alpha = 0.2 + config_sea_mount_density_coef_exp = 1028 + config_sea_mount_density_coef_linear = 1024 + config_sea_mount_density_depth_exp = 500 + config_sea_mount_density_depth_linear = 4500 + config_sea_mount_density_gradient_exp = 3.0 + config_sea_mount_density_gradient_linear = 0.1 + config_sea_mount_density_ref = 1028 + config_sea_mount_density_tref = 5.0 + config_sea_mount_height = 4500.0 + config_sea_mount_layer_type = 'sigma' + config_sea_mount_radius = 10.0e3 + config_sea_mount_salinity = 35.0 + config_sea_mount_stratification_type = 'exponential' + config_sea_mount_vert_levels = 10 + config_sea_mount_width = 40.0e3 +/ +&isomip + config_isomip_bottom_depth = -900.0 + config_isomip_coriolis_parameter = -1.4e-4 + config_isomip_eastern_boundary = 500e3 + config_isomip_ice_fraction1 = 1.0 + config_isomip_ice_fraction2 = 1.0 + config_isomip_ice_fraction3 = 1.0 + config_isomip_northern_boundary = 1000e3 + config_isomip_restoring_salinity = 34.4 + config_isomip_restoring_temperature = -1.9 + config_isomip_salinity = 34.4 + config_isomip_salinity_piston_velocity = 1.157e-5 + config_isomip_southern_boundary = 0.0 + config_isomip_temperature = -1.9 + config_isomip_temperature_piston_velocity = 1.157e-5 + config_isomip_vert_levels = 30 + config_isomip_vertical_level_distribution = 'constant' + config_isomip_western_boundary = 0.0 + config_isomip_y1 = 0.0 + config_isomip_y2 = 400e3 + config_isomip_y3 = 1000e3 + config_isomip_z1 = -700.0 + config_isomip_z2 = -200.0 + config_isomip_z3 = -200.0 +/ +&isomip_plus + config_isomip_plus_coriolis_parameter = -1.409e-4 + config_isomip_plus_effective_density = 1026. + config_isomip_plus_init_bot_sal = 34.5 + config_isomip_plus_init_bot_temp = -1.9 + config_isomip_plus_init_top_sal = 33.8 + config_isomip_plus_init_top_temp = -1.9 + config_isomip_plus_max_bottom_depth = -720.0 + config_isomip_plus_min_column_thickness = 10.0 + config_isomip_plus_min_ocean_fraction = 0.5 + config_isomip_plus_minimum_levels = 3 + config_isomip_plus_restore_bot_sal = 34.7 + config_isomip_plus_restore_bot_temp = 1.0 + config_isomip_plus_restore_evap_rate = 200 + config_isomip_plus_restore_rate = 10.0 + config_isomip_plus_restore_top_sal = 33.8 + config_isomip_plus_restore_top_temp = -1.9 + config_isomip_plus_restore_xmax = 800.0e3 + config_isomip_plus_restore_xmin = 790.0e3 + config_isomip_plus_topography_file = 'input_geometry_processed.nc' + config_isomip_plus_vert_levels = 36 + config_isomip_plus_vertical_level_distribution = 'constant' +/ +&tracer_forcing_activetracers + config_salinity_restoring_constant_piston_velocity = 0.0 + config_salinity_restoring_max_difference = 0.5 + config_use_activetracers = .true. + config_use_activetracers_exponential_decay = .false. + config_use_activetracers_idealage_forcing = .false. + config_use_activetracers_interior_restoring = .false. + config_use_activetracers_surface_bulk_forcing = .true. + config_use_activetracers_surface_restoring = .false. + config_use_activetracers_ttd_forcing = .false. + config_use_surface_salinity_monthly_restoring = .false. +/ +&tracer_forcing_debugtracers + config_use_debugtracers = .false. + config_use_debugtracers_exponential_decay = .false. + config_use_debugtracers_idealage_forcing = .false. + config_use_debugtracers_interior_restoring = .false. + config_use_debugtracers_surface_bulk_forcing = .false. + config_use_debugtracers_surface_restoring = .false. + config_use_debugtracers_ttd_forcing = .false. +/ +&tracer_forcing_ecosystracers + config_use_ecosystracers = .false. + config_use_ecosystracers_exponential_decay = .false. + config_use_ecosystracers_idealage_forcing = .false. + config_use_ecosystracers_interior_restoring = .false. + config_use_ecosystracers_sea_ice_coupling = .false. + config_use_ecosystracers_surface_bulk_forcing = .false. + config_use_ecosystracers_surface_restoring = .false. + config_use_ecosystracers_surface_value = .false. + config_use_ecosystracers_ttd_forcing = .false. +/ +&tracer_forcing_dmstracers + config_use_dmstracers = .false. + config_use_dmstracers_exponential_decay = .false. + config_use_dmstracers_idealage_forcing = .false. + config_use_dmstracers_interior_restoring = .false. + config_use_dmstracers_sea_ice_coupling = .false. + config_use_dmstracers_surface_bulk_forcing = .false. + config_use_dmstracers_surface_restoring = .false. + config_use_dmstracers_surface_value = .false. + config_use_dmstracers_ttd_forcing = .false. +/ +&tracer_forcing_macromoleculestracers + config_use_macromoleculestracers = .false. + config_use_macromoleculestracers_exponential_decay = .false. + config_use_macromoleculestracers_idealage_forcing = .false. + config_use_macromoleculestracers_interior_restoring = .false. + config_use_macromoleculestracers_sea_ice_coupling = .false. + config_use_macromoleculestracers_surface_bulk_forcing = .false. + config_use_macromoleculestracers_surface_restoring = .false. + config_use_macromoleculestracers_surface_value = .false. + config_use_macromoleculestracers_ttd_forcing = .false. +/ +&am_globalstats + config_am_globalstats_compute_interval = 'output_interval' + config_am_globalstats_compute_on_startup = .true. + config_am_globalstats_directory = 'analysis_members' + config_am_globalstats_enable = .true. + config_am_globalstats_output_stream = 'globalStatsOutput' + config_am_globalstats_text_file = .false. + config_am_globalstats_write_on_startup = .true. +/ +&am_surfaceareaweightedaverages + config_am_surfaceareaweightedaverages_compute_interval = '0000-00-00_01:00:00' + config_am_surfaceareaweightedaverages_compute_on_startup = .true. + config_am_surfaceareaweightedaverages_enable = .true. + config_am_surfaceareaweightedaverages_output_stream = 'surfaceAreaWeightedAveragesOutput' + config_am_surfaceareaweightedaverages_write_on_startup = .true. +/ +&am_watermasscensus + config_am_watermasscensus_compute_interval = '0000-00-00_01:00:00' + config_am_watermasscensus_compute_on_startup = .true. + config_am_watermasscensus_enable = .false. + config_am_watermasscensus_maxsalinity = 37.0 + config_am_watermasscensus_maxtemperature = 30.0 + config_am_watermasscensus_minsalinity = 32.0 + config_am_watermasscensus_mintemperature = -2.0 + config_am_watermasscensus_output_stream = 'waterMassCensusOutput' + config_am_watermasscensus_write_on_startup = .true. +/ +&am_layervolumeweightedaverage + config_am_layervolumeweightedaverage_compute_interval = '0000-00-00_01:00:00' + config_am_layervolumeweightedaverage_compute_on_startup = .true. + config_am_layervolumeweightedaverage_enable = .true. + config_am_layervolumeweightedaverage_output_stream = 'layerVolumeWeightedAverageOutput' + config_am_layervolumeweightedaverage_write_on_startup = .true. +/ +&am_zonalmean + config_am_zonalmean_compute_interval = '0000-00-00_01:00:00' + config_am_zonalmean_compute_on_startup = .true. + config_am_zonalmean_enable = .false. + config_am_zonalmean_max_bin = -1.0e34 + config_am_zonalmean_min_bin = -1.0e34 + config_am_zonalmean_num_bins = 180 + config_am_zonalmean_output_stream = 'zonalMeanOutput' + config_am_zonalmean_write_on_startup = .true. +/ +&am_okuboweiss + config_am_okuboweiss_compute_eddy_census = .true. + config_am_okuboweiss_compute_interval = '0000-00-00_01:00:00' + config_am_okuboweiss_compute_on_startup = .true. + config_am_okuboweiss_directory = 'analysis_members' + config_am_okuboweiss_eddy_min_cells = 20 + config_am_okuboweiss_enable = .false. + config_am_okuboweiss_lambda2_normalization = 1e-10 + config_am_okuboweiss_normalization = 1e-10 + config_am_okuboweiss_output_stream = 'okuboWeissOutput' + config_am_okuboweiss_threshold_value = -0.2 + config_am_okuboweiss_use_lat_lon_coords = .true. + config_am_okuboweiss_write_on_startup = .true. +/ +&am_meridionalheattransport + config_am_meridionalheattransport_compute_interval = '0000-00-00_01:00:00' + config_am_meridionalheattransport_compute_on_startup = .true. + config_am_meridionalheattransport_enable = .true. + config_am_meridionalheattransport_max_bin = -1.0e34 + config_am_meridionalheattransport_min_bin = -1.0e34 + config_am_meridionalheattransport_num_bins = 180 + config_am_meridionalheattransport_output_stream = 'meridionalHeatTransportOutput' + config_am_meridionalheattransport_region_group = '' + config_am_meridionalheattransport_write_on_startup = .true. +/ +&am_testcomputeinterval + config_am_testcomputeinterval_compute_interval = '00-00-01_00:00:00' + config_am_testcomputeinterval_compute_on_startup = .true. + config_am_testcomputeinterval_enable = .false. + config_am_testcomputeinterval_output_stream = 'testComputeIntervalOutput' + config_am_testcomputeinterval_write_on_startup = .true. +/ +&am_highfrequencyoutput + config_am_highfrequencyoutput_compute_interval = 'output_interval' + config_am_highfrequencyoutput_compute_on_startup = .false. + config_am_highfrequencyoutput_enable = .true. + config_am_highfrequencyoutput_output_stream = 'highFrequencyOutput' + config_am_highfrequencyoutput_write_on_startup = .false. +/ +&am_timefilters + config_am_timefilters_compute_cell_centered_values = .true. + config_am_timefilters_compute_interval = 'dt' + config_am_timefilters_compute_on_startup = .true. + config_am_timefilters_enable = .false. + config_am_timefilters_initialize_filters = .true. + config_am_timefilters_output_stream = 'timeFiltersOutput' + config_am_timefilters_restart_stream = 'timeFiltersRestart' + config_am_timefilters_tau = '90_00:00:00' + config_am_timefilters_write_on_startup = .true. +/ +&am_lagrparttrack + config_am_lagrparttrack_compute_interval = 'dt' + config_am_lagrparttrack_compute_on_startup = .false. + config_am_lagrparttrack_enable = .false. + config_am_lagrparttrack_filter_number = 0 + config_am_lagrparttrack_input_stream = 'lagrPartTrackInput' + config_am_lagrparttrack_output_stream = 'lagrPartTrackOutput' + config_am_lagrparttrack_region_stream = 'lagrPartTrackRegions' + config_am_lagrparttrack_reset_criteria = 'none' + config_am_lagrparttrack_reset_global_timestamp = '0000_00:00:00' + config_am_lagrparttrack_reset_if_inside_region = .false. + config_am_lagrparttrack_reset_if_outside_region = .false. + config_am_lagrparttrack_restart_stream = 'lagrPartTrackRestart' + config_am_lagrparttrack_write_on_startup = .true. +/ +&am_eliassenpalm + config_am_eliassenpalm_compute_interval = 'output_interval' + config_am_eliassenpalm_compute_on_startup = .true. + config_am_eliassenpalm_debug = .false. + config_am_eliassenpalm_enable = .false. + config_am_eliassenpalm_nbuoyancylayers = 45 + config_am_eliassenpalm_output_stream = 'eliassenPalmOutput' + config_am_eliassenpalm_restart_stream = 'eliassenPalmRestart' + config_am_eliassenpalm_rhomax_buoycoor = 1080 + config_am_eliassenpalm_rhomin_buoycoor = 900 + config_am_eliassenpalm_write_on_startup = .true. +/ +&am_mixedlayerdepths + config_am_mixedlayerdepths_compute_interval = '0000-00-00_01:00:00' + config_am_mixedlayerdepths_compute_on_startup = .true. + config_am_mixedlayerdepths_crit_dens_threshold = 0.03 + config_am_mixedlayerdepths_crit_temp_threshold = 0.2 + config_am_mixedlayerdepths_den_gradient_threshold = 5E-8 + config_am_mixedlayerdepths_dgradient = .true. + config_am_mixedlayerdepths_dthreshold = .true. + config_am_mixedlayerdepths_enable = .true. + config_am_mixedlayerdepths_interp_method = 1 + config_am_mixedlayerdepths_output_stream = 'mixedLayerDepthsOutput' + config_am_mixedlayerdepths_reference_pressure = 1.0E5 + config_am_mixedlayerdepths_temp_gradient_threshold = 5E-7 + config_am_mixedlayerdepths_tgradient = .true. + config_am_mixedlayerdepths_tthreshold = .true. + config_am_mixedlayerdepths_write_on_startup = .true. +/ +&am_regionalstatsdaily + config_am_regionalstatsdaily_1d_weighting_field = 'areaCell' + config_am_regionalstatsdaily_1d_weighting_function = 'mul' + config_am_regionalstatsdaily_2d_weighting_field = 'volumeCell' + config_am_regionalstatsdaily_2d_weighting_function = 'mul' + config_am_regionalstatsdaily_compute_interval = 'output_interval' + config_am_regionalstatsdaily_compute_on_startup = .false. + config_am_regionalstatsdaily_enable = .false. + config_am_regionalstatsdaily_input_stream = 'regionalMasksInput' + config_am_regionalstatsdaily_operation = 'avg' + config_am_regionalstatsdaily_output_stream = 'regionalStatsDailyOutput' + config_am_regionalstatsdaily_region_group = 'all' + config_am_regionalstatsdaily_region_type = 'cell' + config_am_regionalstatsdaily_restart_stream = 'regionalMasksInput' + config_am_regionalstatsdaily_vertical_dimension = 'nVertLevels' + config_am_regionalstatsdaily_vertical_mask = 'cellMask' + config_am_regionalstatsdaily_write_on_startup = .false. +/ +&am_regionalstatsweekly + config_am_regionalstatsweekly_1d_weighting_field = 'areaCell' + config_am_regionalstatsweekly_1d_weighting_function = 'mul' + config_am_regionalstatsweekly_2d_weighting_field = 'volumeCell' + config_am_regionalstatsweekly_2d_weighting_function = 'mul' + config_am_regionalstatsweekly_compute_interval = 'output_interval' + config_am_regionalstatsweekly_compute_on_startup = .false. + config_am_regionalstatsweekly_enable = .false. + config_am_regionalstatsweekly_input_stream = 'regionalMasksInput' + config_am_regionalstatsweekly_operation = 'avg' + config_am_regionalstatsweekly_output_stream = 'regionalStatsWeeklyOutput' + config_am_regionalstatsweekly_region_group = 'all' + config_am_regionalstatsweekly_region_type = 'cell' + config_am_regionalstatsweekly_restart_stream = 'regionalMasksInput' + config_am_regionalstatsweekly_vertical_dimension = 'nVertLevels' + config_am_regionalstatsweekly_vertical_mask = 'cellMask' + config_am_regionalstatsweekly_write_on_startup = .false. +/ +&am_regionalstatsmonthly + config_am_regionalstatsmonthly_1d_weighting_field = 'areaCell' + config_am_regionalstatsmonthly_1d_weighting_function = 'mul' + config_am_regionalstatsmonthly_2d_weighting_field = 'volumeCell' + config_am_regionalstatsmonthly_2d_weighting_function = 'mul' + config_am_regionalstatsmonthly_compute_interval = 'output_interval' + config_am_regionalstatsmonthly_compute_on_startup = .false. + config_am_regionalstatsmonthly_enable = .false. + config_am_regionalstatsmonthly_input_stream = 'regionalMasksInput' + config_am_regionalstatsmonthly_operation = 'avg' + config_am_regionalstatsmonthly_output_stream = 'regionalStatsMonthlyOutput' + config_am_regionalstatsmonthly_region_group = 'all' + config_am_regionalstatsmonthly_region_type = 'cell' + config_am_regionalstatsmonthly_restart_stream = 'regionalMasksInput' + config_am_regionalstatsmonthly_vertical_dimension = 'nVertLevels' + config_am_regionalstatsmonthly_vertical_mask = 'cellMask' + config_am_regionalstatsmonthly_write_on_startup = .false. +/ +&am_regionalstatscustom + config_am_regionalstatscustom_1d_weighting_field = 'areaCell' + config_am_regionalstatscustom_1d_weighting_function = 'mul' + config_am_regionalstatscustom_2d_weighting_field = 'volumeCell' + config_am_regionalstatscustom_2d_weighting_function = 'mul' + config_am_regionalstatscustom_compute_interval = 'output_interval' + config_am_regionalstatscustom_compute_on_startup = .false. + config_am_regionalstatscustom_enable = .false. + config_am_regionalstatscustom_input_stream = 'regionalMasksInput' + config_am_regionalstatscustom_operation = 'avg' + config_am_regionalstatscustom_output_stream = 'regionalStatsCustomOutput' + config_am_regionalstatscustom_region_group = 'all' + config_am_regionalstatscustom_region_type = 'cell' + config_am_regionalstatscustom_restart_stream = 'regionalMasksInput' + config_am_regionalstatscustom_vertical_dimension = 'nVertLevels' + config_am_regionalstatscustom_vertical_mask = 'cellMask' + config_am_regionalstatscustom_write_on_startup = .false. +/ +&am_timeseriesstatsdaily + config_am_timeseriesstatsdaily_backward_output_offset = '00-00-01_00:00:00' + config_am_timeseriesstatsdaily_compute_interval = '00-00-00_01:00:00' + config_am_timeseriesstatsdaily_compute_on_startup = .false. + config_am_timeseriesstatsdaily_duration_intervals = 'repeat_interval' + config_am_timeseriesstatsdaily_enable = .false. + config_am_timeseriesstatsdaily_operation = 'avg' + config_am_timeseriesstatsdaily_output_stream = 'timeSeriesStatsDailyOutput' + config_am_timeseriesstatsdaily_reference_times = 'initial_time' + config_am_timeseriesstatsdaily_repeat_intervals = 'reset_interval' + config_am_timeseriesstatsdaily_reset_intervals = '00-00-01_00:00:00' + config_am_timeseriesstatsdaily_restart_stream = 'timeSeriesStatsDailyRestart' + config_am_timeseriesstatsdaily_write_on_startup = .false. +/ +&am_timeseriesstatsmonthly + config_am_timeseriesstatsmonthly_backward_output_offset = '00-01-00_00:00:00' + config_am_timeseriesstatsmonthly_compute_interval = '00-00-00_01:00:00' + config_am_timeseriesstatsmonthly_compute_on_startup = .false. + config_am_timeseriesstatsmonthly_duration_intervals = 'repeat_interval' + config_am_timeseriesstatsmonthly_enable = .true. + config_am_timeseriesstatsmonthly_operation = 'avg' + config_am_timeseriesstatsmonthly_output_stream = 'timeSeriesStatsMonthlyOutput' + config_am_timeseriesstatsmonthly_reference_times = 'initial_time' + config_am_timeseriesstatsmonthly_repeat_intervals = 'reset_interval' + config_am_timeseriesstatsmonthly_reset_intervals = '00-01-00_00:00:00' + config_am_timeseriesstatsmonthly_restart_stream = 'timeSeriesStatsMonthlyRestart' + config_am_timeseriesstatsmonthly_write_on_startup = .false. +/ +&am_timeseriesstatsclimatology + config_am_timeseriesstatsclimatology_backward_output_offset = '00-03-00_00:00:00' + config_am_timeseriesstatsclimatology_compute_interval = '00-00-00_01:00:00' + config_am_timeseriesstatsclimatology_compute_on_startup = .false. + config_am_timeseriesstatsclimatology_duration_intervals = '00-03-00_00:00:00;00-03-00_00:00:00;00-03-00_00:00:00;00-03-00_00:00:00' + config_am_timeseriesstatsclimatology_enable = .false. + config_am_timeseriesstatsclimatology_operation = 'avg' + config_am_timeseriesstatsclimatology_output_stream = 'timeSeriesStatsClimatologyOutput' + config_am_timeseriesstatsclimatology_reference_times = '00-03-01_00:00:00;00-06-01_00:00:00;00-09-01_00:00:00;00-12-01_00:00:00' + config_am_timeseriesstatsclimatology_repeat_intervals = '01-00-00_00:00:00;01-00-00_00:00:00;01-00-00_00:00:00;01-00-00_00:00:00' + config_am_timeseriesstatsclimatology_reset_intervals = '1000-00-00_00:00:00;1000-00-00_00:00:00;1000-00-00_00:00:00;1000-00-00_00:00:00' + config_am_timeseriesstatsclimatology_restart_stream = 'timeSeriesStatsClimatologyRestart' + config_am_timeseriesstatsclimatology_write_on_startup = .false. +/ +&am_timeseriesstatscustom + config_am_timeseriesstatscustom_backward_output_offset = '00-00-01_00:00:00' + config_am_timeseriesstatscustom_compute_interval = '00-00-00_01:00:00' + config_am_timeseriesstatscustom_compute_on_startup = .false. + config_am_timeseriesstatscustom_duration_intervals = 'repeat_interval' + config_am_timeseriesstatscustom_enable = .false. + config_am_timeseriesstatscustom_operation = 'avg' + config_am_timeseriesstatscustom_output_stream = 'timeSeriesStatsCustomOutput' + config_am_timeseriesstatscustom_reference_times = 'initial_time' + config_am_timeseriesstatscustom_repeat_intervals = 'reset_interval' + config_am_timeseriesstatscustom_reset_intervals = '00-00-07_00:00:00' + config_am_timeseriesstatscustom_restart_stream = 'timeSeriesStatsCustomRestart' + config_am_timeseriesstatscustom_write_on_startup = .false. +/ +&am_pointwisestats + config_am_pointwisestats_compute_interval = 'output_interval' + config_am_pointwisestats_compute_on_startup = .true. + config_am_pointwisestats_enable = .false. + config_am_pointwisestats_output_stream = 'pointwiseStatsOutput' + config_am_pointwisestats_write_on_startup = .true. +/ +&am_debugdiagnostics + config_am_debugdiagnostics_check_state = .true. + config_am_debugdiagnostics_compute_interval = 'dt' + config_am_debugdiagnostics_compute_on_startup = .true. + config_am_debugdiagnostics_enable = .false. + config_am_debugdiagnostics_output_stream = 'debugDiagnosticsOutput' + config_am_debugdiagnostics_write_on_startup = .false. +/ +&am_rpncalculator + config_am_rpncalculator_compute_interval = '0010-00-00_00:00:00' + config_am_rpncalculator_compute_on_startup = .true. + config_am_rpncalculator_enable = .false. + config_am_rpncalculator_expression_1 = 'a b *' + config_am_rpncalculator_expression_2 = 'none' + config_am_rpncalculator_expression_3 = 'none' + config_am_rpncalculator_expression_4 = 'none' + config_am_rpncalculator_output_name_1 = 'volumeCell' + config_am_rpncalculator_output_name_2 = 'none' + config_am_rpncalculator_output_name_3 = 'none' + config_am_rpncalculator_output_name_4 = 'none' + config_am_rpncalculator_output_stream = 'none' + config_am_rpncalculator_variable_a = 'layerThickness' + config_am_rpncalculator_variable_b = 'areaCell' + config_am_rpncalculator_variable_c = 'none' + config_am_rpncalculator_variable_d = 'none' + config_am_rpncalculator_variable_e = 'none' + config_am_rpncalculator_variable_f = 'none' + config_am_rpncalculator_variable_g = 'none' + config_am_rpncalculator_variable_h = 'none' + config_am_rpncalculator_write_on_startup = .false. +/ +&am_transecttransport + config_am_transecttransport_compute_interval = 'output_interval' + config_am_transecttransport_compute_on_startup = .true. + config_am_transecttransport_enable = .false. + config_am_transecttransport_output_stream = 'transectTransportOutput' + config_am_transecttransport_transect_group = 'all' + config_am_transecttransport_write_on_startup = .true. +/ +&am_eddyproductvariables + config_am_eddyproductvariables_compute_interval = 'dt' + config_am_eddyproductvariables_compute_on_startup = .true. + config_am_eddyproductvariables_enable = .false. + config_am_eddyproductvariables_output_stream = 'eddyProductVariablesOutput' + config_am_eddyproductvariables_write_on_startup = .false. +/ +&am_mocstreamfunction + config_am_mocstreamfunction_compute_interval = 'output_interval' + config_am_mocstreamfunction_compute_on_startup = .true. + config_am_mocstreamfunction_enable = .false. + config_am_mocstreamfunction_max_bin = -1.0e34 + config_am_mocstreamfunction_min_bin = -1.0e34 + config_am_mocstreamfunction_normal_velocity_value = 'normalVelocity' + config_am_mocstreamfunction_num_bins = 180 + config_am_mocstreamfunction_output_stream = 'mocStreamfunctionOutput' + config_am_mocstreamfunction_region_group = 'all' + config_am_mocstreamfunction_transect_group = 'all' + config_am_mocstreamfunction_vertical_velocity_value = 'vertVelocityTop' + config_am_mocstreamfunction_write_on_startup = .true. +/ diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-01-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-01-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..37a050ac3de9cd8ac0c9a863498cbefc10c53a23 GIT binary patch literal 168332 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
t=;@|Rw@ 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%0AHId$V?`TQo)To=a~a>xSnV0?vEc-|1reIIAj z%B7)-k6`($ybMKK0p@AA_p99K=#Xa28t&2Xkf8XA`>DCMQ*;Hypr|R_+Vrmu(f91% zO*a>QqR(NEU;d#vVqEf5c-c7~64mhdQTd)O5=H47;RoT|IG6Y_DOsndIHX2xzGAf_3CxgY)%=8S{KR!i@8{)@(Ez|TTPo$ag z!&J22af=QzJO}%$|ELP{N|O6xkIPlV6uG+ztvwZvUsy5c$b3Qmk>GhC83fy!9mDyaFrJW6dMPMvt0^nU z#B;t+S} zny+j!e{RBD&rcl9IuCQF*z2Dip~8KBvvP+X-+;M}*{u1{FcO_#plCEi@$P_XkDcAT#vRwS94KM zZq5R9x23h6?tY7TLv(#N4r31J_4NvhB&`4JN{g4D$G-hqMje?tahMoc9#V}ggbB7F zw$=QHFv)*D^p){6%;-|uME%5kx9mG={>o!8^HD4>l=n0=dx{Q?&tM)o(mLdg=dvv# zq3J6pBcWMrw@SR+2^y9cr*8hjzI5p>jccfeQL?E7CR^xa}!gpM_lIys7aM71N?*2P<^L~7DBMdxvKnBe>oy0aqyQ#s1dPjCK& zHsOpj^6NPFmJuefVw?>vtC4DreYc5)TImweaT#L4de7;U&I)4YU5u2jgCj9juyi}i z*PNKMKKNTMfs2@zU;T3}G7KgX`8fHHJ|qV3R18FtTM^@wCwhMRGhu$$=3llHNtn90 zExvo=0Zd6=5PD^UdE0TG5eazR`=lLF#ua)Ta-M5UBj5_cVnW=-)HT!-cI~pdY^0WNtmI1S97+nEU5cpWS?qrET-Fk{gWB_S-$!@9bOGHvt z0r%O=yb$W>i&K47kCXxIevMQTE12C)Wj5zv2KPz@MFinWDC z{!uJqo*2x+jo0rBe2Thtfz{y~A<9gdU+6FRee6Y#}x7?1Je@W`uf_ z$)E7eBbjim)mfGmq-va<9MaL*NF>l|%<*VYCp5WLw@#nebeX>0$} zpC(9=otwwh$PJ?p!o>h&99Mf@YVHRzb0-^Q{?U)D+qqawAH^Y+ zGR}ZcPu?Mu>-(%PjV>b%P0CD_WnZM@|J`w5j|DQ|8h)^OZ?}aqK%8zSb+C}<0FY|1_aHF%H0k+)dEs!dC`0Iq2r^v)8d1tOT1{se& zAD`q^Kx)k$q>bcQWERZ#<=r1ebbW@RZf!jm$&V!kTN{KSwUuuEA4ye6FON(tRqX>( zlv^y=&vG0YvYwP_=(~-S^6$!!sZS!UkjDYsPrL{XV4!vGKxit9`U;; z{x0F?SEuzVQ!P?5TIXjjBu8jzeTb|7Ekd79bn7^lA{o8P&4vSBNXcP*&t`!lQsO!x z*HqksBwszd5y|L=l#jGu5`Hv-?D$gO=?2py)5)To+7}_n`0a$JeD5D*yPeX&8TJC% zu@@H(B{rdpHlH?lw=0n9=AokU+dfFS=m`ClMtvkdHxmDJmIKM&3RvWgc!7Xr*=*A1 z0#cp7@$nniv`{fiBWc$xv>-%31bou$yJyi5P$oxnw zYfYayGPBrM$Szfc?1Zv+S1^!b>OKkpt2;DIZeo7)QqZ zDmI_9H;~b{v401DQzPTnkz7&RY-E)4>G5})WMq7nL3wP-2kFrd=r3k|L58oS#upc! zAtQB@&Mlo|$lPJPU)sYOnR8x0(LSMqOi!^0v53nc98|==}z1c|1_M+-~I~}?RFFnpJ6(A$y|8As>mLPpy zCL@lH1teqC;b+-agH#V%@d`cFM4|%JA^ktA5sKDzs3IFdLa*2l>s_NoVwE-z?%kI} zrv5G|qIC$F&JCl}@57LtH$@d?yd$y;OL?PThgJ^if%1oF71XHjjzi!OUNn8fMkqiZ#;d!8|gAx{URh7U#vJuvbVW(;o-IOpM_vs=U&LLUPw)qk(MI^%?xM)FMj?SO>7<~8y zem$SvBlP+=kOK3)z&}~3NG83Y_-XGfy5OKvJc6c>cC`PT?C~I^t8!F0>-Hn0!#I}D zYT=6Xpa0i;>3}XWy5hm74(lgmyzcA9)px+Z@%9s>_VFFMB<#j)FKh8sOwbsvXCHK=-mq8gXrvwfxa;YPb5bl z@#6LB7!qp{Ag8EfLb}W$-zOT>k-qUr<}dtyX#U)9=p?891gOy|-WV-~E+A zdVI3A-`9kZh?ad$uDTu)x~xajFp`dhj0Ug7zmP-9{5%g{L{cNgCsl8a>B7)OsyF-5 zVh2+9Iw004^AM?>^nGh7tAUiN`K#h8JP-=ZS@_a;2B|z1l;vdCLE1??+nnRpNay~c z&~Qm(r0(MUY-Vsrs=cXC4!x2^%4E)Yyhq+6$zqOQ>^~Bb zd|`iTfy@`=n3Ub^PajEsmu@ibMu?mjLgzjy2yG9#WD4{oa=OWs03icJP&C;vFh zIy)R)(ujDlM8k;eRksA9cUzEQ%tw=ZM%R$;ZoaW6rw~$)?0zL}R)&yrRR6oH@knvj z>f_@IG9>x>unYOiJS6|X|F-+eT_n`3vFv(E38_W&u~9VPed^&49rs7F$mq!4e^yt# zk+M*P_z{U*q_r?V+`)Vj3A@=JxN&h4f6t_%eP%5Ya^i?uicmo!zl!XP9R`uySRqZY zsR5F0&?sr)u|%3%*-6Ex43T`WZ25~?l3|ITdkfa%#o6< z-qo%HLP&u{WwY#b8`AUq7Q+(Vg7oUg%})F}h!jj0e~~WUMT-Bu?joH3AdTa6EDKSU zNGV6g`dh?bq;}9c?$ZGWq+pk)_hq#Sp&XQzz=K~$RhWsUR~ISX9SW%+aU%uF7o?5N zO{5r`(?2WBgQQdCxDMqr;(hc~e$1#aLIu7)qseo~!q9HvUqCQ2ETh`rob$JE3u!^c5XNYPyPpKkR%r2Gpq^)>PSI@Y%JOoD`z zCa9@1e07mjuJ*oPPa=^DyN;2pXg`vmdhvKoml0W&dkVB{Iv_pgZ!I~G@qR|G#VRUZ zi4;#y+{(~nLDC!SkKd^kAj#Pn&9#+HWaiqi7}kZ)1tL-(819544f&_?GjH&DC}bf) z`#%X}w5?#$e=7iK7ryojIz)?%gNscvo;4yZ(UnfE_mfCEO(v@QHGVGRPV+@1#v%0N z<=99}2!h~9u6*hVq+r%U-BPcL3nysb2H_wq;{JEa72Lw`M3a3e| zHAe;s?N6w)7?FN`{}acx&q%j7Hq7JbWu*UO{!UgoUf-D==RcU3Aya#rPnnOBk@bC# zoYSxAk(OY9r3f>Dw7Z0>$Q(kDTHC88t;2Y~f4{>}S@#EthE?3w?>vBH!0us`DhVlv zj@B56BAws*iudkGAYI`MI5+(W zY4`n_H+`sxwE8IM9z|;-_2G)(q~rK?!(mXlaR7g62bjz|| zf48}dRNXxSuCiJnbCdJ~E2{XOckGmxX_^7D6bO#6{vm|S`wd$N0ff&l+aXV)osf}8 zJv)^WUVmumbk^$Xkbz4>_GczHWSIFPSL^jKvbgDYEB&kzy1?2(;VLbG>zmxkDV{G z)kya0iGaVZOvuL6rEsbK53=?Wcvkix1X*cZw0&u2QQhM>afORY!DIC$xUhoR{?4j{{w=WqOll98qHzUyj0~vlfRKKG( zhzzTq7S}S+Aj6DEy09}MNPj%}Wx`D}WT*Hpvhvbf7k~rBS4Nbcm?OY-Bnj)&1*F0spe=f0v_ zU(zkvqoa`9Mt-oz<~;JG>999yjzITsg)fJ z@_r;YaKCx&%L^puE5oksyMW{_nV;a?Jc=~FcYOCbJdfl$9f}#Px{+dmVocrYC3Jz~ zXK|C~DWrGTQt{A53Z!$j#%Pz*5XtKEWv!VjA<5^r#X}y|q6>d=g~t3mkfPY;xN+<& zBp0)}-}QeKop(Id?;FM`ElH8e$f}T;y~lM1j(v`C>@6!Lw1mh=LLOIC?eNK$^!?=OGwa?bgDp3n2#_jSFm`*5_vK)Tmzb@V0ZUQEAzz1bJW3*V^E zGZw)#^+M!iR|HHc?6ounUeGS7S%zO|CG}Bq=an}_(CLg5sxBLc&8v=|?$;*3(vZ3H zFR6eP5s+U3n-r#0IE&l1FoQgGC*a@_Ylt3m zy1SLsUpE&iNo2uvZKTVL_HCG%N*?1EW>`RHudYgp z-!B--w@!$L<$#v@GV4de86oSezmC;qlaMg8a=;_PPF~Dz^w~9#Rjl zUE;>pp6_u6rFPI)Syfc~-W7^{v5Oq-~cR-md>!z4bf%0!ByGbVz^jr4% zCYvT;QeCuPNhJrS@g1)7K^s8Vf34Q|fz;Ez`Kc4a2B7sP-Biu=2laqvSBuPFP(lag zY%kY>E_AVFH$tHD>C4^yj~igw8OUZ}r%2gK+E&?<}i33s=b}8#_fwpZj&C;DObu zaCwsGq1WXJ7sGODobnyG1Qib)zQ};fxs`db`2+CD3;)J5v>iT{Tk3McBH>kg>ffcA zKzOh05m99cW4l0k*pD0&_*(JI-)Q~}+enfjaV3UIjKK4^96GQa&N8PseTAK8(|;6B zW7rv7|5^}wo9H4_LIW`-VDuK~_qrs(taf(q!>i|DwoEF?tE(TTYUZ7%6ggphO}2x< z@ddO5u??Lz0?@nH5W`!{0ln}1f+r>3fL$wnzak@q)W?D}@wP@NE=aJW~A<(jVLYbCsLc;ey8H!rog0uAtxWsqW)51ogv}er1FIfX8#M zj4iy%S?Y2 z`R_jP-Q0**z#96)He=i7q+#qK&9mkR(Vwa>IyGkJz(#b-LDyS9NZlq@c}+nJW(9VC zvUqD?tVUlI&G{Pmm#{m9=%@y__#21PoS+l%?$HaA0vOJAh@>5L0-7?mDr=>KX0Yai z_`nq)?_RF*(g^50zu#PaQv^E4a)eI5SAgcAQ=xijH#A4ZUhr`)z~Hr!;m#~g7{6Xv zY)&Edy;1p-dM9Hrg1GneYihu3j4OMW(Gjvw8CCGR4#1+|dT6j}IbfF1zJ5s#bZycj zGvb#*^T3BkBKtN%bF4xqqKAB^#KdkTWDs4`uQ&gB?hh~w^$!b2$iVdCRJB$~0*tLX z50n?%fnM@^@n8LBqMM1dzI{&g(KVkQDjS^yZR598**3D@?|Al=?Tc)zXmnSY=muNg1jN(KQE@+n`TvH`qR$3f&J*PgY$?fVz1O<;87t zFi$^rHQKWeb~lRI&Q+ao(2V?;uk--6reA~yvfqHkEiW8zAq1B6pQ%{iU$CsaP|7Jo zC+pNn^RACD%%9de_l6q7^iYX!-pNuR@#vQtiBm9K?((Kd@+REY4jkz7_yk{i+|J{M zKjH0Bbu93|d3f!<@JEPs6TWJ<-khFufwzSHROjnn_^dk_9$ztn?d>rd8R4uD(of#x zS{RaKo>o$b!){Fpka&BtHY;3_kJKQ>T#UhSAnO6r7J+YmQlulDEa?F z;mr&!&<+0#vw4? z7#?=xiUqyMN3^9hiJZe--&<15VX(iY=I~4>j9=Y&b>*fW=%3TxN-rk+L7LIu+CF*G zM~`sVlXIVPU#c@)!4rmC{`uE2>&f+s)4qKD54pjQYua`fkUED;vi`0nbO(|)2Qk<% za$=S$`*Fi?G2>$Eyd;c1T;@vBje%j#=2KDM3g}&1l=cFi?Hj(IF#8Js{wmLpYSVDCNoz>V+e*&26`7A% zq%JN=Ny!iWP5QXhT&qRZVAt~<*uOClPLAfTm%SKZ3%ocj=OYI83oG5+BN}k5DH!-` zkq$?-yPOh2Yv8o>PL)KNG#vj{@CNuX;9JR?{%!eTZ2z#lB3!c^u8}&%oE7fykh?1+ zamEfl&ao$X&%Hpv_kFuN%k<&qH2@pN-#g0wy=^vDmBkz)H;UX3p~sU|Jm=aEtl` z<`m^p-b@x)QcqGtyq?0|CGgdML|<``e!4Vt#~;{c%p5w=o(9(Yq)pnoo4^vhGv&_XX`Bq<*mGT$n=u?-!&4%^;|Gv@Xp1?wNw|mTT2IzHHYj5a1 z1bbXkkJaP>`}MOfkAuqLRn2v?*L7u7c`mM0?4mO?F zT??zYmXywAb6^P{GiD{dfwQwKPbu+(SnIBC=}3uy)#tr?qINBZ<;EpC=^=cuS~G%szixtgH2u4^#0JnFNbhdie-O;1 zqcYb!M_^mE(BvNa3JyE<2embW;W)U}aCvqh9CvPg8-Ga;_VpDl7mc^TDZKC7Xc!k9 zK5S#yC5(~R8JaqO{u-~{l<^^>R>Ao-0P;qhka31BmZbE*a7?1PLpTh zV>A=>eLovIAyKsz$u+>4ZRZy04nsZY(3#jnU!km!|9q**QYeZo7xM_UgZ0MX$P2QI zU>|(u-K)*dVQ%8{S$k9qmXlmM8BT{_aXj&N_ZFh(Sa~cpwiyHS#lV~I)OnanPN-=c zbATD~pxmr)7UoX~$-Gk&R=>1s%eOFKGZ=hJ@>4Brs>_}&KOzSfuSzj0p29Rqqj$=HAXL=hblJ$=StmHtu^0nUJ0l6ObCJ)96B4F3j;Bnmg z8f>jR6g^(6!pd5cDwTQ;HtG?}o@vB`S$@yw$$=zbsz?89!bw=$rrnx5wHG@5t&wUS zbHRlJ z2;{)zaxC}UQbjQS!?ff9QnwmNa2Rd80H)u>WTUk=)OT6Z?;gJgqu8Bg5r_wEDnV_A zdogI%zG6?^IY3=-saK|b2Ib!TV!j>0P|SK}kQj6h6j#0CcjkMc>o1s-I(q?7+%l{xr*>wb@b?VM`3k#_983#FUPb_-W_=ME`MPCDn@I|p~?D1T*8gO&t_8cNQmSV25I&Ty-H@9APC;k>? zxn#AX{XD3eF+r)~#Fu!#FaC~36fCUD%Kmy1-O=;OU~6b7@wFzNHJ6@)p?CRYMu-O# z&rG&szaI>)Mi-`Ry9CXk>zW(lpTQz1QNG)62-clq6((g5z+5d8H8fodW|-}odY{!` z(!_HHtFmEx`(oH=;sh8~S?`}Gk$ODsM^0S0BB*xK59(CO^?yG#YS$hKGiKb|?2AM< z==*de^FslwRni}OBv*p*V)*=(pf)i4wohKHHiSvtxk~0=FPJ#zZc}Pyz-;qy;=h?_ zXu5S?Q1mN?3MWJ37FQMYRu8Pu7Ey#&z8rfe@q6UBR5m@_Di8IA7{$|FyP@r>Apd=* z5cED3ai8nF1hoqv(su1?B+o|$*ME(+(D}Q^HGjStO54sPF76`z&Yh_2oDba4>3A9R z>yirT=Qhq%@teZrJS{P~rwnFR?a~3Z}I}?hjZArW+W=Xx$1bZ;teUdviIv7CGLhRoRlti zI>Aduc8}Eyz~|4!fXYJx3(#Td{-BoX&36<_Y}pl6eP zhUdCGbdxq4FylzQ&jppx*cT zF_ljC)#zox7k0-2jAqk~%ZZLwKKjq$>1$AJzuhQ#wu$ul0w>*624KW@$@ylW8YsnQ zd*8{De%ZZQj*^%IJ*~gb$K+Q*=fneALcJx7a?>jdDxzVyKaIlSH%4^g6VIBe+F+7n zu{q$U8t7Yi)|aopLiDZ6d{SQ1pshxW-Elc+%kuAQl6wc;)u;LAYx#io{=Qq2HlXJW z?mn;84o|roe7QM9_uXo)-%=C@55~GufIzCigI@F+P3z|F5xxs zV((B^jrN5Xcfew;hk>B$?P|zvVu41nc^StHhRM?HStq0Op?Kt^b1Qd0=m&M=A4O)u zw6m->(*Ha3?*$w(a3Xcs(3V%~Wo|HadiXx;;RKBJ=G7=UufX`(yK?ijwV*(ZVp?+|&19*9dfn<;~pXcfjx|<@{`- zCG_9ebN#*R16o62|6U1qqG#lk9}OZtWx)Gxqq-BYR6Bvydmq8(hTV}@XEWjW<%Ms^ zVg{5p5B51qIy}Mm)VDsH_%QRA zl_IXeIk=1KR9X@o4<2xGD*gbchT0d*yF?FrExai@`VbubZ*(X&pMlF-*ZqS$w(yg* zp*t+EB>qMaSI5v!IOs*Ixy(HVJ7cV*)9wfCrC;%It|4|MNAz0$vRzHGUV?_qqrK`__)EX-{k$7!rs7)yURt?+mT^w!9?R(sEZd0|yi-3bNQ zcZiG@CWpbH$(KK}>pEs15G>Z$`j&`@l{i=_{}g>U?LONr9~=@1m1mbYN#+|GAFM zfW6eB@Snrwu&;Aqb4(MzTY#OC?HvcVmxD>3Yii-tyvs}L>mk@ZkLbB$vKG!$orY#b z-{i?(9_V7T$TZMPOs9=L}d%1AkA_=hNqHmfKeosAq!y#YRemE7i z`rV1y3in&5ONuljv0bJ6_Hk2bxHH5May0=y6E=HHW5(cXFuC-A?-7`ZKiA79+@1Nq z__{ZX`C!dabMyF!4lG`+j#=4w3RW?*9jdi2U^hfNIW_qaEFNbWYZndJ$<4&F%X+~2 zZ%?!RO0pm9{hA_?p9ouNX^(obpJ1k_7imj}!b16|VPby^O!W+8{(OA}s`z(1%0)An zT#We{%3}wHZ2_0x%@v@w6??qSREJtYkj?M2UeNd}5xI*)0Q&E)d>^pag?8W1J+I#r z{zFB?C1rgbkQMb}YF-yQBW(*G6D~skzqP7wI%A;JKHSs3I3JcHJ&CvG$Dolt*m@>) z6Vw)#JM>!;zH!TjO+$Bxf40|o#JF)9itQVR&znAkgRy-^v=IZ2$1}8!suBJ9VB5Lq zi5rBU%V@m5PZ_QnS4TxM_F}t9c#Eq447Q)So#-8N0&YUe0!>7}@h#%GU*n?$hef-N zE4+yyT-WDdd51LEx*b^ZsJa>+QxjaQ`UNNsbAAky34(mVxsnZaUC_?)f4;@v0-DR| zM|aH+6Fy<>i~YyXfyEduUpKBsIHOtaihxsKZJU)panB77&Bbr#uN1)d-b7SF#5kO5 zXAhn7qr%5cCTTD^6+3RkuG#bUH+JlMaI({11-l}0^D~c(AdI7!mBf1%p&a%~i(9q8 z$`e}pI7S->S(R^A5c}FW&sA|Eyc9bsu1ZJdWdJr$O*g*Qg`V%nmt0j5(9)wzUS6>V znpgEY&TwkOh`#oOXZ3YZZ`)75llZN63Dz)WzF1r3{O*9#t(r zZo&)zej@gm6q@?vG2ibKeE^F_#Qyc`q~~+sawe zgp*K}gdc}EOm3cilss%h?%$&RwEJaXZoIs!YxE&(e%vZ{v^omoH#fQ0^4r4nnSw-k zVH?ae>XScZZGo-!ZNc}QfzaQ5aG&DbV(3(csdh?ig@N4j_9-9Yt3>ghIAA3N>jBSA z9^S`cDNwj)r-cM;`izfiyXAtJTFtSb>IGKlgy71ahp-*j?PX0yz~*3=vq>{K&o<1C zbNG+I=%$m`POctMmWr&~T1a@weEQ2m+62+t|9e(->?tUBe)3Y})uAceF7_xu4cZ!= z8@TVBhHf+8g99R`VPO1AZG7@HX!Pt?9~+6URV4fJM@k*h(|QwimnA_3&$vcB+eKjBGdoSJ6N1;dyGn--{K_T;Jv)I=5ReM?!LG*ep`X)1uDP%gS}us?v~_rkks)Ft2HZ{d0=T3sjst) z@SI!=4#!kW$oZo3#j2P*hh67*Tg0@$)Tz65hVT*g(F@UkY!cz9)b{;jISqD-cS4th zo`S8nlt%8KeXxF)y=!(r8^(izhb(+|LTk02ve3lvTF4c4)i z>6BN|&`#74PNLB0gdIojrn^H#@(GUp%b4#;oUxz<+up+X7L?-(kVoz z;GQz;O9wT0b-LJwcQB-soE9F-2jzA1r#j~%(3DO-YKmTHSo1^hnCBSG zqQ@&+G z6xolt3Gor2T76+{mJ5XG_J^H+|I>xZzCLS(`p>X(+s$F~?JdmisigkeG76opH4El{ zc0iTU66oS`1e)60JMNP8tFdKDvv<%QD*x&9$W^U__1^*gnMQ4Bxy7!S-;)69;gS%I zmxR0e+OPHg7zIZ1Iqb7b$o{ivmB@ZcStzy!_WV=71RHNRpN+SVz;@H4Gr_+;gE@cQ zEk^$~n48wuJSDmw^UsqVn#BKRIev7Gy-4)xT59Qjmsjw%*1on?WgJX}n7-LgZ?Nu8 z-HjlA9n*s2C%@-@*tDvcYNVRO`p>eL<8yamc|ACxrGY#*X(V;|Fas>X@$Fl@o4^XW z+xy#_+()mcp^K|@pxMR!ZJ+f~D3yHT4*p4pcKSw_OzLW)|A$pui+uon@7b50k@=vT z^Q@N>SPPrC>H+P>{Ge)Qk5!5izS91u?3n8=P-?RlxD*Fr>@{V5`bZ-v(u+J^_mStD zVLs%V5CCJ_r(DVPN5K%vyet)|&!oVyt=?mmOn@nV7>O`Gd1TB*`&Q?-n}wYycxeK7!V~ z3{(v*`S&|~$T}Q4@$SJLSZsPsw&wFNJD8s5a70Wcp7`pyts+RbP z1IJ1IAX=w7#DMvRTN!7z+yL`xoWKkF&4i0vl_ix~1TFuMJvZ}@LFs(S?{nX@p~$e+ zwCs?E=8~r&Uazi!@^P)6``94KVeB=E+TKg*2+a`omLOOOR6YJNOohqnR)M=Q#xOh4 z|1~}J05rNb4~u*8KqHRrKDpx@^g@(p-cI_%($4WmFZqHxh9dv`N*ThNls&lDRjEtP zk>pgCBjIK(b~!lj6ahotKS0Q89MsaYdIAH#f!OUEuBb+Wax1>&hg2LW{@j7xcEsQQ zB|br&-9_>OCo%)Sy(V=+u)*eJUZTe|&B>e6NPTc@f=8PZW^oh2zW+`Uy-Bv@jJF{u z8%w`3&M3e32rj+hzx{t6 zgrnf6Ni#O_`KUK3S8eiPZ9HpxR)XwHzOOn(u4Tf?yk%YUwiobwOMe>Q@gIC-%vP?y zxeLCUkNQu&4~8GjFlSe41cJY7^XqVLLO?>SvgFnz7>Q2Z9@-TG!-L)DM!p8YsOZhu zolriQIo4dX)qD<WuiGBtSc0;m_LhqrwVc@7e;SPLWSN`n&N6yvj@*|&K^g(rd zjdYsM60nro*G-RIgQNbNxMH>f43=Dtj{Ec+TH%K>DPl{(zFd^}tceSZMb$T~);YkY zg30^+GlTd~9?S1c@sij1A~<-P1zW~J^DTaoU?ol*@|PNhiC&z<{0?%i+~fJFxSr&_ z0+;!niF78uiEGPYzc}dK5t=i#eFiL6NRe(PI!+5kGKeNk)`v;?&v24|k$rttP5Tq9 zzTeAzGBQs%d#;G8kHp`LJC~yLTABEqUsD&~;)Y|yXvw~1IdC$I4bNC~8?IYsQ<{GS zkoxnxvs0cV>=kS>q_oRnH@U5?_uL9Fd+Rp!Eb4{VaORivMhTWlCwjJ+YGuY+7X9(*yl*;o*Bc zrl1Sw-FAykJ_(1_=J_vD%zv;c{9)BUdl{Cr6}xk$0IOwjH`;a|frWo;LAF5|6uWDh z65`$v-6Z6w^6yy~H!3bI=5rzS&pHZ>9l^90Q4I3JNeB5v(h56au=~sjR#@Fz@U?UmQy~7B1Ul zccoa^gnx3+%+7`tzs&uc*K%N?Cl!CFkG#&?QU&EtE8x8HJ^6y*4RGFOvv#{6;fdNN z!{!@5!Z}L+Nlg5CIJ1;?t822rPE%IyiC+h&b;`?pMbE*0&mX~fEwZn!);d4>vCh_=O*zlhf^N-Lo}AsMpfg=iEf)S8I)ja&PNa{b~T7{y9@Q7iosC_yIkA~}eCEpx_N6S4m4V$I# z42*HquoZyE{j1R;8+eJ|{kpG;2#@Me1dJ^EPiUM2ol9LRUXbJ=PugtF7@h@O+OI1Y zmJ?1nQE9SZ0E)EyCHD?ofTBbEMn1x0%DpumewehA_)GaAzjei+s5Ry+vq=d`y<){_ zS%2XbTXt|Vh;Y;KOLpja2f^JYpwhk02421bnP$H=2`5+a{(%L_U#vMdb8N>&MBWW8 zI@?i$@VAafme#l-BHU7={o6G5+6mttztD{R3k?^JXs6)tqi^Sy{37Q~cj`R--W8&w z+^I9OtpKff-Sbl)Nu9RE#zx8aJ}3uPR^MQf0Maw@>%~Lofpf{+eLCYX3|)JWS7jLt zWvj;|ZqLIo)k$^bpNF9CuXv&MN*AbKdCmR;d0x95wjPfD2gc2=qf-x3VfJhAxXLEt zi`(qGE`Oc^i*A9q18EzP|B-a)vJyY#fA{{l%P}c~_uzQBArs zp9Yh#z2o{{vS6Vg7R_iCg+;&rOqksxSWIZjuP*ZkV>>lvQOFNa>o0Q8vJSy4D9~3% z#u+BU0Sev8n_wzFXMI&H8RpO5pNutSfI%CGFt7dy)4J)!i~J9ezU{)WK&AOxgUq-_t<(nlAOpkogF_?VWWRmL5gcXba~zM zG)Ip^IZ1kM)#4nei6=bvp}Uj359iU4jt;1*`JT;oC-p%6{q?zFa#*(}rk8td5agJ1 zV$JK{K#ONL*N2ixn01V;SdkP7a~qFIdBTgD%9e{>J-iLdQ^w~my-WZKrt{1Kju4$p zDE;LLk{?Nx$}BkEPW;~9AnV63NFMc3$=`A=7|)eH3f=q&bT*~ybvhHY&0F7jP7{u1 zVu=U$iy6Q|S~4~+0_tLVN51cvh1G5C&nqDTt5@y2-lzQs^L;gr6OIrqdr zYa}~m701DSmlT(YXB)geu4agpb-{bt@=TFy^YE~<^j56%hD$O<)%mvS)`k=~b^6c)He15+2?m9Sb-<2PvdmlV3HIYZZ98mNFhbCGxb#>a$*xxt;Vn{WemDdsW@Ti~+Kp+4)p2VC0BHtzc+ zNAjXqZN*#(AAWjXYFuCgTy9L=%X=9OmpzqDCwob5Sh`MpEOQ3FvN8Xqb%w(`j{8P7 z;X-}n+EOnEKgaeA=g#}8;_yrG#YZKg^DQ}U`q)4Owh9bJPbkS@%D;$7l5jM;TE@Ah_-@j{kVmrSQJaG_^941WFjF%y(W`iVyzlg0zU-k+bx!+J;^;&|(5@5P~z<==jewZ9=q)<2e!Q9qX*VD)tmh4c^e{T{={&h;}DDP*O#%ENo zN*O2DTU-j~Nj{RESt$M{76yWax(kFi#QVTU!&gyYz6&kyX1-T@Za|mW zdZnb;3I^O|nVCa+&^!Nd=cE$xn?GiZ3f~GM{YRij1>wXQZ_@u`g6OQa>vkWKxCxUl zAri$Oh>xtRF}=x}ydFE~y<(3nD7ps@n_PJY>Kkr3KNjIfKMN|%cn^SLT{&r2dK^^4 ze_!Ihd67JUQ9}0ONhn+2OX|6>h2(2B#^2fzE>vG|;maip=nc*Ps+Qx1!pf7fzrWF- za-pMn>DrG_KRvRRyLmgwg{Cf7Uw;y+mixj)I#Xb~Z(ERg;|kbG^5|ziya?74zF1FL z;v>KJ_Fx%)0kh-EzAa%y$NFc?nx&9+`XBq#df8+!?rc+hIB*x{rMx}c%Nt1^tFr6i z#9NYo`0~g1^eWK8rTil+oVZ?>&n_>cj=e~Z%>SBW7|JJ??6gD(PV8YsWpr{K3Z z+|gB!AD*@5?Gw^Z;k9?dp_-HAJ!Irpj)|ud|I=@1K;{J8XDG^2`c!yG=_RawHVa*@ zb!Od7b1;3 z^~n2jyGs^9@vtUGOiKt<1rw(GJ`o+W^TnyijYKbLJ*lrn&I_kU$&wx3+aarj&-i= zfUV-frMwJMA6_wNKcw=MaBJ7@y}M6zybVEigN6&RIJYwQBL6;E9IH2wel`q7lKR`S zzhs?{G;PQ=?KY7K(fYYU$%K0;INBLq3&kj= zTEi=n7wa>*vE?E0)ARy{k`I=G=@HzpCqjjA{b~dBFg+-Sw-r0Ij3MA&d2O@CAiO#z znz}x!ARu_^+3!L_xP;cI7ZYB^F=YwM{J-6B+;Py{RGW|J?KngKMgG1}BJl0M({NmwCAoep@riq1dtITA!by0^tIK4LiIe@Nz;Hzt znOl+B_d_HJ-aBZY(^8}0do?C4`+75cGFzs8<_N((@j?5kMGxS1!)!e2*E)Ev`JJ?J zM>d>edM;kd3M4tQtzD<;iC^z)kvw;2Bgxaw@3+n(IaTY4l=zg@P~WGtI%kFs<1c+j z4w1a0smXY$nwR z*>7S4%wFHC=^F6>ql>dadYBEX?U5V3eG6exCphc6nCS2iISzZD?S#2B|EaESVOV9n zkSQkm9rM_2MZxSaSk7GQ)sb6(WrM_1x!1C!U(s#w=xzk-yy)Zm$G?H~{qdQ`#%;vE z4~!D~Gz`1_%UjcZHDPOz>Q*Oz8!UG2uTv+-iT?WX!4AzjqARF;S*|4tQ-;z*kBBT7 zpIata<75Md#H%xxid13t=7-{k>2R0@4_b1k1;Vzsdb1MQ$E_Eyd22x_h0UiHq3tPA zaNwGI|E(krF8yDw-+lZVUcHeoKRaxJd)qoL&k1$7s;=jmjU-%7p5#FCRX;dO>n?kH ztqPXMg7qC{mcYC>>P% zuVdG7sHUBgZR7a~wKcO5cYLCt=q7Caj+}RT9K#1W2S|NhE10-4k)JgC-=)(@KF#>U z*Wy|uq9fb6q|SE#Aw0bG_+v7Mf+3oBfG5iwj=?z>pXdn@t|9B$t(`;%aVkH_K1n#@ z^*eX|TuuDtE!j@NJq@tGeCUg&=TX?VFLGa@LUOVa>h`7o?S;dq+WBkkUSNNys#?o! z1@_y;UY3h^;IK#X%Y-PC=zBLO7@c9TE2@r~@Cznfz;}rq&Hb>yD(Uk!YMA6CF1)3f zN5ic8@PRYKgwvE646E?@4VI{QOX^yZn|P~c^JexTOlgbc|80v!(C5j9l|5AWhX48N z7-);_nnuoKo;zHBRE*T#svvck?)&s1bwn&G8S2zD!A>vr4D~OQ*s;!c2Fmo(Bm9h7cYb&zJ zzW-un^s^G!b$lFe*CG4Tr&O0k{t;k}L~lAiI1k$u?k574mBRLLQcPia5NKS~PjxlF zp?*j_=Wx?y;wuZ~Wp@X`U=^R)czX$0Gn$3p$ebKR$!DmnA^q7E3GqjZ%Aww$>!l?~ zhbGP9bAn1ctXhuuZ_>R7i{396LfE#jRHqEnA4kFLaHW5Gc?_&wGmE-jeI=jQQoP{D zCg`k5YTBPj{H*V(91r)mf%+@sLg{=L81)$ftG%b7SL$x6)t(M*O0WIp-RUq){Z^BkYJ;`;%AUf!D?RYX3wTVi_EU6@SwDmPoPz*zR) zqN3OttgAtJPybzo-EsSMv~QMhV5J1F>~<&XR4e{32l0tF9iKfTNpkOJ7G6hLRzgKy z=gqd-Pf)I3d86tv70Q3xR6XukL0({O)^iglsGaM(ohWo4D!X@9etu8tD&^A?{Lfav z+F5kv?EN(2ds+`WOOl)zBj)JBy>2i^=~h=N4iMaJURnGH>HjTCrN5GVp7l8lu&IY( zHUGkT#z_fg`_h**o>Pap)~#>xSAW7u9TPK1=5xbibQqn^A@0kx_Mq_-MPh&+3tN^JDAPzwcJT_Q2@M z!E(~y<~^?Q{nGKwyF$OpLZvWuC^Rb- z%<+ltm+qD%FBHbk&{T)%z6&OXM@M1&SMl3domHSzR6DL-lS$?&<<~kqA$`@Q-M|0j z%)unIzV^D!H@N79RCvAeCG&dX^Qpl$aOO#-iA99Kc{HtY(l(FGjkr>C<=;}cgj}vM zs3-HZSUaMsT1Y;MPl4}a={>m1C-YB4l05qPfJq;3F?efvk14q8!#j}nuw7S&=%*Jw z%EMN{#nSoPq{Iif-H!XV>m@JT#~mZC5x&cnQE*|(fbd*7Ddta>ZHDuJ5_f_snM=a{ zWuXn>N>BD7R#sF=JCRnBsd$R2{NT19Tsv}Q0TO|Qe^NXG^ zy*<*Z{7M$aFAtlvUYjF6hKOE5NfqpJ;@)JHi@|BjKNjs99bT;Px7RmpgX{S%^_c@_ zpdpd|Iay#HiYH!wRyeT$d)dyCg2yDcd|303_h=re8}bU*eF=rpg;giYNPfuf&E}#$ zZ^CB}z4*m@Y(3$mw?8z{AoZY*cw_CB3D{nj5w1_W0;}tEjze|5U~+8px%Jo^c8A9u zznmp{cXIUkU)lw*qrQ!CNZbTl);_UyoKl&btHqe5q$Hr{-X1H6!=+hA_zm zh?a8klJhc+N{K&9a-}PN^o08_1tmGqzQoFb_%^&UbZ(-X(sPf&rpEN58|-Oy(p7KQp+g_8Jtvrzf>H5y2xo&sL~#5A@F2rfrBj z42p=y&-U$H&`nsDA$vFsdZ)yjN~RwG-}mM%-M(JyHyI z{(+89M3$8B4Nwc5+4(W0pir0mG;Q4h_jf)RP{I7hS4r@YhMYv7>ed4apX*_$)=7#po4qnR*Bv+y`XQTHs3c8K1 zQ=jjwfu5*r&^7a^15b!9u}}BUs%&ADoNkJG~f&x+ivR%z91yVgZST=Ed-=kU71(atvMqg=^x>9pU9SIivUB z2E4R<1eSeNgQsyf)52IAo~DAFuB;7k4ctgiXnhN(w#yNIga>ihVZAiCl*|>|*R(-W zQvmGV?MCCDli|8~jLUeK1&4+&KhH+IA-WrDYDB>bwkJ6I`g^3{5b9UT$~*<<72ICo z#V6o2>vieKvZe6YTJ^p9Qvu=f2CqIM=Z@F6)oJ7Ty6|e?n7q83^zr5obA@Hx;n}I1 zSgunG&lN%qNndK<<=y#eM=n3S_UAsDuHl2%VbN8h=X>DAf4=gNktsYL9}4_+jMVuB zelEv)S3~ivX6B#2>&g6@R1Mi$a<09bQ~N?C^KGI=|IL`wVUoS>QD?v^XskG>wIra9 z67(dFmTNF91$m1p+OA;L}6(Va#4 zLHp)eE)aYk^d7;r;wIZ*a#;51y}R5n7H5^6*|&rE$NzFK#u0ul<%)DTWflglzEl4H zoMH5=VMm@~8w`Kkj++>J1w*?M$KY<_pZ@Bpn&5f}gD6^di25h;dp={p0B-hI6+Lyi}2ezU~`N=Z$3kP-;@E7xDQi2HVGZ zo~wc?;@cLwu9D2NY<%hRj^wq^Ysoka5nVprJ-X9t1I*JUC3IC{VD5cg*I$mzdmH7v zKYj2Jj3rY}TX9{4;h~QTwe(teaO{x(;(i+Dcb=$mn*4^6kfiw0?m(zV9h~k64TISO zVcaD1G41NPPm*ynBqx_TS6Y<^>-YxIbEHnOJ7TA}3D3h>|QkfG*R4S(?nw^~_ecwM@-q9I$jGj5E8)CU;N++eId>8)HJ`65gyVCy&|Bk2 z;dCo$-=UCFxa@8lTj^E}$6F$Q##CRzG2p;wR^}==w%xB=H$widOXM=&%_=x&E)p-7 zj)7BC(P1r8zq%cnCJGU{?d0nM*6VM&yH{Q9EaWMq9;#A$Q-!hXnDTh2O{k}tz#)_0q?STi|y z%e6)SpMNng&ic})3$rUFhuk#Z!p5*uSGFJnR=bNhTNb2YF+f+bk|py%{|n%nRJsJl z35_SZ>wl3sLtEE@aQ(Ky$A!i7EWsRD;kKmhJJ@&sN6~r5Q~kbS+^DY31wv_E0Go1A~cK?+9isRBqK!9_}#z1yhwQJf zbCc`9V!a@gFY_6g^(H=VqDw*^Wdk7-e?M~bd#_F^^sNuAv+wdo|De**)<3j0Kpyov zcIhn%$ciE<=^Sr>tdYlJ%o79T%%T$y-{#-cq=Ry%pX2Up{A|?^Vu!B%)j=iD<$!2^y1^|nO(gZK>)I+ z1X;-o_c@7IpE@p10ol@hXZP26AXBXgcRWTu<2|a6OQn8zPSg0-gyf4DZHn&jgZe&IJzf@pbz9Kk zLLKYX<_rEru&v7a%;Ovmb_eL}J^WU|PW`xCz{l%g&;IV}GW9mt1x){;)y15~wg1?S z9j3s=qk~*z#|+M21CD*)w-0r;9KTs^oUc!*@}y~TfH4d-)4EfFhL4*G@R`BNY%GYkh>uWB9BJsr$uwLgAUcMpmSNxg)c-^{SRHj-0dg8)n$`;l@`Y}XNa-|%M>KU5Y(8p!)>etZ?Gt8?7 zncn^nxe@v|H4o0#TmTck{&C;ghoI;0948=*fB(Dm^KN0BduUT`Ue?0AfA`(yw)r$L zrjB$zVyOQAoa7yjC$m6a47+Xk`aYOX^vX~uJAgT*kI9&k9Qt+SqHEnzUl@DKzU#{! zFcouG+9V``Y2#XG2K5y%lQf~&^(Gi|&sKsiBDjuByu2ATy@h^|rH$T`ZJ^1dZFEF6 z1r&>AdlP3$0a{pg*uP_b%cR=ub({{sNo$Lw!M!+dSMUzJJc`_+5pz$mFUaL{FZ?{6 z1G)#t-?0pT1?^*dHcQ1Hf!4P`X$rjyphLmB`^Cz4kjftz-ZwZ0QvE+<`S%|JDaPAl z=b4^?tXs{~4djr@kk?-*+sJ`Lc4fkT66VA*Rde#5mx1Q-p5^^wdB``?bqJgJ2WmBb zMH@56K=HGLk@tUa;)Bo+{}Sp`efEPJdA`Ifs}0Y66YCc(l)?7a^xPS99dLLmF-xsI4K67^ z-m76=+3C@G?|m;9@OoZY{?OMOT)Bn?WB>C;{!M6U2IeB{MXu;Z((l4K&hPBgRFe4r z19x3=%twyb#$o;{Zg4d4jW?tY1%+RnLx-C9LCNLqE#6oMP;}wmGyNz9PF%BbeXlMG z3gK@_i_Bf1mrsgF_C(IM4{5TG4|Rjj?9?0fBnVRUK6Syf6=I+0WehJL2N$kF%KiTt zLtq-qLT=hEFk2}~PUpk(G!yY@lzjvEOf*!s|60cNfoHOc<{3EYjmE0J+ys{wzf0)2 zvca?F{PKZUD&RZOrAYd95i-$T3=iQ-!_0{h9M{iom@{ z_vSJ9M@pHpaWp|dLK{o`%y|edSnl>&XNBNYHU48SzQF0>oay65Hz6YZhp}7`3xr24 zGZ-JKLR6K+i0Z)<2>O`Ons40#eus3+> zR_}kHJFSoBo#<}fyRD$IsYW`gx)0=+wPvr5RwG}R_gye@1ynko7dh-8*Q%nuHJAl` zJg4mMoOoUdTKU_ZxA}06dPVb2M+nY$`78`?S+W9QMKQV*^BRT{3LfFkHORM)70=MA zKrT(ZVtU#xM_5+b#Bkb^J zIpmAaRC^J)K%-;)+Aca<(0ZL*_S+f#7LiV)qVa8@qZW6GzB&Zw{MFwQ+V%nIgzo#t z!5d&8K7~Xe3ebI*@@`{l6m`!>E%Ke{tDH-_rT^tDg z^l^fh%eSB@%-QD|g^q0Ec`&o=E*FaeXmMPm@Y7xg&EbQJtz{|bPc+qh`06sKe7|X& zYM=xf^B<`A>dVmQI&xuU3;o_6vP!A{P2qWb!NYJz3HSR?a#sJy13|{@&5w~-P^HwD zl>Liy!5$h-uP)T-6rTU&q6h_Izu_yRPxPQx{a%}>Q3OiA51Y+sT>?$X_5F%0?Vz1M zxEVQvdXxW7-!%g(AReS*p%lXNfY(D7yr9_!ACT^^udH!n-hyYiZ3X9?>i;dC3agL;qBD6{z&B;k z+NFL|K6MRX=j3sz96R*IOmb-rq2K7|O_v`YGGMeJaJBax<_oT{_ZP0QBDap_NkS;{ z%|FSS?!7_;!c_|<0nt=YE^D8(sp|!$d8Mn8{MV3Y+}mvug6F!PtaE+`(FY!05aM6? z739sBD4Fhk1jA$X7NSjlU=q$yHYRo+OvVQn13HmcS?N=sy1Wg>B(=15at3mG>(laL ze85~L#3kNn5X|~6zwb_s0+YEkOiK@fY5(EJ2fw1fky#}(e&-CBZAZ}s4mg8)qm)%H z$3uL7+Gn-OWk6My)XjJm`8S;d+^G}j7Z#gu`p7T~>X9L<@`9?Mq#*g=wmfo^1V-vR z%0FS=iJl^gvjCKivhFo{>JGp|IlITOEW;CdsgcGX+#s`<8K&g9(G44YwD4HuC zUQ#v!C4&WHGX>=LX%F-?DdmGgJnzs{YBQ*n+C&O127p{GwsN@bb$Ul__ab@Smb=_i68CT&uZY>OIb&|qAQ<01JL&lX8E-EkNYFa6(TWbt0p>s}yc{-6j|`=phG$P>S}-lorsmt?E+4JQd;0!&S~N=yUV! z4cKXL0@YvBcao{`zDo7_{y_OTPzW)kH+5+Pl}~gIHw!pH-G}RZVnrCJ^JIKKxN#H| z)<2crL+%q{4@=MC*Ux~k{r)RMVJiSf)8x3ZD`*)r$ws@~2aRTrt=|j0pyU%@UvBaT z3>DuM5^f8F3DupyxrT#aa_gvRxiscRN_Xm~)h2+XSyUHMj=cWj`PY=vC183nQ2T+9 zKNvm~oMa(luCj0C!q3bQFcMVVS`g|2ldmC{#8xk%UcGXr<}>Em!#?OTPq%={x${iW zg8Y3*by}*^LjUnGI2ZjN7(_2$2n)b@z^S7O_jNA;Ign|||2EERWQ%M0m3NSHP#ziX zi2nK{gG)MI_F!iHGD3uXzaWM>21KQS=6d^o-v^+SR7#0w!nzWZTu zSPXLl%|1Ul+i^a*@4Db{bU#?`J-u+%lNPxpPW6jo)<{2T4e@{S4$PM}qZ-RQ@%oKC z!F`qn%zwm9eoLzd)hhM7nRdvL(GG9jXJ!K=kw?sykt(3#rqTZBU>N$10#Easl0YlD ztctg25+p+WDA*l;f^6qY>AlE_BU&9XmEBVZ%AJ=k4Qlp-l-tsYvB?i0k$8j{iTP;t zsRL5pj;Kd0`+47+$b}PxeVej_*~lHC{td0m_w*`KR&-M9^>(mZ=eU0)isyRfHkXEbG%YdHM%AtaN7!%~C=2 zKdyo}i8_GBcY@`yc)du7)?S;#ysF)eN#kfX5FcP=J++OzGP<)ej&EjAzev?(9jHLR z^+)aLyU6nmE}4uE^#jBG2YuFeV;(a9G5cNGYoN5=qE}T>0cs8faSrHf*7~|C!IZBE z`q?`-(kuR(kkfj8Uh~w_Bv0 z$pZ08y*dfG79ee`fBC*M0$OLBd*}7n!QhwL^WXq}!r9iLWVde~WpZm#asaWkGXA^|p*a5@?UcB))Yh0quC%7e7-lPvJje z`@R1!Xa%vVrSW4P(CEnRVr6B}*yW$hdldO0A!O_4T1SBJfTiRydjmjR)a|2E&OoF| zJF6S>1_(`G{t5m;-pDgW+QM0!&#=-t1^tc(t(}jy0UD?~e&jc5CL9BeRa;K_5f032 ziS4?Prvro=vLPx{M?pMdV#Mv!{ zH+NJ(rgu6lwK4$YtDcUGy50u`R#uHAH}rogTz8n;yacMPs-s+-S)iPlTMc~`Aa{5w z$t&3q!~!}yR}P_{aQxJRmkh|=(U^W0>mv#3*{7mr1C>B^-1$=Y_eT6VGwV-6>p`iu zBlIF&H>g^({@VKsbGee6(c&aLmn%S7F(&%aWK92_NGV;C&-^MXxc6Q4oq8`3WU&Td4ImBFS{8`o9fJ5J(-0akEH)CMqk9J_AaMh+#fc*x-64x z2C#TJ`XmDp`zLJi5P<$(ZS%9t&!WJzecDBxxjd zCZ7&~beE|2=Y|1LO25!A%_Rep+@ET-`F4TkY=-9WatTOuMtilrRR;O;-E?>8kdtKB z5W_#c4djtm>neD+Y_-D~7RMLrvQ$B#cZTY94b=Q=vMVovr> ze4rU-Xh!S!0(nGNKC;|h#W{H5++FHfP_*n@YV_C#x@*0XJ6j(?S1_mg820Drw7KvW z7M=vHHg78JR5sAbdd+`(s}{8Gi}x9JqrTv+q%nkfMeSgYr{kA6aUa^LphLj9&*OpS~CY6l~fTaCk>3B3=&m|gG zMN>~f=WDvqLGY6yL?l=ngx&w>G^r=u=%$Fxdq zeeJ^0N8jCf;oV8}bN!wjFRC@h_dhS?$+<1`=c^CIc;=wKpT$h{!@OyMx;=C8A}CnY z&FwL=0D0Du=7Py1AZH-UIL|bN*I%T_r?>==o0FrSqTLJfmj?89=y}2L(9W%cxbGl^ zj57bM-of{8qdgX6fV5+8^T1RW{T+|AKjmiO{+oqej1t#34Q==9{j1nt^fKDU^)arW z>S-Q0=hn5_(<5=Q9P~q5q{h!6?|I!{3CpHIGye}w{)RC6jLTPD$Yjt8^-Hlg#T=$o zKwL`A1ZZ;)9(l!P3RpWMTkN1bn_A?#in-Cw1RB$A zukBLz?a;TcK~16j2CT&lGv@yb2J6Vyh+&Zo)bm`kAMQuJn*T-0PlXR)nSCwy7~>(Z zlr<2rsEa{(zxqc}e=j4G!0^Rkm z!J=LKtz8jv1_~9AnHA*$c_PH`MKm*52vd}mUnZeGd^Az%7(H0f1+}>XhAH^w z53uo@OX)d}zKK;Pfxpj)VAE4`+WvJX*gW{bm_xY<);vLPHpbtA)$3_r{??!9+vLs< zM&FW^`n3rf(QUBqe=@8=!W;sXjLwbCFtC}Knxogn{Ol|Kan=)Wz@BlF(rb%RYuFsb9HbDOn<-}oeC~fgy6~LFmPV>)?XDRgR8<*t~i>X z;Q4sJg-%NZ<}|qpr*zGLymP#rj%gFj;FTK1cNs9(?>qdJ{1D8}6kYx=!V<5sog-lKqJShJ@B#F1-@8Ybg8KBDA~_`M4d_d5@A93q!S(G9 zLve>Z=xN*|8NJ8_eX*55(UoHK4KQ#fKNthGX2`ZDKHp zj~1*?9>TfM-wTauoX8u$#X!6v?}KyH+>@=*kHIug=zxBMG?;aNs3~}64_aMAZ}gWg zAXn6w#9R3X_1!BS?g6^Uw~4>Z@*R0zhWg!^<30FimJRB>B#@G6IeZ6m*vh4^5A}Od zgUn*kKe?_$Ao+=sHAb`2eKybGL076v4-IpkIS_9puYYnoWa{uQqqoqFpH%v~&{4 zgtw`f7xfgU#_K?HD`c{v%LH^EbHvy^FBSDEa38Lxnw34^GpS$EJtfHl z(ljVQCP%XQUwq!=XysY-&KXVn9eFk3?$S}UN1T-0a}Xn`w}r{W74{_ z=;A^H@;fBU?NW1)ptCTtrsx2Py&e^GE7hP+JmuKfJ}9U)FSABIy9$=WRK=KIs4{Ad|g_8~0&?O~yhvmo?rR zeC)f8xztSYKMEUhVC=AUY-q#@j7~+|kF9b7v%2dOL8nzv=MX#}_NNmF7xr?wlT1-Z zq8MTh^CFc*HiJmd2k1!yYy3h5QPg5>^3K?i&DL28@n$dkJV zKzi@pl}oZyATcpR&g0nwg6e#X1AfaOH9~XEH02a1-wT!9EEofIqNvbt&wWsT865c- z*IU)X!3(K>&x4|?pV-{7EKoWyc$)o87AVp@Ga6&E#{0V$<&EJCIH4|(I#VnSYPo+C zo>^*u8tttYj6;V&`5@&wr>PkBiMi#jt?mbdFFJ+Ve-DD*R3nvB$}s4O-4xt=vJCVx z`rpjS^MQeAMfb(TeAMOAGs78ekQ;9>X~)@s9LBDD`@d0w(%Au@C^ZrgM1uxWONT*| zW_jb3o-XLLJQXXy%!mHLdbx#@xtL$1rW>YlHtV`y2o^QTte>rvqtRe`+yFA=L;_v=6fdQe6M?hM4SUI`Ddb`%pVn4m6sIC4!2t;Pd(J7C&|!G>X&MlDc1mdWuVp z{~kk7yIGfY!~^xgL8k?(-*VW`IQ%kLbP##zI#G9&6i`3+ppuQ|1HHHWjs=c52lf4{ zq%oa``gic>M{e6dh$zhLH^zNw4olSHI}zM>9=topzX!BFmom4a&w~(Qvd&=1 z(r+=huVP!qqeL5p{N9_Sjb1U-p-&s;2T6h{x1-#>CFEa7ScKX~RDmgt#3j$A5zHAh zziBvG0VdimqKBPL!Bn$lNupf`4432sO)BGX{o@#Z!!M8XMbe%hd&|I5gP}iZAP~qK z2Ag_1n8Wm;j*Bt51MK$q3`$KOgN=p0V&47U{;r}R(0^NPni+`q zHKL>=IgJQ;49iL9@RgISLHrz6d9aHG@vnqRP}=2jeiHSkvQU(ysKMp)eKZ81LQd~@J5^^Qa)tFFYer-L&F}4iXRWY`E!tG?xn5q4& zz?}iw+Fw*S%a}m(+r5bvO}rijw`Q5qcSX2PO%+;Bm z2rIRiYh7WF;$VHH@JuUd{xD)==nRC7o_&Rkce|#(*ASX3ZkHL^7Sv>W80vh z@0sCrqzn}N(6wPJ1Jvzj>Y6()fSMEeKSi_ippvrZrSa91AmXL)luBM5 z^Psx(@x{&{c2h^j@C)Xp;+8HNul+&)B16)d52$+v#`L!?Z{Yy!ispmTDF78!?$@9C z(7)cr;8h}k`&LO`w~!IAj|+%+!z>2&7n^w`EQw(IgX^@<*H-KYtY)|UR0vkLZf=SY z--5;FN|BOB6_B-O-b>^C$;@b(;#F1`=AWFmyz&iDm$p3NdeaUpQiqqV;@7}PGDqj- z*(oq8%ZKMzslde2bLRP1ZM?7FIMn2g{+_TSHx0~l!1&AX#||8G7|Q>-Xlso;mz4Iy zz7=E0$2Ncc4vQa5o_Qxep2PeP|J+-W4GS1EXc}Zb(F6l+iBdgE^ndUF@Su+l-!~1) z^HR-`pgoxNAij(e^c;xC2lQj{KJ@4K%;sOv?7f^=KZpL0L{mYx!9K89PFESK>;Y3f zg_^2yGw{4i<@j%F0NkC7-T(X)0=I=0nlb+W!0pY7>e&%K%oE$CXuaSCmm%R=s5k-6^+|g4{jn)QF{_qd(A=2P;P*3jt zdu|Afe*S#$!(Q+vm-HS~wFg&+@M~WQSHZ0y{*7>u6}Y%W1X*~`g0qnr6OCvUIM4kq zQc*-Mx^+|P$j2J+5RofxDSZju;mQz7^0K$T&iC2sv&{QO7Ty!aQN+OnXy?8yMM}6izPV z{;6gB%|n4;0BPo|F)hsDhDU5adw_iLkJnNYDO%C@yHOE&1NW=nu0FdW@(1*aZ@&3f zoQ&srx=fXT4A3OR`0yhiOh@h8QP;?H&}x!tig*7W@ckz~FggL&*j zPriOC1p>?5Ktd8X@(c8v>_d=?JS*5*D%1#CEcu_j^|p-y zgU`YzLho0AJlCw#<)?O_aDG>+S*IE3=Z!H7+=>IsLZJtA!}?%5Y4z^fxes8mzm0Du zXd3he1oW5xVZNt))@8qrK4@S4^XWmeE|8q3^dB{Lf^voFW;f|6D2H6l%B;fcb;+M2 zL23nvXY>!ZW}|;l+$fyLVeMHk4-~1_O?eCk34nG1bwP^@ls~<04$!Qx46HQ&tVGq;jRr* z8|G!-rI$cie&-F9ry|&Nw!4zrEWs)@>r30T8aQ-(<=Ifcd0t?G*pa98;6ReDqa3@7 zulMfUW3wh;dG9N)8FDf$>CaqYETRI-Lw=m;+;c!~61qBlbq|m=e}?|ux(F6yg7jhY z7eM#Lr^@o_L!jM%MR|lh8?+zKJ(@jdj$BE(Umioq=eijic}Zp-NKgLw1z*oa&PZKT zdwLL<{IiJgs7HR#H8r&%N}Nwpo1gD^wSfGeuz*Ni>}8of8gy_@A1rAy7!@!0f`xkD ztE)Q{KsNd&!)jj%WSgSy#@B*i;rFGl!wWeQnckvRbP`~EpQXsE<}Q%7uiq6HUjWkK zz&`%d7r~G=|H^IZ2Gr%{DBq*M!K5P3&tY>NEMoqB8z7@zrjk~0lm&UiVtz8KKaYXM zEcuV~H9IipSa3KeBn9SC7j5P@w!whE(khDqb%zq2ZXN7T*Q0iQ{^YkM=zSt}_at3M zeNf-16Me6STT(YgwP`{1IcYrkHgXLzbGYK4(Bb=1eU5b{43w+Cx^!U_J1MdyOBuFk6c zc-=Utp1-(R6!;5s9o}nQO-Dgpe{f?VydKoIrRu|O1%q0L!oB!P%+DRTe3dUa8i=-R z^KO>7kMiM|>>dvSqI#x2+bx`11~<&4RSN+jd+fc`McnY-I3gIOhdiy9S<1gk2|$>+ zC_STtea;aEZbmVY$RXhvGfy=E0$X*Z>97o_-QROS;qQG=5wTrK{DwYtwA%c{enury z$jy_A{itUME!Bl#zaeY7IHlq;5I#x{f6>SJfc|&XJXe2;y!c5BG(+5`^2U~cC_Q*tid2qs!td9L5|{D) zYdsN~vH%8y^pTG!v4?@awZK4v1@k*wdrvYWkCbn6aPU?Mm>d%O9;=)Ugj&U=ua|Lu zeA747mcx$(Wj)$eFFel=m_^R_4B(t0?9sqn80bapqKLgL2Bh(%m~8QT zU_AY8ulxj_7nQd{1)dOa4ippH?1jCm5-p37f{ z=3@R@S@qoH-wE`o%1owscYwX^sdKNp^1#_*nMN`CAlPOU)1;dDr<$Jf;p(;Bc3TETR7yEFupXi`=>m3KC^oeOv_G zpH@BMiYUVTf695mlG9*VQE4`^f;j+@5A&bP@OrO#=cYrf1L9}q*Dm4aU{-3!-RoNk zX5%jp{I0r&e2G%taN-8~ZvMK`zMcmYt%lu1EiTM&-W3_Xjy?#VLhV;hOkfc^LNR1j zh8&t_yQThP2dg(9I!@D}pYh_84$@^ZSWd~W^ii&2KZ6qO$_<>;72Ll+Za|6sr(MA& z;keILICa-!d<4v!Pxh$PAm`SwYP#hn=1+EJ1>A14gR#!#xdQAXFqaYH2k#>A$P6Cp z_Ynp!@L#roMmXu%BX#ZA8#tB!G4UR)Dfmb`AFnrmi#lAYFMZxWAR1bh7#dLEbrVay zGmLtX|9vxE_f^ohT%7yej()@XX+qse1Jo_fc_|ngf%dqZty}=^BWBYr%&^&Aci;3J z=V|n_{)lkj-ivwlnk9zSL}f6y?M-BP+W{7QC+D?V1<=pUxMZ#Fft<~Fx;u-9fppE) zL9`$VjQPXGBo6z4*U_90G%{6Eh42et5`8LR{tH653Qv+b^6nx!%&u=gh=l-;psvL~VjQ{kV-iJOK zTX&|&vv@xDV)DcJrs-GR618uqz?9G=CUnRbOp5kfk6u(oZgTBum;MGYiuzDeO8W?P zp)+8eaU7ZKRQ)%LU(tZjF-Gthqmi#$cIGoSH# zJLP-*hd$(nzy!xt=+YhYFq<$SddjhQXT&AS>XNBCM>*vNW zKW*BSWE6vKbqqN);HR+->Lk-p7a!Z#T)_DSJi{R zXV-z@r}wG3f~Y56(Rf0YdIjp8?KFV9>SiUhu>zR`fI_YZ&=ac6ZVJ_YZ~tM7@!=7X9HT1FPCT--$IT9m4 zs%7cAL^X1$+gCqyVorERIq^697-$=f`H|5dLUdSSd2{FqXbhJoKe;!6`rvcoTY?Da z4A{heo1g^!(MKA)-i_cqz4l&>%s%86hI1X>cnqZLiX56B=fQN~IaLt{Jd`#|> z$m4CSf8~X*yTQfQq7rrdzNqr|YtzUz5H;bIvAh9VbevDGGqE5~rzv$gV@9XhRhz^Iv~&~%Ff4A|PY&+Tdfz1P7KcH_vqa27vT z=Jyv2A{6>$Om2e7h4fYZOTM_DO%#p4HUkEq9`3sC6NHa5l9K zi~hwVFkq+|knHdT!{ObkZQZ?K#QN>u$cs`ijlQ*q=PmAQUpl7$IEH*b)xU2og`dVkqm?|!)oS{?kk$BMD%v+S3q(q8QEsiIO!3qn4)@@JOD|TH9LIHur+}3>4W*DGxBecx3cR7uYPMw*AO&I_l5vBCMptj0%R@|bUg z!$u3tEXm!WJ;+->?wVHjo(4>BZ`Z%&6+(Z=Ymb$^xUOAQc5p#i%`igIjOsA%OXWhi zOczGMbdY0HEeZV{tO*TbN-wY*GajUH#F(oy&-b=BkDbx z-p88o96}aNXd)mNZ{D*mP7D2IwmY{~Y3_q2tE+4S`qb6eN>}4oDbVj&CcLzQ{oiwr zrfEi)&)ZM!^z>Oia`aZ&Ca0A^X-34>x)b+--$Uh$j*>txK(wp*J)T2T-4dwhkn0rH zFGE_iM_-l0j(iIp-j`1GsowdE*R?2}Ns|PabUY889j`=vQ!b*j(iTj8Ya_IER>0J) zqpyup0u0of1Yc|Z#a{Y$R&g02&>g>#BOvu0^b|L`V?Sww?)S}MfhrL&@EtNYaMJ>l z1kJUc(|Fx9cJ*q-62NeR?_NW-G_JpaCqGhNMZZ|c!%pmDHr;zK_>^T0=ohD-9W+kH zb?EQH8I6~qKf`$_FCEvf2iDg$oMM2~{JzV*zYItUlhiA34Zy%p(VF=R7Z|&;j9)Yo z0E4cG%mb#*VA6J8^80!U7!Ad{3WmF)-ov!fL`wyRK{<09f@WYOuM*v1Ck49i&-uhp z9RsbKI(f|=s25hI@}(muK<8(q<4?@1SubuhD^4T-js1q9%;+bu74%Wgv9|&nn%?B% zJv^982>I9KGXS>xy!NzbX<~l7-hq1g4%o?yv9F-+V}B({Edw!&wxJ>RxpDSj7kA*2 z^#=AC37?<-v*Cb`Gw^GnY(MH6RTK}$0>EZn|J_YjN!^o{9v%TU217dG5Ub=xZ>$b5QCyUoViqw+d0dJ_2SToQo+YnvILPfXd!kMbfERP)kt$j`H& zdjF$)>^L9p_anaiO#TC^w}kCq{@4Wd+sx}tqZOcjn6)$`>m?|6Fuh)C#W{n4z&T^= z(LK>m9DOAk3@V|uxe9!dpgzyt>&Vsz8hM5_^o_|t`11393ZW0z^)AZeX*kcQvi0K- z!MszNa22_V|%BnHts1F`r1hh>WI zpus*$kr0eN(31sLm+6t``Gh}e7IhLeH`nl%eb13MZ1ADly9|_LMJ~EKTn5!dZGsmY z=9w%lKCvnd0mSdtKQ4%VBr=(uehRtj%Ea>?Z>PX5DmiyQOBA@L{L>)K=%erC>i%bD zJ>Vgff9v`45^xcBquR9U0$(w1V%C@{xQx-}-mb9+r-iAD2z&wO<9gp`8%MxfwCG&n zyEL$m4vBHY`Kv9{9nW}H1F-wJlKhqfKTjhGI+W4pz_#os`|jJd;P~Ho{qAWQlp*YoVH61+73n7&DY+I*dIlj|!Lu*l^#O z+x<8J_w^YCVNMEZ$S<(_nkBFR=B>w_99r@JeLeL?=5scXKkXMB)$YK2V;BA1@94Kz z=rnaUZ2}W&&edRX?1#AO76KQBf$Y$^?|2mQP=p1>=7dCWAK%?RN5pf0maSR~@}n)) z&qft{Gk{I%gFzM78L-*K^qf{G9c+rH1Y$DFI_MKb; ziy#tb4zD!+du2jfE)Duxb~@gL<378cN07=5c?2y;uSWkMGrm`WI%2KhrMNbd8$ZJPMpVfjb$j2sU zN&>lKzjuBQa;kTnq?k`2SBo$wOG=yteeR6v?$KKy7p37=b^>|PpPN~S%ASC3exKr^ zE#@M6<%%M01;9#xNAz5ODQK&^G@rL@0%r!5zQ1iU;2<&hIW1c};tr&f(>cr;5n$vd6{{tuf}H@9k^rM=pBIL^Nx}<5d|O>m#CW7_#J()?Vo83MnRIV?#-=v3XtX5T}0{63JU)@?s3EZ z53$Rc*LZ&I2dP;kaGPOrayQI#Fl?%4p=yXR0Q+&Pp6Sb-1mJ?YYG*JB|m;# z!9@!))nB>-pNWHn73a_0ZDHug5Wjv&h6u73ez?yE8G!?b`qpF2=i0K+Rr%LSV^0)2 zjXyygY&D*5^weWMSxqI6quveka_JQV_qo9SN4xeLR$=TF$|^b1*9LA+J2dBf_khDu zM+)Cp>fo_8DU)(s2)U@o@}qe}!96{^j0Jl?ToufC*L_Z4pYRRGE$nG^726X=Nv8)+ z2Zc|=CueY5m}A8T4QyO_uX+I z7>QLdlhQ$j`iEW114dAlGk@U5DGRFp&0GWZ-JrH=@=fIMT~P752_A7A)lsOki87fiFnBUiyVNciM^1=QgP<681{ZiK&j4vekwjT6>6DooSOgL2V_nNm~ zJ75e3x;%Da!MDIrZ{gYyTPErRr*xm!tbs|%bBnAU%kNBwbn%?+)pe#6Bv8*T0}% zmr%mEjruySk3;r1oq-0WbALSCQ`q<>^P$)%H`M>gTC9_`L~qt4?P2omb#_rNXFAihwr#MhWvNp3>XiLe*bJpC* ztV;J~(5I7``s1UA=Z=LMzQiUVRY!ku!=6*!vgS)yG%P`jvD45{r(d&x!i(Kjati94JE){*M{-!?O+iR#UMbnTAUy1^Y~HFRWBKbb?eshFe^^ z6o`8d0v1CC|x+?3{>1}PquS9dH8K_zJ-Lp50z#K@CFs$VieT=LPdJ$``ThyRh+~t2}S`x4TwJv%CCvQT*Ufg9+IsP7)?HH z+a?Ku!2<#9eInu@Go>M{5-bCz3BS1<_zr;Pn6~KTgc^t$m~7trfX~mT?N{CxCs5pL z9m4yaAN2SKt2s`;03#J`i2QjPjMEkdj@n@E;gE<^+~Z1|-=(pAnim8;p|)b{vn^nx zu(tBRKLSXp;S=)FWFQIqoU8a}1H>B}(r*e?;KZ5W`$agHBoxRAy~r2=sdf(&Yd-WD zQc-<&ID_v))7~TeS``2kUoTOp^Mj^&&(&iQ!`O%PB-!-zC(sae{(Hs%eISzdZ(T^e zpz+^$6&KF$H8==vCOtSuUJhB_$i4>Jv;lUh1?WdPUY6?RyaL)xm9a^Y*!NZSWjx(j z9CRvaIW2AQJjl1Fr|kt3`gGig(M_mx<)8kc6wwG86LLF(dnrN3QP%J;HRfo$qSYUr zpTYYF4I3ZN2joEwDZipcJ;BhMlV{>0XzH}Jp4;RD!Xp29i>_eM(X?tw%^n5qA*O#1^jdPF`$E5A$1;2h7YvLFK3L$7eq-fToPq*w{A`5ZRY^ zw;ezq(9NZ?X&*-*d|qT%z4j0Ls6C8$>34ww-^sC}b`6ld)bCJi#f5(R)-%`N(}SUc z>$mg))QO{89Xw@`d#Ir}D;9ux>ItS0bxkD4s(+oGzeC zt-t?~gEavA)>p>3+n~YJQP8pa0+f_OM45}Of?U|uviphYaKfXhtJM+b!13S94r(3+ z>xP?;A8i<7AN+|0t(VA=s~i8;Je&o#9KUT8wf(>;Mm@%BKk{jV-t5~w9tAeTvr13X zEWlM`$iz3L3EcOV@9WXWeP)o*>9gr=cn%WRQ(;a5x0Hf8t(^DZlEBaYsto%xMTmq` zGFQQ_>m&WO+3UCu^=mlni#;HBWse_PegRgSoD=VIKI6H+>FO0chuMgo9=uuZ4%P-g z%9178z}nE!aWUl|Seswui$Oira!}{Dt;{A^4xf!pc1He4v(k=@I-dJk5^6*}%fRCP z{IQ7gVdS+v8?D=u3zkLGA}g4yw8%~Hr$imq()(<~XGeC_F}}}gmC1pP3G;(Q3FPJp zEm9qjM;?*q@2ghEwO}QhG1A6>I<|GynA0vTJjX0tqCSd#dsm^4dmn6o#k6zW9@+#T zf9r~o8$*A*c7h6RBN@p3-6Up>Rj`n|WgE+43zk{6hxtC^_b=`#rr^8-mS;DcIY$G) zQZ?RRwiEk31kK;=E&Bo1ze{^JpLl}R=qA@2z<%0U#djRPkrTn{xl(luIjOq)HEdh* zz+Oe_Z`i>Busc~2|NeU@*cJ^2k&h$CFV1(ITO7|d_a-{4#MZ&q=+ozbTQ;b}{Nc{+ zmI2#cm(MT!!>{L4SU+K3jm@76E1#6{Txqr(6!7j6{I9e3aHsnJ)3@S z>k7%>?4<40s;>i%kA7BvzF`PX_tT^8mi58;91!##^z0L*LQm+%LA^bjx^HFS!`Dn*@g8xw&%lo66fTa4dH&m41M|o<~%~e_o&i<6z+(CGU1(pNf8ri6sFj zRL@-qqsW7J*6>;ZeJZ4kZO@*o$hG{`a3r`~8;p`QYaf0P1*3HVa(2EsP>we3GEv

~hUa<^59U?+&+dHo=MmU=O1kdWP6r1lef&ET?^`p1 z4TnFS1Zx-b73P-@zz&9TOa}7-NVTcmU8o;)+`p$BhdGh7VH(lGJ|L8`F2rQwoYTQ5 zKiD4gTrEO=<`Zv0RiTV5tsV_htPd|{RCa@q-<99Dqdh_Pp@+D5BOR!%q|`9zBftH@ zZnut(S0KZ~-~OsK0aOL3=>oq$0;PG{oCO=~Wi_4WSY7`NI;r!+lP?rOi+Z*=Yb+2n z)xWbe6uE(ppOWg$cZWjnO2UK%V_(8tDhcSB*bNo3pZ$!7T4^!EaQ;aAD zre%jE1Ll8$(NuH>dOEzmscceMOE z=IjrSzsvTC0fk)ey*r;IfNcH4@ZEeR=pVh@_pM1D)Y}gGzZ#tdH5mb_i>eNocT;X@ zaKv1yhL7FFz5MD=273Gc_TKAOK#s6fk{Jyn=$5qW zU&MKYVerss=&LeR*@HWDuo~Nj!DpFi6mS zx?8CD5~OeCyrJbt1-UzZEMM2TKy~L6EzR3iAS>u~zq0fR$o3YG-8`KQl2N%5%p4sc zakXwJiM$1({dP1zBJuT_-1%b*yr8spL)G@}4UpNLrKo6Q1WE%8+?rt{K-RvW`*y1c zedc8Qs2g}5XMMsqAdQ^Gg}P(00U_u^NEpycxQIRQ!aW3kb0A)v`TF`UK9?W9_OBk% z1(kOjQ)g#u0jh?$1JnyZg>ZLoXg<#QNH1nJ8j0@``^E-VX(?$lkUx0YXr~oZrV`fStD%JvCT>s4&q)8|i~RHoFCGX1IWw_4-LQ zcAVF$-RAqDV++K2Y-ykf0rAD!G~fR?D#|neZs_I!B*rloA@4}}_zHW}_db9d{~Ww3 zFfUQzz!jVmfPHTsR(H`KO1`BVJpEG*v^cn9yYrJlC)>MUS;7%H$M*i$rRu;SWT9Kw z0RP-m`}6I}Fc_?9Zj377bN$Xp>vyRxXtyaq*4kds*h(&JJi(4NHLqUZZKeWkQuKb3 zH1_q#?n9q)HxR8vzhcEfGuUSXYAK_E1YM%*E??q-j zyMS|SkNm4wFc+RCChClQe&us@fi1kpK*=Tbwt`V5C^1gw7Ok;^^e+kbjx94#K78WP zDJFd1j5q^-7a?e{>FFjv_MOQG9vW4(%Ldh!cg%Y0hfxQ57vZ}f=eTZ1&gmmZn^NsRfcHyIq^DS&a_KLN*%K59H;QRd8&xcvahho?iz@9{fPp1Os&xV2YqRW-Ml_F3$ z`-9HU_$bKzoi2B5bjChel5oo6UXXj|AeNS}287_fzOz?WL1BY0{?%14(Bx)mojbh@ zR_ZffGZ;)h9<2MK#R+4DlEQJ-DAJu|0_>uYRWx}oR- zXp%0weKm>&&D=oJqCft=RBisVWr+p@-yJq@GSP=#aXR{`)D{>rOq1MeqLI^S5h$Th z2)gCst@6l)G8XFC&B+r7TGgNZ#rleXAfdqLcHk|Lb{TaV9e)qt>+n#oU-DQ6#3UHLO_e_X-)_Q=QzbfXXCLyRO3p@ z?F7srlDj z$g)`cd(gOB_TRQE5i~}v&z;*G$MgETZl+-T`h!vol>?|Bc&K%hYvJekI=TPk-4cAh zKCiKh6aw*?_VltV-h*8|8^xILxij8H-l2i#f5Qj=acAJXi@!6Z#Rv2F?z7BhzgsYe zU0}?+VvG0gIJ&R@l#rXV|3kD^Bf!zP$Zi4D+bx#`yasguZt8^oZoG`oLBK56H(F35 zpN{BvIEGwc@7|p*U$HlwX|$3L{YMNt{jSvwfs_vG?VOh?AlG19Z*Xx0d1xws+4`f= zuS3~?uaXo0K4-4-w=swuq*^aoH2~R0_jB$Yt022F(tP_&EXZ*h+)P9+3`9NLa%6Z1 z3T?%ij%LW4pJ>|gsv5alv-=py+LIu+R>J*YcM?bmG910uE)FtZ$1I~f*+7PHtFGJ! za}76ZL`J3#AzvVVDIGs&%Ka&=No1mTO|6@M5|32~$r5XHBRN{HUt>;@A z?*N$1Hf~p+=>W5210F6ON$k5b9<2zsKt8iV?yb^LFgoBeVVp1lhMkVV169w!=!C!? z#~##e{R5aHt1x#$|8MW23i1keQt#P4hyM3W8!2JhD|o*=lX+5W9<(oXKEI3{2cvj- zpGAoU&@1b_JsyI(y~N|64+dO8H}HdH{1rU!8CV7A;C`m(AoU4&(C_%d<9bXn`dVd0 zJq%nELC1QfLmcyXWcqU)UDcS|7=LkdN0l0$vsio|EBS(Q`W^Ex&i%L_+_p(vUIItK z>!}e(8^P{O7(=MVFgVfapPWsm2dDWpUN=GpIO+AiZ!%~F=ZE)X)Z@>Cqtf!^FKRq5 z(`!#`5>y z;P_NUswI;a9EKa^uPz|R?WXDTKK=-Bh;>>`DaiqcHOEzA(o1lWie$WeA z9|IQ!pZ)3N{cxuD&(3drad75c_sEKhHh9kNP?={8f%9ouHFUi1z4(TnuLZ#2mahoy_$W9noCtT$X#}TTl3Av7I_QV5Ov@S+1()xB zA+)p9;3S`*@K*x+6q76mR`i6yPBuJU{Rb1+DJb-FvOWOo)}@0}otMCt>9#)sIW;yj zCten1KLhLSafTTN8L<6p`+nfa7}#}FB)ZQPfJ4-=x%ve+uur|(Ny@YVdEa5%j;)Iz z^Mt#y8Rzl*B9e#p>m#?J_e16URU=Rh=RTQQVgrQwx%I|Jsn}}~YxFT<6@>R!UAq4p zdlE`g6IA9rKxyNm-b%SBC|{G%mT<}e?a%)naQZ5M2I++R%kCh|<(0i@s-439_ChMp zL4MHCV<7skoB`sH1L2cmBoG_-W;MF0V$LquC97`?)cNZQlq;JtFH}}dG897|OVg0) zam*`zKHqH~^aV(18mWssw#W@AIx}7T637W(tBcEJfGot-+t0ayTz`r2=t3n>-`PF0 z5I&4^QhsTzZCp2>4`#+2;2h%YTlc5ve<%EGe8i1?Ap}RKt4$e#*l&2at9c1IYigo# zriN6YCjb8O>*iQci*guJye0;OWs>Gj8zQLDpEXwe`~^8V#ZhkrBS1YmnyL#qmuk6J z95lmtk)s*bUe9zG)RiY#YefinzUio~bj<={M2Ak&IL;e4&2|$95`biDuqhmqhjW?c zK=su-pr$1mJ{yKQtw5_)7K<>hw~{_IQ#fa`R_FY1^)=38n;VY)M!(N1meNf`j)NYAKa3nn<%&!)VVo&;H^ z>C)937C?T>yStaH0|J(v2UrYdfmaHZwfS6-k9saI9jAeQeM=c_bM)=!?B%|_jPu50 z`mATdrNPa(dsCr13*^V%N4zl?09(gTw@RlQLB_&VM*a*1gsaopqvP@19QgQZ&8M9p zb@W=TkV`N~c}l(|{^t(nrL&GPL3qzzzB(ey$_Z*OY@06&3xi21zwy%)L3|&|mTXD{ z!17q%M6Tc@u4}~8j~TFs#I*8B5t|#Bg^i}<&9Z@b=hkG@iw3Yce8u3O8$VdvL}o3F z;QHC2eDmybESP3{(Z>)D0A&;!2yXIVa$>9UYz2UMS(kGh{~65FKe2vbz5=EMo4apG zHs}wb^E}Be47vx*Cc=(ku7i5WUjuy}dM}ctAIx6@0|n-+AD$6l%)%_()Heghm-h1P zw;}@N0c%1_)e|rkvHos!0oUu%n}7D1+y>)%$%X}MT;H$I-b)P70+UB?mmXh2eh5e2kVyfA>U!jv>3ohO#E;d02*5pPd7Zgd*b$8_Rg!VeAcdMBicN z<$#GrX3)FhHqZ4KeJiVPTFy<0fzi_)ng#pDz<}yB&l1fP>etPk*O0So`1f(``nCn? zAP$8GV{`FyVHD9`(~h|d)4cT)=o1UNca6&6KTuz-IOl3a55!}poL>(kuS~zlY}mX7 z$p5BlU$x=qAT>eln$Q@iHgnYVZ6$)jwG%h?MI&D&a?X4I1fJ&(hJ=dj$p?~?wMT_~ zC-O`CHO?zb0a?v0FgzapfwfZths?1zB6Idmt7g;!!|kehW)dxP^C5O_tjT-UHq;8Wx5#fxG zHoYE{OcyCfeujby{|a_!DuIfl^gEFk-IQjL)12^$cE8EW0l1%KHVB z(w}UCaf^8zf35~l2EQI0sjUSH>vq*bAs?s)^cL-F6+(^|2h*3yQV`ChvERX_1lkJr zd#FieARL;PEb&wc^Y9nmC6yci&4}3K$>`%?K|GoL_4rM&m{_0)3Zs8Wl$+IJ*A@r| zb%ZDM+{0dbzKcQhpD+*lU_|EG2QWx0HW4}Z7j%qVJj>_^prO|F<~Z>jkaxGo>N(Q_ ziLY?3f8hlv+Kh>w_>Jr9`suXeLLabaWsafTvI2X64Znz$l>}TOTFlIfVn)>(^II0cy<}G{!_pjMZ3~`uS6|HDCz}%M8?|3u1 zW)HA;q$`e7M;?VqcFO%;2eAJ0kCcV{X9u}rhJq*9tLw{AZ?o=)^SEqk2W%zSTz1O>N(hYi!DW@WPosGkAv28p4RxmNp>OYi{~=g5H1x1WN`sZU%V zv`oRpqk!7Ia|bwm+-W&>Q34!?&h%EYhk|ST%b9m+B4B67S*vnM0Bqct&%H>|1FH$` zsRRybuxbvZJ>edXJnMJiN7!zFUERqYAK9b9p2@bTghT+>&(r?B_px8m!6@f~Q4%-` zU3l_Gj|^S{3I|O7+l}-0+Xwn06o6oo=iNC|4U#{Yoz``cul_7ad$QF0Vr8fa_EqrVE0weZXd7oXnKMCqjg}d$z zAs;T+(qtolH;}XBx8x7V1L>6id>czYXi`QW?8kGLT2h_Jy%`4NGo(D1%(x7izDdqQ z-(`>!C7YG9`Vsjr0k;d7?tle}ar#CyHS*!Fo)tOT2d1|;+dlrq9GgSma9!6Fqu>8o^T@Bacwbp& zJ+$AN!EnReniF$n^3K7{0J_Jv?y(%!v{7u772~EU!rIo)zW>P6xWA9!>|d zJrm7Lu|Z(se)~zNRsj0jX%#Y5h{%PR)cYlgeeV>Z3m;oBCngXg(XUg(cH~Qush3Z|x@N>^Xf9a|c3-;kmGmG*I zfbo7M-mK>ZU_6i)znM`4hC?Io1m?xSV4W`T*SIB^IG4XR-&=#ajG$WPfg@n@<~|Ld zfjgM3U6q}<)()movL>5hoj|!}+xP92Czwbc&i+`8{>|WU(N@P<^q@eP_H&6C?>L1VEq_Uxox+1)=q;3Q`Xv!LyqyuO!>>SRqG|NQiZAF$=_eEu0>MCC zR$>eF5Yx1w=ShE1fBH95FEw%&EVKiRX=5-a6WJzdgF3F+ai)SNpH0E+Bh!_^4Qa6O zxPJM^bUv6YmKR=h#eSnW{U~#dJz&$}`)cHcJvcV_xO{u1fIcLX#1GipVNKjE;a|cJ zR=@ld5}cyJ$(NL%VM_y!X&%R-xD~<0dayt^xfUG8OY}CsJp{Y0eLdmJ7r^%0X-<2# zLDYBj-gs{A1j_|s)7zI0gXQn`(?2uP!9t(+uD#9%a>;~z(i9TMF!nUhZ~PCVNSzAC0*)E2N;z8Fo;3^r|!8Am7G(^d%Y6g z`DG0Gi?j!y$mZ~ajw6p%S@sjqrCFAgxjPT~rI$aP>c{en5_t zj>vn-(?Aj4F8klS+mK1K;n8sk(6eWaK8WWHL!T!GqAj<9^68)B#it{nN_kDkZHVXB zF=xNpos9VRT|BH$B+U?EdO-M*{@W=CZBucTFh zZNh;)?Q<(&zFa6V;d+j~ajTqWoY>ok80 z9RwrsVxO?j$Sah;e$j@A`OV8keN*OlF`sj}VYcTG80F1yh!W_J)arjjlAdT zZ|wg*f+nXx^nq>6zm)5~A-S=D_SvtxZd|UQ=@|8$g$nb4bYoizOyZ!+bKX#dF%mRh z7O^m)zeBC?KxxJGS3oM3&HmL?4QlfRi&DE$uW!j2o%o9T4B`DXnupl8BseJ7CV3XQ zt&IZ*h{%O{sO=T4ng+y2iC1W!ps!1);qwA5`Zd10W)v^1BVW&*ao-<%&}>v4Fss5o z(3}T!avR}bwx#x%dej_@_A`YhuAakj^N%(9n~q>=AEKU#IdC)Cpd(a;xA6Jq6Pj__ z3Ff~J?dv&N4`zZ3!JPHD&I+_wh0FXypDPP*q2_;}chWFY>PjNWOaDz|x@r$Pgel8x z2OW@#3bo!*f&Cvx+kNNf;=#moo|65TjQJ!AZAuas_5`YDYAhy$(U|mwIVEYJR7ez! zHKKp$gG5|N{}s%}7hTJwuz!vH_~5JcM_{25#ubpA3g#_oVOdRhF6v#d z<~X(q=IpM{$>I3(Avg8d5fkLWxpwBIX@coctl9Gf>{tEur?5VD1LrW!x}QAj!9j7F znrq@0XcPJiPt4r~2MNoqW>(}e+}>q(^W!|`a$Ek%_LSjV#Ycvu`UJUbh4z}h*#G`P z%{~l$$HcPLn9lV>U>&zz(~^k&C^M4w%t;|2B0t>ZePta8#N2i%PV5=j7xAmB(img~ zTH}8C3u9l1s8P)`7NFR#MhNnG135|Z4c~89FpC_Lmq>L+KIdzKRHr_;tyd1cp!EU|;~=t+@opz<~`UGc#b<&?j zVID18fn&F;Vy$q&I%39uUM{6z;R%gq+ad$}=c? z=hA=Rkl1JS@B4kYNDgCIJpK+Y6tIZ0cW{BXTELty_X%)w+4v(!dJpbCN90Ni@Xy*y zJ1_Y+D@nyl1u<%|!%--S_#O9jL%4Np7l`ULOoKzdlsh!w4D~LDnDR zqCxxPIR#Ue^I&@YMAF*`Q_Nkq@*foB$Nb;p^FfB_s}sLs=_I)bq#xynt`v@fW@4fL z5A3_t-GAoPdfjo*+0yaOoUe)<}qE?b50#-06ki>>!1`~@S~_ZK*juVeVpCQG1U z7p{-RA*1LIAv1Hmb&gpBQl7fzjLHts^toO5hWj9Lfg;_OzLjI|z~1w*DL&Y@_f+`H z`&*#OW7_8V`6~8`w0ZEJ3W6zYY#EL^J7>)Nl zNR^ZTqsBeiE!eL}VQ>5AHG?^39Sl{0IiK9k2LW)Fx)p@z1Qn0>QL4N4$Js?8Zr#LDzE{D5ff>@9FViF zsM%i3^9>9P2F2(9Y$&aFA zp!S}WXXWz=-{1BuwZi=%MXM=i^>`X2Mp>N_)}Mine&|v6@NJw=7Afo&H3yX))SRI@ z?D%yp>=fCOKsM=dfdMn}!k3Ka6?yf_t0xoI%(#SJ-gP z2Yv4O)1RxKy~lG8W++~vuk3(c1~I7}R6V~}|GSPk;+D@n!rhLTJDzWiRrtv}V3j@VP!5edq`BVDxlL-uJ2^cSmU5N}GWBJYF507!&MAaGVWJ zDk}iP#JSpA(M`zLnxt+z;t!Jdxk4trP?s#QkNwT?24s1ApWpZO0kY>nZQGDC$f^W~ zvz;ynBbL)AVmWHT@J*Rz&o6y23HmOln22-Ux5Bd3`;d!Uaj7qVTL8>VpSR8zAg6vi zQ1h~X1o9NGbt|05p0b?tJcST2rl(WV* zNg#hkxiBPe2_VlppUMRN$+9=k>@V^KgXbk_LTt!C50T+hP!a?6$&2LY&4NH?y|>#@ z3eP_@s=xf+asc^nNX1-T52&@CDk;tp1@+Mw3+7!SK&t1ul6AZu$TZ`@UBS6Pij(aK zi$*?r<>=$^KwPh_Bf4!gEJ5#-+e=|9+#fG*COGo%0-fF%UA6PbV=jugZ(-F8MqayS zKQ>eX`2jW0>r$MrZ&k^g-9HBu(!DybC|NK#@%v874E85*WUihce}Vgs6AOFECD7}! zH@>i<0p@}+x2a2!Q@bi4s!?$a%$*~-W>9}L-Hhn{BZ%kl&0W5KcVa(+VK>h+H4DrQ z)yi4iMBb*I*cTpNeBbvBS8a5KgW;2dyjCT4p!Z2n#6;g142JTbONOe0L{~zDN0b&w zoa&xeZQw%R>VHGi9N8fKcRS(lunl4sqoNnTQ-P4x_+RBMQ;;I>eK~h* z4#bQGG92vfK&&`tF5Lppf5VA`MY~adBr7^*|DFP=BP&$>?D6Pl`slKD0`>4$^~#$H zn0qaJdh=fL63&j?A)`` z;DS8BzY|Q9cg)B;bT)8LvI0G_4h@|KJ?MF>G`q_C0mXUf(s@5zSKp1WZT;~9iuW4^ z)(YerRLIBO7{EM#+1lftgTL|l{1S3smlKR)i`;g)Pk?d2UYZ@YC%{N@DSDI~Kk`@=n$J(5zd_3CbSEhv}*Co zXtYs6de9O33P=Z2)%gH^hFrS&5qrJQiCGG~oIs8VWBb+j??6pkP?fvt49?|`*L=BX z0~#zRTW4P`fv$jkmDd?7{Qet?UTL9^`83myPIgDok@0D#zM_mh5_^38C?TNz%0|QO zHuCjG%5NoY9|HBhuYY1VjFICL@Zb4XeYhHG3s;0OBm z9O`X7@%Jle_2m7QI~evE7yrcf(`binm7w7r(DQUSswZ|B`;ebWPI_g7!Fxg0x8-L* zsKbYA_z4jV*;`-jR>J#e`jP4X1dy-p!*PkcRD6h z$Xr{hh1Iy3VaB}EARFE3_vx(%h@QL{aaP6v#BRwoJns{SQ#tP+CD+9QzwXx$-;$6! zQx(uM$&CCUp|(WZ+}$A4cxglJmk;{%pR;mDvVdOPaQ@HDUXU&8z9IKL5a4N)$H)MF zo|RgMO#Cl_)Po{}?gk1Fa<|;gI5IWy9j-3Dc+GqN8F zWwtiZXV@qF;E*dA#3tQjA>w&YoU3CH9)dCZh1tl3O3*zP^KXzE^GUm%J~K}5N594A z7mY7XLEGP@H{m1BQ~O_@bET+)mdU7sMj`qXi~rc4yH5hGOX}uF^pHpDYU(anc^Zf{ z#QsfA%sDR^Gc_5Yj#~eA>}J#nP!D>lQQUVvmQV@kW`e1m6Fy z9Oo<45Cz+cXOgtFnqVE6*s$XD18nVX|2?jVet4GNsci4N*x#PVrG7XcIVD+t8T(N$ z7>RT_rS=jm98N8kJM)9ZLM@}pIQC)o2amVPXMtso#3WruHCR3_lTia71SMEsm(-VGR+;7Tq z+He~v;}7$8aWsMn7Ocb~7c%{&gW4Y#y*rc{9%n1Yku3Z$^uDlJ(x$O_u^+8t$WAU8%{F19UI5PBvU zlXw<~A{awSHV-s28yc0e0V-jf0 z!5*}Z$e67y6obZanYwvGBWP2yls#O#Ksiai!+dvY&To)o&xi>;pD!*>R^1VN`krH zXgYiiTvqaLT|d|WF84U2&;7RtE=V$DSAW!kGsjh};-s-Jx=*o0EHV>Z#@BzkTT;Nv zM~mGJec!e}i@H*Rupc0ji^18h2F%+v%bXw5fO%!YpX7>AFz+jD;qu%87F0>KZwFSbg{&nH7y{ChaNK8g*{ahbu~L#(WjV`Gx3Z8 z^$w3a*SgnrmZ3eCW6z%8z92*CH!BB| zn$0iomr>Wf)^6PP&K%6u3sUWTun*O$J4S578Z0=iQ}l~5hoaaS=GwsqmOs_I9K(vh z%Bg0UPihXiv5~&P@zUUub0H+FeF|K;e%doWd;zB7`YA_JW`XiZNTfW9+TSPuQhSbwdX3d(IqQ(k1-fE@R=@%kF%vM^qGBNl_73!%uLh9amB zjvXk|w?+LsI8}CB_BQI@_1PW$s2g|x8N8@A5T+^lr) zXd1kghCUNFVfEm(#Z)*W|NM-cLNS<9xLdxw4Fn5r+E0|W2_QYLp7fKV2jTT2vq#e~ zXA-q~(|pDRWR=^_KmI)ivdhWM=gk8^f7EeCAoM&4KH+QJ8#52~{rk7W1}}p1g(EL^ z6kG@M>Q^Q~-WlLf@ks8^VlFrpkk0H&bcZwcaj{*C#o!hfKb4zy0M2jc7Mq^!1<&%5 z^w#=I;Jue}jU#se&RM;ao^Zop_OAfctSt5(W(Jif zET+~L5ujRbuqJXZ9i-CM-!Olz2bq^aO25`{T{}MGRW3A#zMzg;lQq20Pm4H*^Bw{N z)#F-svS&c&xNBeDVa)HPm%eV>YYy7S-#GHrrGs`x*e|uoFwlI`pHK7363D&hxw_i2 zklSCqlosKF>vE@xg>wXui-hw_2MdAhZyxZGP8EH4`7IXZwE%9uU;CNNL9vW@J2T=m zsFqdF?v@+DKBgwsAs+Pm^>~r?OuYiNPfih`JiF1q&6l;%APvgrbx+Cl(Sd^1^i%bb z9Mo0TdLLGpf||ODqf_@X_M%=Ld%blMj3>1}{l|>@?n$*W7*+zKRXu%DIC9hOG_uR% zex>Ps{#%L<&Z}PkW;acQv`b<-F$&Fv|9K&Ln z@4f^ov5!0q5=XJ0`eOxU{RZf1tM2i$L*4vdsS(X!5*RV3MU~$`eZ*=^xM&J>=Bno> z`U=s9t#0Q~^Ue#Di3gIO$xPurq*+XobR7LsX%B~N3;;A3^^7y|`QA@_sFP<0aO7d~ zapWZ_{+xMttD6brg|xE&*djlG+>#{MP6W9_RUXuqv!M8<2xP~xUnKCYUnS;G!IN;F zY2XSd&^@BL*UbUKNvbqXy;nh(mr88&(mx=bAEh_@!3w0cpi;w6Wb`Yg-;oyc1%;@| zux7c-ARThSs$qv2K;>QTd(pfAFPHNIXkvgET~((aD+#(DHJ486Az#gPb&q5=H|Wd- zd2rCp;5lw=c774(c|Ru<6FJ_3QIT!;+r50K+jsDWUV4eVzPi{K;mA>y9uFAYjrYX^ zw2vO~(t$xykU!6-QZPKMCGUPg7|cb)mK`UAz|7Z8O!wC{Fc*d}K81YbR5d|8@&=8k zWV;IPW3KJ$%udDWXJ8mVe(!EY78n^h1{)yn)9{s8M*}bFSR&~ivRn~paVU>DL|+e5 zRs&RhyW&AopBJL$u?&Xg} z(3(40@~_|{=!FVY8Hy)>aFm6ZlFAV1t_R*Br*(o}|6@BQ&ot0qe2}knixYIdl=RR< zpe`|zyJmOfDQL24U1I2~2EwJp$|B_*$RE}tWR@bwL0fy5=JDsCK9Mo~)&l3Fn&C0t z)?Pp!TmBr?&;W3}r#FbM4v3oi@6*S#L76tpI6@44v2;up3)}eoCOmu2ZQh6TJ^8~f zd-Oqb?(o&=gDIfFWWk{}kOLZA{`&l>*uT)an#v%Dyw~fIUFz>DK=uA7#%hsZAaX|> zK5i=ks%HAtKlfta?u9 zO}Q?If!a>q5)bO{m}`1^Atu5H8u4#}Wj7ay1+hV0!WWRrWOzAb+ll8D z@6?Cl;+UWR^sd{a4uGh;oxXsd-`9T#OE^AJns~%qWh($OdGYBwkpf^uH5AyWJOM^Z zrq;Q%=%*h)7;j3{0V8U&4`gZ|oM&mZiFkIQe>2{HY2-NwS6rlCzx57vZcSPK4JR-T z&B@ZD#d}Q=p*6l2^>H4Z$EkR~F_e0+?qQGm(E0ZfQnV^~Kfkxnd;#ZobI;u?aUP;? z)*86*1o?L5i!%{a@;4B~%nsY(OQ zK%?^IbfAAAXm|v`njjnDB~9Rw2hlz9KJ11PqNKCS%_gZ(g-PrNbjrF~MNwct4~$TxOh^|?ojym*e> z%fl(4K;%4H&WyP+#-*jH8sq>93m+Lp{(}B(D|dsHR8T)1Gf7?C3L2s%C(ia+16fX5 zs;zAVNG%%U&h4T=7PWjd=9UX&`&!2L8jGMaIJkPoBNDVEHSf8#V4f@>!64iRbJhD9 zK5-USf@xo@+xZvh>#RIg+b|{vE|(Sa`i^FSOFRc_t2q@ouW_~fv%z(2d*+NC^%7Vx z2ksyGav3bVaw|%$QRiM-4w@R>0J9TFH%Qx4U+s>(01??kOQb7ceL}0!N$(w4b|sg(k1^uaCD(=P}c~yS$zn{oGOKXm7iUc)w zn&|dWockU4Ucg0t0rUm;Y=5|kbGecpm0lmrRgz<7RU5CM5C7_|*?E4@=Juv7INgQ! z9vfvEk6(DcDNOqM3b{LbgEa-!cYub!=vCqm86dnme&+rle*N^1N23a`@8lc#J{kff_7CA15_sQkyGm8XQ;R)j{tdUgBY`j|t9zl`4+sKo_Z3yFfe_I9 z{q=t`VEyiK-^JjQpng@TzP+ppOwN7Ed`t8I$zKl)c9$lA)QgW?T+Ew5kSlayW5Io( zrYCnY0eu&$ja}or&=11x{N|yv90*` zwA!@|iP+wI6-jFSLJ- z;oQonla`&~D}JB$ZVY^QAN}Jz*le5)RuU>2AE<7EGt(pX_rG_dzwYT*hSNB|w0iEh ze_uHm{af7h$lTOnu(tbwM< zy9xaQb*m@*Brbz~%(%s#9^`EbRX6v96G88#2VXlE=H{Z~4y*X?0ulQ2!Vmgsfna~D zu%k2wi^0f;C5@&T{y#7s}DxO zr&=o#{La}yiOUxWU+%}2veoW#V$#D&EqgvG?|#l#f;zkhlDZ~poJUyuI_e7)rV H!|VSK|KKG1 literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-02-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-02-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..6622c37b18371766bc0913aeefd3f9505d3f97e7 GIT binary patch literal 168332 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≥rySycVrQsFApa-UFH&nDQoA@hZ4FlnR7Md$KAg$ap;VU$L2GboZ!B!B7e|w!6EZcOi+@NJ^v(v z8OoY-wUX_+p(62{p3XfNsQh*L**=k4D3A8ooxEd*d(7>`Q>}W zPLxDd;srwsBppQ1>K-o0Ndy1O9It7W7$NhRRoh)u~mX$ znBBK6&XHggmg6zV<0a@<&eY2}7!mYeN{o+1apSKa+{H(_PcUfO*Zk_g2=(iNQLSZx z(DXX>;8%q86nO*1bthVAPR(8F7^cBI5=}}SjV5S{PEeWuCIs~kJNio*(opx>PQpzN za}fq@*G#0=ploI?zn^125Z3WB67sB2>f)DpRu=QzHXbW^Ezm=GzS1P=rxw&jtg8F# zaA3c$+bU%neviMMC+BZq-h+eVc&6S9n7C$q`C=EIV-N9f2K&umo%#0#GDQrGKcPC& z`j`R6bN})5V;{?i09)m@d=<_O3B7#iTZYd?-sKyol%TIqG3t=n3Cx+#4x7|ZfB}84 zoq7j6Pw3U1=6!|rT0R-|G$GuhM?}ASK;aJGaUFfH<}=9oly)FKg9GxSbu;2Fbn0v8$`#=l6Z=QRy&-$MT<{4F+{dR1EsrQ}^G@KMLog+zRcf@nN=PjWY z4Gx&R7Z&<~5&J;(zb*aZvc^2$k<9p=GR*D&>-<_9?{#=aj@!y)!|-@_zp^pr{Aih& z+vA?K(U`jvY|ZNUzHQ!j$1DLx=HBhC4toWo%R)5t>$jmlZ7HWmM0}Y40Opp}E=d3Qp$vKA-n9~m{Nax1$x?HQypL-+uhty)(RHcizS)z$uQ3q;c^-0D`u6$4_xlx!F}*5JJ#;Q zF!TGgnJ||u)`P4EE0g8$95B?d@CEBek6BC>1M&PSq&QV_59?ED=Fi9f;d#DwV&{!v z8ovLI#q3hHgPAuE$;-FZaqcptm!#=||NWzL)&2NhW#mCIt?&?L*k&_jkKmm2XQ?nf z2K;$^qFpk?=mTVLQF}2l{OeMXlGnokm|YsTsGJstnVFPBJ{y=Xq4Lj*dh#MnH?mGY z#Q9zF+3me&1HAD2-K*OH>(}IWR&C|O_&(8AYm#$y1g4({%vPL`fhhyhwdnveoRd5n z>UlH+_vzLD+&v%+lU9o6n{@6l$;PO5gVOf@z0?}pXG3AalIM}TBjCNvQctGJL42=_ zLo*o&`&0aX>>ZAVi9(&Q#|#ty_Gv-OQ z|EI275e&l#Y7R}mBw;9#b2|Ni0}TE7uKz1q69zdY8g86&hXM9K=bZy&q4$9w)!%6$ z=<6JtoQRxIzV%Qsv|8%reOr~qIULSMYA^4j9w9@8$zXGo_2>9H z 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 Se{%j${`mhtUi^Rkr`r0aFCzIKu|Hwl4JU~ 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�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 K`BMMq&;K8knPGPT literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-04-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-04-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..b5f51d2c404f46f29707b04977b14bb95af77a13 GIT binary patch literal 168332 zcmbq61$-3O)4?UUOM&1HA;Bq3LXaZCy_D-ExgQ#XokX zg^x8Rt(QK8CxvwI^8&7;+*4f$1o93rdg=T%2Cc}M;1>=E)DrL#o<@^S{>qMgSH$S4 z(+XnP74y{x1shG1@MH2_fzHE1bPlc|J`Qc#IXF3WZs*v!Z6^mO$2J{0I~Y9uf*e{7 zbZ8ms5R8pR(p+1`6VZJ6^kgt3H9xW`t3JUUVF_C=~f-Mi)B;ZAKGTLx%@ zf_0{rdPA_zzqKjE(3&*Z*ori#l{TOi;W$)h((8hT25WKHL2nCPc(>q6J!iAc?uT5_k;T&SJIL8Zbn0>&Je6O z8u(shzbg@_HQ`qpy%$e{@1qt@9SrUK{M(x*nM#Iv`L=iR8}I8BTC#nBr;}5lsiPsJ zWT0;wuSw$rLOnf+?Ue{X{i6-(JY^b%99ub(clJK|U`?pb6okyld&0XMkxSFN&oIr1 zoiY=W%MKhQrbLO9!sWOQRqSJ#5Nj7$Ikpe@@+Yh7aDUQ zMd5X9Fd9g2RHU+CtGq%?TG9~&kHCmD9a}m&Dri;`aXhvDXsB9~CU{aHp~dUZ$E5Qy zn)F(O#$fcsLxMHv+k87h2!w!3eY=VXAE-BK3?Ts;y)jrD z_JVT2`dg}kUf2wYIGN$(|?mmP&6aJ2n|j<43=NT|^7NnENU^78OEdirU+be=}+ z25-H;P7`R-dFv-42;Z(@tpiQQ@jB07`qxWu3TmzO4A8aK8?ZgRPhvOm?$*-S+Q@sO z_^y?YNgL?fN^kHswrbO^jgw=iR%qJ6t&nzAkw41kp)+ZW-WpyKzOhtJB126PPB$^o zU+;-_i{f~S@{;d~?x}rIeKR1IO`?4ziACk9Ao4-C2-f)PLUlr%7IgLnU&yDr2%|Tk z9K!z@%MoNLEZP^f6_i_R@REZ$D{p;~o=KO-(8 z&k%oqjVBH&8VrAa6qec(m4UQLk4CHUL0cjE!k=Ox20glO0KuVpYvbiMVwjK4phI^s znuuxXf<1lP5D;OEf#+Sk#(cN8c)mDJ49>H_Kch=_oq(TwC$`sukJsd(IvtUVAIIRO zGyh_Ep!X054b^FQ&4+5y%{=_&m|E5!Rour@HwXhuP>3*Q;yB00E-xky6?beS1qkYE z{76KC4Vo%8nwOjCr%VvqTd;Vvf_?R#eg>2oAy~Vh{YKze7(qYJczWa)wFLz&jknfQYzPnUQcZ%V zbiF2f`Dp@;L3*N7{FdciPi!NR)7zw*KpY6wuk%t!qQt2y;z+WJNJ4-o(NYjWkf)L) zj|0QYSMTH73;7KrI^l;9%u_66qkL3hX^=-8floJy4;^<%o0PbiCJCmh&;j*xTd)HC z(Gqmz*E$5JviJt*Cu)L-?nml_ecdq`5NNS|O~-e%9|F)rXF!wSGe1#>oNQ~= z#Jt-P%p129?(T4s4u|06J%+j*kmD40TDWktRL3>`uL4J3{< zc3aZ1grj3VBUf8Ogvdo>rn+1_SYC4R06f3$DW@;iUdqcx`&yK}t;S0qDr=3#J6Xrp z?GX4{>X-H#X-9t@cCV~Dg^aW<0*qov5o4{)o9bDl$B+Ml{%-c?8-u@;^g{JPo=zl= z@m~wDfBs5gSs5|kA?cD=Z+GEaR^N@77%&7=dJP6}j9@yAzjhMZM6fmxlXfwNvi8$d z#LEK*gLg0u%|d&raQL^OC0`F?a4_1K3R{Iv8?$^>aj-K2gL!YW>^C~j%KD(D@23q6 z)bi2^di3DQX8rp8i->mk`FNm69Aqr+?U2y8YjruVbb{v z!)uVgkxyumxd1+Q!$;lx6lhbZQ3FDm&$>r z5Q>>GNlb_{@DMyK$bO{)>!lY7Tf(wFgS3Nil19lYY|t7`BB_9*a{xYH5lIO=YqU?u z{LZZ#(H$?1%7u3YyKs{;h1d= zC+lB=Lwbark{&;-^W(Y%hxDxAn7*R@IoVy0?$5|(mh%-l&P*Pu_rk$Lgc94}BEwNy zq~AS51;vv7q+=z`Kl$%)Vun#Z7|TxljE*Ql(248|6kejI@z8qu`Iw9$29o~swo7T# zTu-1a!|{y|p_L1f2h)C=c%&0Z%FE_AAoqi{Y}C8ux`4WD6b_>R=@?7dm{_2cjlolu zP1YOD$pu|7cplmyo!3A^_Yu8_`V{)JiG%e5A0M5G;_!XMV++4%ypsDU$XBP8=S5Tp zGEJcxs9O_PM=%32%E*AuI4q}tIv#NTfSj#ij>Vx4$^6qTsm+>!LBv;)FFK#PSBns)MSEHzXg z5a_QP>Wc{}v2AOdo_+yZ!@%xhw#@3z8WzjX13gq>t#!dyLIaH?MMEt2{=m#T|utC|E#D2i)3)2-iVbupJV zt5L(Jb{Q0=(RyGaA4n`rE=BNqC^}we@;8R^C^V-QKGK9~Nx4I;ffq&yQg~CBCt-I?vhrhQY@~gHl@m`gD9|+mQj#XjiH>Uw5mpvRd4&h!i+4Di3J?M|)dA@% ztdUIC`x9Fu(CE)heV>kD5>FAR+)%{dQP96zz_@2!zi z1HKvQ^FDx4G|(dq7e9EeRT#u zy|6Y&$2cVpiuQxipL`~Qx_X87pi@hQd@aP-qQtiyoP<7+<8pIVd^)Q4CxsfmY%7+s zt>U_4{`dpP9Noic8cF_2cFXh&wLxVYJOk-yBFMa%pGOch>aR+8ldn-k5a1X6Ls`(A zNC}UNhdpq}bF-)gfR{9{r1ql3>oatqd!IoXA8kN@b{Nls=f})9XdOw3X9@_ykWF$o zT!1p-au+{a5pZ`&KHOeapW_9C5gZyzp@txIH=&Fn4?AK!m^-g|!BTxrqGWl~LPrfI zHLAR5wH=iEc!T>cq($cr{M247#%jHUv4gj1T%k93>ivmAX#ZHiYH(47U-VKNPkeE8 zY%(pGAz=v^>9O#%c0h()jWgC7C{ctHba{t}z`y7mH^68x1{)208pXzPI_8O`K1{Xb z(vUz)9>ZxJLJZ!HgaHrZvQ$de>DWkv2|rkqq<{{jh(q|7>#OxNdXVL0Zxfa!hYiKg zqSgylx_`Z=*q4AdH8xH{U7Ma?c?^|AM?w+6|w(~4zFxpp0h#EWBdp8$v`@7 zzr9_&!g)GpQZp*;SvS5l(&_dsbZjWyQs;E7jMzLT88~ggWj1#H58+ZArSXb^_0R<~ zb$Ce63w9Wagsq@HF3*Kj=nhrFy3XVg@fVGQj0|G<5HR@mF}WX&SD2>KVfM+R_w5qV1E z{v2T!jWe#j^B=Rk5gPYA(1zgGEKMpSj)eruL~89qHBO*S^Y}Up@1PJ5&qOZ$h&ibHf8GT4p`X7@S734-Ep3s@)3(4jvlVV~K8br$Ff3(R~!GV>kUHX=ii z(I1P4NLXbpn$}&giC!U|I7;9YC=FXLxf{-sBK`45%(2L=6Cj>G2u!#pN#PN6$?-OQGh42X(cd$rFKVcL)aprAzdjY z{VYv7KOmz8R;N60xroW`l=9LsUWS$CbjVo=OLG&w!P7s)OQ-4A6A7Dwb)+i6@~3kS zp-p09CM7&VlF7o;9EJ8LF9C*8(v#HpS$Nt$CA=?9{S>mO!-lHDQe7zN29ep7l`g1# zQ&zCuP7INB5ioMl@`n4}%g%17%N3}4)V zhjS;bKLuCNrG1Zk?z}W4Js>fY{1SJpvb3qKk|Kayr|9yj4-DX7j7h~bS@!}Z8Rnj9DdGbjUvviWE|Ru1c%>Rz)V&wqQkshIS02Mr9c4*ePJnP9XIVkLn)`V2>XgIMfb%}G)X3`!IS{G8G zAx?LdBm_HZAmP)xjtV}5$k*V7!XLI*==YZrjXc^xqAWi%4&#@pNtqJ~NHh*hHJGob zLDb36a7p}CcxPuv_aUjYg--qHwjNQBay^#TfK+gqN++Es$hm(W`lrK@Vk0oGJFZSh zIrrhU^e8wT*ZD2nx{1Wzd`ND=?qFu^pN>6Bc&p}#?Q2U_Bkh$^;&~eVafg9LIaS1! zV-58SB`%&C2(X1KukBGkRN~?WbY>zz;&lOWO`panCA^{wMET@Cp!uN^N8AO*)J%#^ zZpphaQ3~xhB@UiO37q7Kr&IXY!e(uP&C7eKXg}~Pdjug2SJr|oIu7};eMi@oEO7FS z5wwsXj`2OCS(Tz@q_5FT7}fN;qD|0LgWuDv!ggxzku6;RuP6Csu?pFSH!<$4#WhD9V!K0^14A@ z@=-?++H_wU7xR{nV$rcp9#8X>Pec=Vof<{^h|WtST_`+2urbyLXznDz%hpfQHZ}wc zaUZN>u#dmd10%3_Zcp5=AXy%57df#cyr_RG@OXIss1XlDe3hO9qWV*T_tFPQM>P4| z?kjNc?29@MU87UsgEInja z^TqRK>TQ-YE)8Q1tgcl1QtB5OiN(oFPuMN~M8kMSN+--j1U=C@SYGWTT`F@_>Nih3 zWM~VI<|S(S6#7NRWZS6fi?kf33-&dV!46*pr;3MOTt47OSi1j;|6Y~9I3FH1l%LG= z`%T#SCqbm~S0Q&$SPwkbEO`qnuWJ8`@Zan!5}s{eQSA>A@0n4K+!A5LnK>#))n--4AqFQeyUichw(ZgyfI>$M-~3`2oiF5p&-9Kmj^&G+hYzUw z93wYlMhg4Ouf4w7ATggWT102zcxAKeLzMUM~l z3ala0O0J>M7v1NekX4Ci=^o#XuXGUwKCRc~!QaYFSbeG5oKk+vVM4+GYw#^xMS)NE zLF6I7l=HJzOWHtlI=W9J4;r|~$6JxKu=uJup;8C@o>NQ5VQF+w^F1XE;ZO{2V7Bx? zmX7*ZLe38B(T>QLW*vX$3&ElOq8ii5{%2wFNitlPk7`_Ia4e1X+i;Zz%i^lq3&YpS zSh1aKTUFz-5}!2_g{|d_YhkFY+^R8&;XBz#ihgorXK_{IGJ_j{$6>v2DyJYIwwv0x zYAjXI`1<@vHD)lh)Mh}Ib4%5{SBIyuCgDkWW`8%{N#SQOhVl2XsK#cBBX0lxFSvQx zYF<2XN%7m}n4+wB>H$v!v$IoW?w}e^MBM-P98;u|*Bn!IEEDl8gE?!bdE({a8>(|B zMSIo#LN%9_<;-(_sybH?ala);Q5`!(I*KC+Ohtj!nQB}Ra~zS3c-4t;DHN^2qI*ko zN8y~)$f03FyZ6egW=m~Z0dJ%7FVx}W8W$Z`RB>q?0c8^K7~L4&Pl*_uCfyL0*NmLu7Vv3<0^6f`JTjWq#Y9}GVA5hXr3*+F(w z@dq!YJqkQ7>1gq#+6U;6WT!BTX^E%a@3_hzOct3GsDj=pL;OqY{0e!=eg};trWKB= zoVrkLpphI(!$2USTFOatAO$aJZpwC)Y&dkLD(Lwish{Y6RCQWXhglJ_q(ftqf(|PR zU6Dpz@wiMqxuKZTDR3p$3?jv4^sXwu8eejv6LUhoEUrRF-T%b1Hu6SuC6TYC!(a(3 zGgeC{R<@z)$JTVHmUxX=+6f&W6?$c9uzC_!z*Xs}#siiPm4e^4;lo!%EM=kNh(Z=J zxU!dPA$Jn<+55HVT8IKqbxllM$VPm+UZubxmk!9em)uTfJxMj@sO~19HY}fkr+c$- z8O3sFk=CNw^*{p0FQU<%E_}kmizV2C%YGN(oqWcP;21C(`QoBCPE;_WG4SR-6kIwJ zN8s@aMH}#gXHo>Zw}-$B%ZJ|nT5;bq=?^;pq3fP9oVe7683dul_qmJrO!9y7qWh9$ zcwgzjg#atBW3u`aWZ>8Scse|+YqvQw`FBdXxK10a(}rNE6eMQlr7@ZCr*KM%smvy` zNLq^HYB)-LyHgZ}z9}EMrId%n;iovxd)@XV4WFNdI`R&!>GQn7uC zHvstK5lYoQW%Vw=$%ZKOk-Thu$x>cz z!AA&D3Y26XY6CIYwmqL5xe4EuL85YDN z?8<$gjLp$=0)(#C(~}=cB)ZJG7zJFAw-Sz%_Y<)G$@9mxG~vXmD63i487r%lzY39^ zZ@17d^1d-vXEHn*JoAR)C<+{i@hfVl^ zV3|Ht+||r+xDz>j$l8sfy%=tW;`c(|$UdDHJc$+pyqsIJV=Fs-3JNrm4aB@wc^u|` zk$iCYmJ2w)xgbmal@E?TITI$}$T=6C_YiwglT91KoYQ0EqiYnFc*3NgoLv)QD)m%0 z*I@mJ7N3a;^A+Q?)6 zhc+^JW#-J}Eym97>)PlnMYV5gBRL$1FJ9Jf>qj2*KeUm-`_?wL{cmk-`=8s$WB!LW zGI(+u>AX1zx7k`26KGwV)Dr0aS{_c^lS>n6K^Er+$`uoj=^-^E$CN(Q|`Q{dXvXPnuqZ?!T1!C0RBi5 zvm=}0n9QO`(issOe8jW(0yHlp$nyv~zvXdNk_3V!v`aK@e6Q$Rio;Bn1bCO31ed&M zU5w{J_ODYM61c^^P{Pe-Lj8{BN$pshP{+Y*zND0su|_I0$zX&Rt@B#7Q|3RPU9^DU8AB?NFDm$@I4+RkJ$P+BYuvVKWx;XIty%S(e>32;X`KHr6% zX}S*Wg=|O+ruw4m0X&{ODa51=*8+q)=lMb#FPCeR@w8EN-9q4p$Hq-~G~H7pmVHd5 z`l9q5W;|8kvf{DW;$cXhFEfXwV=>Q{w+p-jnZE$oLmTXiRheMvSvXP~sekY|%!0ht z-Fi&DkH!riN7w)$feX55HD{)%37_yBz55#x8nc?cIl2gL=3_* zrJZ`%iq(}+S2X5Y;i$$AxgJYnycM2!Pm#2l4tWUr>m>D$O`bwgUs^g4@Z`BLo!?pU z)R7}!G!jvM^0No%9NG#`m@0|#J(21Tw&8_|jv!aI1aDLCOvjPN^LWfXE;e;Ya|NrM z#MOl=k&atdZ4 K^5EQI-2H-RFCBG2u3d)DRI%pfT!jyhIGZc9c`l}j)j?syyQHV zw$T!g?mg%0&ITWO3}N&`YXIW@7CbZ@5Jxus4#qsQ%pNb4#;2j-L+G@8 z(6+`ECl^Kwat zl&6Gi!B>v4wsH9>m&_EKC$#mzO4?RxpVl%9xRj}YC&xYOKBw}s_k1mtbVJ8wYd+Go zW1?(i1Q1?yT(-uMu0RuTn4HL(k1hK>B#q^C4k7cA!o8KgtYIzI6J0Jybm`ixOxJQe zkk6OW@mPjsqb2P(xfVcUpA0W0nTiMF@cqWgc`4JZ^d{@6CZjD6WBw(Mwvmoi zA{}}Tf*8D9&t`H13!0NiX2#QWttQPuEnp@~FlN3y$Ft6ZFQ4r3H1ps~inIb>S@)KF zC77?{E7yG)z7~Chw*y#T`a$DK1C)tbJ0r12g3l|ckbHoRDHeXr(;)j(EQ5>Cmvd(# zI{%_$y4aTjo_IW7?Jgs7ZxYRCEpRY<;FCUfIw9zrS-+uUvL&v34o!}mLVv~yg5qyF zCbPKmnK9{z0Y68p$v?GJaHgO0a1&%z&Q0sponBzj9+$5_u<%P#IOTc4n zT&*uyexjIGZOaRfX`YBD&x6!-Lis873p2Jx^IX-mig zJdSIVnsKB9@s&4@a6y}hBgH&5Ur-&GkUo#g)eF0O^+-8VJyB~LKFCabOqrN-Qat8f zYFcw7B~bD>fl%Er{!)e@ge5VB?w_P*vaH~wf;#_14e>YxBI1k1r{}6{;|o2ZR*R== zgVwmx#&HEQ;Y;h%w)rxXAY4fC)CzSO7MJEUDtx{0(Y>x%xUgz3}Vrht^xfB99-NI`?vCtck&!qo^vgSGgC0cnYg z$V+oTYO5Bop2mPcy!jX}AHXsNMl-|^;$~Sakl;6pFR1_9pn-*IatUy72&oBu1@AC? z=$}rbz*6GTJlujGUY3rhE|@dubWF1WFI+xql=lRb!&MjmNqC#QCIF8>;5BO~FZF*5 zUZNJrMGIPf&p2sUc}CjvB?584mhD1yLpT@BbK1M=(k_3$(`Lt72?{)LgD%%e2w}NT1)~VRqv2C}>G^Pua_r2Do=w}zN1lA`ipiza z_^aAfbrnd~o*2FQ;v;T*nRF9E@L{Nv1Q?}W=~%$DLk-8KUe)H?Oq8aw+xp44 z)Fr5!=oo(}9^H$CF^9#YTh@74`%c1>AnE*_8Jk!f+Bakz6c5(mREbX-_#s%qm&sG` zZV=NTR4gfc`pF(8$Vu&iX`d3Fa%DzA-i}0jV8#P=JVi88@?>&4C9ah<33wG1P_jia zeX4-4wkUy4B?XjhRZJ{WKwyE6lpach&}`WdtH%_C?GT{7RK6%Ooa+aB^@G@-kUr@E(jL{#rgn};^|Qv&ZkX?k8>&|x&oi> z`9xpU`RlQur85lD`UkKsqkw1fV+Fj5%kX$=;}2tV3L2I!z}p-PA)CK+?#)te>`GEA zw$gt^mX2)xY<|Wd<6DKkVDdvnW@?O%sa7nIdjk`3CCxpM4+5mr}8ZTZC za=Q&PC?gyj2bg@s3dfdR*_w|qG2M!mntfHVgko$gFS+vTW4ew`@@{fbAFBu2CW~Q0 zp%W%HTHz0qrq6=bSzYFZ*CP)+CXQI~BLP*sWP{GzdB*&lo!LL0FAcKgNS^yMG&Ye( zb=5wOpX8-C`S>7zUsQ-maVAYZtH{I`tF{cIM*@%+tGB#xdf32WauzE-WV5q$WKpfn z-L^<~R?;;)HCsWI*&-vz-+>D1drk@>^jpsP*Sp{Ca5h zc*a*MCGh&9;|?=!so+ejR zKn;gFtYS!H@tLtj4PP~2d;>n^uLu|fUoBqP@^7*IRsn<1sjecm6fp36W=&QF(mH4m znzsDhRy-5svkDq{(PDC3HMtZ)gU~4?#td7&FUla$qCo@k2ri8q`N%Kg%7H`RE5r?E zAAp*?N{0G> z78^te9U4Py#Q};Zs6-AT1eeB;{NxvLr63~k6=DdprlqEJjnaAL0Kn4_V@Q59l+LS8 zBR{)W%0V*+aolI}kNoH;Wl_?xj3xQmt`rQ!U_x|KoQWm*$s*yi!31d#I+pRoRvzLO zg4dofB`ktV{n%D46LF{;D?$m2Zz~TG@zufzFFWO*4?gA3h7lfLEsof-aZwh_Fv8PO z<{<(k6Gm+2AtFtyFhX==%kORZuSm->gz)m&qGc-&p>1U+FGMC9Lu}b#2JA=(u6emSI^0mCKSW3E^3O_~}nXyZij#r3KK#?}L3#53TE^ETaP~r|E zwqNqI1q&3O8qt3ljKXAXh}~PCe;Zj8xsB8=Ecab7`#@FO>VfO3VOo9CW$A^2Oy8+%Lh?l0_C@Jh4d=X^wbbb{o~WorsY5HgQIMC8$;_B!1J~Lk zNk3ZpWBxXw?vaF+nm^`mA8H;cv`x(?zowm*UP)x*eXRp0D>&rXHP#j@13s!8V5E ztF~>KZNIv|*0oJv;j^~m49kNZMU{Tb%xP_N#L=Bz@=1WmNJDI|H`(9k+|p4V54w;~ z+FO0n$?}snPV6U0%I@oI&bIGUS!Dm>WkKn_?Gqx)*V&uxxY65@IJ%PafBA&S^0ob= z7IOx+Va`>NZ7%q)%m3puB2O1)@1`=(X6@}OVwR$32xZ0o21{GCnEea(N5}6x{8+%F zp+Om{cpIiPY{zwRCZZCih!1=+$J)>djY>)=$-tSsM+sqL_ZOi>=Oeb;qT>8wTPQBG zM~dI_)kClKF&Kkz_11ci6pa~-tX4Q`+9R^k{maa}*$UTEV+5~?C6uHw#r_;iC>vT6 z`jNIhuXdbWo)3l7+ouQsWgsln@v2*(_$>Z{cml^P{3vmL`O_*OUd7|qY;+yr+Z_W z^Hxecd<3_iTy3q9_tTc)&p!_H)qDCG@V+#{R=Rf$V}T8P4<3&2WNVB0^X0E%`$k#$ zZ5ZE(Biqf_>%?1X)7Rq&4zA}ezr@lY}N=@JM;2c)|bBupT7lC*}kvBBMtm7@{&ec z;4wBIOit|Kg={J(_XHVfOk&pEtZ{6_2(_`38MmzI*oYBTtsvzAft^!YwS~%+N4(6l zT{dDSjkQdiwvtdoKe0F;PuFLdJ|~AQ2bqjsA)dh_#9(K89Ah8m>Y1#Def4f3nT<^0;E(iK9x#Ic#NX?#M^Q2t&Mx-rkzILqk58b?Ku zL>Kwkv^5<|g^Ipd)e2HpC}Y!BP_~pwWTSSOXS-As$>P?R=gii;nUkXY-fQOEd)|2R z2~kTtCbnDiV@|cw{lbT_olLFD8b?}%lb#4bk9hO;QkHx_Lg#Pv)CW%*X5=rfVCt^c z^n@eZc-gjqA{`hP`>~AhJ*9}BD$XNW)3aE$<#jKv*)s9O8ZV!CQjA<2q|r8{UkAH}6E0UQREz9E`I(+mjKj;&9@*?}R zOW_ZBUnB%Cp%v0D{(S-d1|d7U5_mk_M79(t{N8smm#%FX666x^>t!2Tzskc=Fc|lh3LMQn@+8r1M!cywhCQdhkMh<{ObL@(~wiK_KZhM z;vx0Sh$S_EM{~>0>s_!8own5L*9maAO2fi!yecE71 z8sqw}!{44<`iG;dYh^Wuq&BVIj~ufFG8gPVR%7hEzkxj!omLLds9vGo{OyzYouYoap0?4we7jTzGR%-o8qTe{6tZvJo{&7csgQOXK9~US+2C_Q;I<=+45qME` zx5u3A>F|8guUGo-b%o`1IxU`Oa)q1~XGX-2+6) zU}Nun{c<3#q{F9R_iK>wyusnpm1o1l87Iab88L{v&yD16XlHS^yYAeyqtj{b{K>v6 z&g@tWF`a!&@2`~x(RLAQwY9fH)cfV9=0^E(Q70aCUwG~W7g;a-+@%s5x#yRwjWPGR z!9@+b<&qXrmizSdP+aWQqTHjt_WdL7`~&HYjeSbYYyv6odK7JPtU34M*{nbBKHkjj zY5ic~j&Mh~npQKW?uq57x1+OGFMSLdCF&o2x)SZ_-9N3`VLPu5El|GR`+abuxYMzL zP3Lh5dwhp4A3KywY5855KGl-o`XOKYaen(D>Tct0?~VmQ^3P}OTSV-Ggadmf(T(FbmMFE&Y=3Eo!_maY<`P%_ z^f=S5rn&gGZHC8(BFv=@Rjj2o9)jC@x;BaYu02HC|9<|_tjTaca`4}qcD#klKjqHN zI-d+z{xn^+`?VgVoDX;u*Q6oDZEDT^>^BP%tAtG>HG-(KpK=`@8O23Oy+R zk5XRG8=C$jJg5~hB4pnx2){i$aBJVoaHUM8?TJUq!`U|-8g*EG4)#qgbLqga#c-tF z@lCtVqkVneKWy!|hLF?$HCJxl8OYwj zp9Wdxm_A3FoyNG-t@496{*Ymcv2UMV4{lGNdAD1#E8M+xU~XFPP4Mi*nlfpB4uR*l za~hW2QUab$uXo>L@$Zn4IJf1BAJ;&(=aNxjBfTKITEqSyE2qJ;@0)pt9e)eYCakV7 z-R}To6`SUK=zpIeGi{6WjJ-=B%`d9s!G0$pYhkb1KR4?K8ILkc%-JytlFYNS!yEqu zXjwsx=z5=K-Xa-&K^ zNDl9Fyxr{bklcFQ?;AsALOg`*O|EqZ5)vA^cz0O>3Blt}Zob|H;#yp*;vd5Wo56%E5)55Z>T>bWbmcc{cIIrhsIKiaU9Q`+XHR=aF}upRpBpXT96sPhM7m z*Z~1qYug8M{~mZ){Pf;4Tte)WpY5}rbIE6(Tsq&)l}k*>xZbgGWiHZua{b+&6}USi zU4|qr>cTxR8vZ_g8{7Gt`!(&4JK^3xz5br#un8jPR++!O#Cft{E@b$$uYGUz3`iS$=$LyU4@eDf`BR6gVUXA`?dh_KgCObQ=_&CM zT1Xp}xO1!LV@MzA<#6WBdq`g}=C#AN4H)kyxBG6?G%hK+KL4vP}E+rv?>)2R|$vGPDQA*?lQb zYFrP2M-^I}I`QKy$f&<)-oy)GkTt_Q`D%7~$ZXeb+L#D?$hdXu!m%m)AieUDHDylp zf%K|bnvI(B5Ls~MksqhEg!sVhz#li2hr|)b2W#UwNKPO z%RJubZseK>?ycRQT{eFz$)&a|9N6Z-L3m;}%%MrUKOnaINGP;sAtW`MQ1RB!j*!(Y zbIgCO~mOTob_O_1fc^&h(nqaf?|kB;jv{Q*%?E zZ*|fY3Ecos_rKTcxhoL4x{%**p&Q|uTiH*=U+5vnx#3HnwR_>&?rBk_SFDDN?N=(* z-PaUyB6B)ic=!U+HS>M{XNPg1Znfr>kM%`A-xa!X#rKf9{8ibZW^ah9_$spVt}hVN z?n$qu=(pE4c^lOTEP%<^lBFNF9b)vNh6 z_kqMZ7bjJ1VGmEg%st%rt{p@yJ@>F;)pig$t88f7zjkryr;T6MU-aPKkIdC=-`3e& zFo}Ek=<*$Nv6dYNRj6FdTr#6uxd)q~&31ME=lopz81B|t8Mph>T}Vwz{onP%l_92J zyMNBF4u$X{r>A>X-v$vIR@Hgmbu8TVA2TI&PjQGyUU6>mwPNtdzyH4ohhdoi>BFn^uRROW1OHm{N2_GW zdbcHV#%qkmqE#Kl{pPgU8(QQR4R%?|7kGu9f zux-&1i0YFue&K{1NOXH~^+vf&NVQwrape9qNFNjS`D(ZZ(hQrk8kze+%zT$(eU|#e z(;6k;el)Fu$nJygw@dYe$S&OmcW!bB?%gm9D;!sdyS{nKyHc0hLwHz7jC;m9ckBK7{iZk^T{qQ`9Cb$826h)nxq%nvIHLDZq1r3}?pK%9Hue*PQgz{90C zeMdd01UU;wr8xcB8M00z39th56lHtAMu>s zt$?{m%npI^+Vb{*1kChx^y2f3#k_nLJp5VE3DQ_nOz1X;O*(m&;Ng~uUVs>XSK zfhRw-X)wsC1w1gHpII}d0NnR`I3X!M2V&1$DsenA6JngN`Znr(2h#Q&Z0&Zv0%Xng zn6o6gGh{aJRP2ajCOkW`B5XmoFnGQ$Y44&If52-K(e!jro=FY$Bd z?Z0z-tH0Gfdb1jy-3bhwwr?rCaMt;*&YBIm&!4W?px+0lGA?>uDwM{h-kgE7!Id#Em{uZqtnE5ckWoKYo9=0glf&=vKGe zAjq5@;kfS0Vn|x^X-vY6I}q*N_OBTg_QInbeI7r0Hh{~SRlane@%G%K{Uw@Z-t*(K zBmQy^Y?H;Mojh2f^tL@*&eOx~oP5)`$hxMfE;qJ8=Fn~>S4BL7jNHIr?*3ygZi@fI zX?>%))Xkj^ubXg;+jeTzffjqeK<=oIu^$fQK<3Vh)t?>d%xo~s-wtMBy zE`c3>Kc6qHThCqTzoliB9j&;V4WF(lS>YhuaXa4GW%zu^SZP14jQu*Ce?-I>a_u1{ z^vSsNHtvuG3TPlRpm?usTbh_luU=w5zVcjiX^%4*JDV*rm;3qFny|;$%=Y(2 z4*qG(CbRvq-?Jw~m4}F={!a#nm4e8YWeQ#UtrXlo(Qsj;ZEppV|2Ss&D!M zBc$fW^gW>|0O?oud@gu;8KjIk+NgJ#w~(-8d!f}uw2<^e$?lK79|@Og1uZ`~WjI{8 z@7?%#iCS>x;+vC|(oewAq>!iUen|o@wo!-jTm#5VskJKnj~0-zV^cxbCnX_c`mjgm zmo|sgYhCS)S${#Y?&C0KJNr%{9Ss#q4X8VX*DUR*uA=tH7Vnusmwu~_q3|!ux>15HUD+s zoc8@7>vhanMV+m+Ig8c_9$bBnr=c5$_P(u+NidS!h0ft8Msy!PbrBb(bn zO3{DbjNLaEQo?__!_9sKaXru9dYV}q5(b}K@_bPVh;On?vufcoi2Y-Fp?1ey;BkR& zy=H?SJf66qb4>PJxZA(1F`#*2?pl3a=8`)`*frz&Uw`4e#O(Y2?wY$D;e75WJy-lD z#G5|oYc3iO@$U;y{?u{dt$yGLitOMlWXzLh!);)AB{ZgF=k#Lqm^pvVi)2V0*OV`rT#V&R~aWu3b{#-knz6p;;6}hsFMtxO6+0vhs%$D+dR2i6@Ws z323~Li>ukGn(I+B_weKN=kdR<;ht!#-F*M96_=C~wrPGY=E?oXtn3)u528=K`&{;? zmGI#7pd#&Cb%p5h3CYDT=pafr-nor#Aw;GaAB=S#0x_pvcn8?0L+t%quaY(#fdsp! zQN3rrfVeyD7VWLl780iQUa-2|N{Ekaf9=(>*W9yrA(u+{J8>U9>TF!^+{kP zauoNr!!K{{_X_7;7AolnNcQX74_^gM9^WRBMS_WkN& zkaK?X>*fohAv=6Qw@#~q;9046_2%w918IeF&GyUoK-%M^&w;@^A#LiXpFZ#OgVfa( zy7u2S5|UG!4!9os5>lqz^?V6~xM$rWr-l7?l*_sjWaoIO5trWe zE<)R_8x5oG5`72zqaYk8}Q|GwI;n(UewU6S$N3_0P z^K%yWRQsmv&4@u+Le_&S6L-}bg!POD^>(da49R<(R@a?S z7?S3eoRYerCZs=~S)gfbbI3m2akZw#1;~l&S#ebQPI%Tabj7-VOF;JH5uHlaY>)Bc zWvSmUIzrC9UbT;pkA<8ePd<0(*Bo;CIG$dA7{}SB^Lj0It__(FU7kO>cmlG1UFbCV zbR=Xp+4bqxjv&a|S!`#&i?8A7fk8{>_6UN+sHXcoz8eN958BV3s9OTb6VJDUdzlbl zuWpG2?T5qTq~N%zBadOev@NN_lgwV)%GY3CdgiRtPrcyM>tQRJTyF?bThsPV zvQLDVy~(kg|E&NqiyKv6{_7XGA5`|ysZx*N-h;Y7=l10wW`CD;liTis*naPOC$%{V z$)}zq9^LN;@w&`qrAxhlgdM9ZY%cK%Qd)KE*u27KNL$hG%Jcmg4>f-*4|#nO5~gnm zZ1v_a#5D-}vaeuiNNC{L=X2`c@UVW0{lK7q;NGDhC!W|D0^5oP6|V47Yc6!GX*I{j z8_mU9yL9{P($H-8tlNPvKRa-dpC9ZV%mu>ll$zkt!(3w7kR;R3Gt4CxHJB6M>Y%yM@$}mJUAmi#r0;0EY;d}{ z#1Y5(h9z2a$>eu?%2w2y3mj?SRwAS+gfC5KwPC{rcyxSqtI?0P!kt;?TDVMa2X{O- zrkvVU46g4QQabBpAGqTBYgD5t@8L%HyLK0^Ux8a5m0naYwG?i~PMGvtkGb%m?KQ{B z=P_PJH% ztUKm1JP1-uNsabY91lsxvE`aLSB2EZ!N1QwR|g)h&K@)4?@V~w()jP%nup-g>p6)# zM%IIK<$v&i{p+}s1rrYcJ24lIJYD2w9@iQYdlzZZZf-${dwb~9u-d=ClhzG7gJ7I;0(Bi-F2k)xo6p9UnGD-rR*pQr zE}YwUrumMjDNfv)mG))c^#25_J6&DS|L@wcb?DaJvqB5OM#KFEVc7+^&Ex(zw`jXQ z+|f;=?hWZ!pSw^jxLabKhTH*%CO@RK{td3ZH~H8H zIWjY5Zo83?;k>WM(+4=;uKY6Y+_~$JGq&gd;2H%xSI?2^wF%C2U!0Y-K*#9?&gAaWm^_(y31UmX7cBQEgG2% zt-roF_w;p0Iq-JE+{>@AzBgunRHY%1kua_7iqTpe$7fbqb;1N`we3$;zjqGO+eK9x z{GbJ7e%B=BFYPSI3?JPx`o$y2N(sNwcM#@<>toHvXZIkxU6T@R*RF${pgx}82W*3! zgKNe$nLie?)4G^j)WLO=hvh4;jzYZ+>f|$Z-D5~v-LAmSeON!Z?cCG-=nIIyUU=!W zA|4pu&jy$?j={sD*;Pwy7y=J<KIvi4e8(zHG zpIC3XybGR5Y80)jSoz|=#**F%S zFFjFsceDU2z@NA{2^t5gv@UrHl z)&;^#!SiDoLn=P(2+uCB`I0j!5uUI4^L7bM61*6_`1KWEKX?&+%W>~dJ>Yq_v1i&o zuLRHjxINqROmlc{KX>6xr)luKl&4{XTN8M`^S3!A3Yp<~w8#4*Oa6v~DWA7}iTw`t zxiz?2KA|hDd-Lz=pS7-VJau~E@|*j>vQp*uu6Y;-$FBBiQD(zV?!+(U*G~Lr9JkK> zI0cw{x|7m;o*>Vc*XyY&T)n8 z`pYJzv^PW6m6m4=X_q0p^WNF}?=OUGb5PRFfc=o|a3V6U0oJ?rkKXIF^#LSBdbOEc zqbMZR>fUAQtV)n@^K*;4u0tTPK<3EGH{L^HjWO91S7ks_(cDu%-dY4HDc3&#KG6Uv z+x!CV8U{dG-vVCE-VK5DNhjadNDqXJ@r`zEzd02$yvA;CZ480jn~y!3*7yiH<>vPq z^797B(R8*OXu1Q>T+Du3UVMbySJ&pW{L&7dHE)y9tz{-eg$Iu=G@vxx8}B~RFQyzs zwAFRhfAoS&R};dc%NgK8F~hm~h3><(mxI3qweJhJ+hmRF`eYs4{!+Ww$F2?F#*pRf zueNUr>96Oe=nL+}R z=mn+$YhC@g2h~0=I@~D~BJE4AGuQ6}DT%*S*z%z^r0y;}!u`j;Af;aT{26mzK~kMg zZ?DuRdExzy$$yoG{F<@go~;44u{#;y#Y4HqL!H z#7}r}x4^rS5bxF`Ebc`wh+p{2%K0}ALj1s!_R}+N^j@4g}M7XUZjuQ(t*3RBRsLwi)q};23Ok` zKX#6L;hi|c&0#IpiP{x7z2zkrIXX7zrgl3Qd%xb~avMr>QTIv>i*i`N-5Xsqtml+Q zoVn?sPu1UD;w~2Iba9cx2kt`uv!4c*o5dZjzi6MP$UpG7Rc@Q5F5}?gg#~TCU+M-A zo8Rj<&o~pu-Si^whIqk~w;{X!uAB+UTbe!S{j4yg9&YhIFys(K{=WCt+p*aY$D*qhY!N_q~q5=ENbhE?Y?s5RpagO z;E($kX4O9l5yf?O#cBmYM6-pha zuLj&2yRB1p9QgT>JEHig_r9ATdu4}C z$BJTorD=ro+#y>bai#gzfMA?IxK}yhRILJ+@Y^5fQ+E~N66VydJaBdpcdhxvi_<)o zz`5^E<_x@Cg8M7v=1phMKez{{*Opy0EE>|>N=@l>dIqFspK0{t-z6aJ=J%6+nW=&F zhf53kM3;v2x9$2hNO6I**c;QwJGO?jySj=UTQ-E0nxU7rCDno?|0%^Ha2+gZP^Y&U zNmC)^#ozHx3t>dJgAu!n5oCl2eXL zKiPA+K0cbuZZZ6vQ_NiM(2xOwp4AjaLCUWxyZ?< zZZB@%oO=}BKe6lECS3TT<-7I$zi@{-4If_X)iQ`EF{a1)1^poEgJI}0_i+$WxpJ9` z3yQ(^Ya?2|zpxdue4E6a?TYIW$GLfLiVVSh0{&mzy9|NskOy@-9$NreOMYJe$IJFu zA9MJ$G2=R( zFWv;1PpXa7uX+JljqY!+QPKdJ+uAO=++#cBd>C}xcUE1c)vU)wuDag%-wPGE#Nb|?PxT(nWp%c5c|L9qm(j~H_TIT(T-+SDw$1C@ z1AgaXHW)~WL zK)YJ8`08z}_pNtx{j>UZh`$u`UHh{>uI6taZuiVasIRD<5a%DjlWFP5KqWMoI$mzAH-mWFrAZwKSkk0;T zki8`|+2{OGNZ+un;^}AmAo{zf+?%4O;nC%#e~w*J8J@K8?=$lKQHUE@{_p8w21t0C zbJTuA7(`Bd99O#WQNXOt;F%i%cbq>iil6wW+5X|tX9H%ZnM>Du*)n0W-dyIx%hNIE zoXq81O(iGS_BWR=I=FkwLptuw(H-5^1|2gO-B7m0h~PkTp(#(mx$}H;@x52w{$4%J zT-yJCgAc4dX|{i|_}}W&lFcRm-L}H>@0|am=)B{pe%~-o_NEfaXqZvaQb{*5LXnW7 z5?_^7Nm7X-sic%5L`JfeQIYu^BO`l{W1Pu34vt7<AL??R7!RKhhK?9T&)5&*(3$7=kKnx?dJdmVPMmRrK3^88JuVS?o%hf2w7Edn zS|)!1!vNYg7K)mQ21BQdNXiTK0BDji`F1a&2CCE2ZmN9*XpkGBBz!dl<_-4r0Uzw2 z-gJ?ozp4Xj!H}Kt<{dzp5cs-bt{2ENC7b5hD=@sLaA}gy97s=GMyy(}p7Aa9Zr+>E zK-V|ewNd{SjOGbGak+;JN|l2 z=#P+%+Ra89-XICdBeX zf%R!bfVF@*uGnq(Ot_8pngv<@vIJn1oKB7WZGs~1a@DO^+QHN@d7+!;Il!Qs6Hd=4 z!SqX--|Ddvm@aT9pKZ$m()U{%o&FPoHjnjOStHSqHRkhDkLd?(c`;wuV?@aC(%-RG zFcE&(*O4AHaRTZ01$`~93wW+4Z{mNJ4Ku1`w7YBFLnF zhuRLnuiw;)V^iB<`b10Fb+2nMHM3xNObhEzQ6ek4^Nuk2gzxoL{xq1#`Wcd)EC|z@ z+#8*9uEUhSQr*E_vzYHVJrZj$2otskTdgqvHKkv*2eSeN~7WH(I0%I1qt9|OzNM#@cY zE3oDh46~ALfqgi)!cN*1>yGQjQohq+Y*a2)>2d(pEhku|HJGQ#@Vq2nlMBpL@vB_C zGcZ|Ents5{5ZFA(`0nOKV1^(?O$zRywajvB0C5e8~@!;$9fNAFu*)!{w}aC83;A9 zSU?Tedba0tC5+y&uMdv84D^8Tsq|t8{O^+Q46M!rEu!Xm%NAuI$L3yYi^M!o=--AE zwRsreoRfH~B?|+KGw1g_(S_kl)>Zo9Eto@+uN>H~1l@-Y-Ke-7iaCTA*$e7H(0S+5 zD2-YV-AUqqpQjfAQLCe@PyG?lOiO~ZPi}&N@%3*Gv(`e@gD1r1Es0Q7-eT(z_Y`W~ z*F}YpoS?TN%KGjatnak$Y~1n68PWE71-lfUfz(U+=LD>~0d4%q_rTH@(rFh|_UN!7 zFD&rns<9(fod>Q*+P?7l&%T(;d24|xm-55^j}S0u?kP`Xp265={arG-dO#j({Tb-= z8Ymf2QWHDR0QC|#J6Z25P!^1Qv==YJ*t06T@?}Gy-*CQmG+Eie)C3aut ziCLiS3fvk|^bN>em&)}5@u`Y=77?1_hCzW9yl}A7}488MX-)|T>B=sPf*A+&tzMy7bI0dA? z2fM86@$ccnes_cY{y-UXn*O~l3`nlA(@o(rKsK|W6T=i?WF=#J{{0*vckDj9SEvN2 z|EW@c)Vo8k>C$P7a6upqaw@;#y9>kFns=0R^MF+UY45{*_&G``?s`kHgT9ypn~Uyx zLkBfLZR^K1(787A__u?Hpr@N%`eA1+lm)%7pcc|m&--napZU2^8NILan1(It>!ZF* z@hgFbiJCnTA_CBOznFed=^9#|*Shq_Edc#3?mOcsErgbhtb~@2G~A%*Y4Dwh zM&$1M%ZO#8daYBUZ-p08_l*GQ;YeQ8KAr&4ZZ4=cCF+{Qe=?}*)P~&?^KPg&`n7b( zM>kacPKlSDEP+N&=zY2tXazmXs&AfuuY=xvQmF8w2UthRJRY?6G4yY=j5m131$~9X z7j?~_L7PK@y->wd=t_()TEx0b=foY&{A&FEV#ri`i#T+j9Emtq9|v7bGahU88fgEL zz)`?21RcY*^_AD7p!5C#3hn(hXuBZDlbBKo&EL#Ps}+Y((yf1eE?L)d39=e zH;|NdT1Ri5N1v16ZPE4`AePu4$oRdCo;^Nk_dcz9VlH==l}8jo(~gbiDBL zYTF9Xqju&PSug{KD>G$$UO>;KYF*W&dCb>&GET=RcZ@b<_k#r@Xih`o!1AATNDE4l&-oz zLmf@=`kn|?KMK7E>0Mmu+0cpjd*!TTpvkl+WIxs?dkvMVPey%&w(fz~&NnJC5Blwl z#={5DxBQOaa1`HHmMg3GJNE!$4Bjn5sTz{D5lvO1|eUhjJU|aI4?;n-;Du` z(n3v-%2{AM{&tLEY6uLuJA1Qu)&t`M!+LK$8P7)!RdtRmVCqWnS{GtJ+M>;fv{4i~ z1cxgts#2jV@YFw!$sribV5zJ>#RSq~>YIeur!l2)CQU==&$a{`E-yUlN zs-2?xcS|PFzD1n5>xp@Xum@bG3M3fY+mz(C5&*Q>#D7=2z5rQD-~>(i0E}Fi<-I$I z_e*)c4M~fyp!d>Ntu`tfI{Kf-%WHmupSN_ILcT@deec^*RY_m;(M>QoKMLzM6$%!g zyMCe3t#i&3bJ>VG)O1_3c8(y>&=?SYiH12v$$PC|5L(%6bT)Xi6q?deyQ<&Qg6N5l z-7B-a5p}@)!QR;OsLeCScwIss_y-3&31DpLZYLZiH2{{-|h z&UP;)YQm6?oJxz%%N2@EGsnn8+=^}J0DN~ zgNW7NUu8}mMbxQ{Li;bgMWY)9=XdcvM1QWB8Tm@TK(lL{Z?I2=qD50*&0Px&G@Hw1 zRI}`h<{df?Uj9Ht0|gKl$fNyFvzO-bulOt#xI|W$$I<&CT6xCw6CVX zRLh`AW~VWp^Tm}z8`ff8IcITq2-YKJcb{IE@q%gJ0}^~5WSG8bn9QTziRZ=559YkE z&io~#eZ>&#K-0DHLGjmMLik^%k6$0wAGC!ssQBxNrSNX;4Z=F_!BCpHB4R6k+~wh3 zg4n0(Cv{xJQO{|CkCw-yP|x`}x+7~0m4#TO-&eGUMs;P+_s0%FdC{a(!S;jD*;m55 z#9<4WvN2m9bJC#m`pm{Kp=4;?Eq=E8?;vXMebx9{)gDpbT+$i%(1u7CC}IZ7w&-`3 zO@6?x){{yXQiSn!>$X3oVBdvYqa&n--~Jd3sj|d# zR>>FMoF42OK5Fu8T~Gjq@cg9fq(8L1y6JM^(N5^Qmg;ofQk9<9X5T$AYyC2&Xf)QR3pM?(@_sz#wSG&9)#Aotj3L`wU# zk4bz>SYz2#B*(Q%;2ESHKHas3AdvJhC2*%Rfz!f&|CN{q0{{2(pYEAX5d^s%xK_B= zLh;*cQ67R4K-7-d%`Z!VlALczag}&~&zvr|kGlXJ?G~hm(ZkRhcIine1<&Ch^`0Lu zAwvhV=&8in0?gw)v5`p)fU-%J#=2jD&~0@{g%tY)>N1`Mcf`!&z2wZovac0{+65Csu{XT(Kf`3i!7AdVOz8il)nQ_*gy(AZQO6DD&|e=T zB$Ne<@LEGo*RLgHETbgrVhmH zFF(}Vcwz8uvVyTR)=&8BK2G@-Kzp5DZ*#B+^u*c>G~U_^o%6R3|3cTGicwtBvtAKO zj7tAP8|Lm#e)kvfT@Ri4QA;8++o1hFbKk7H09}2#dq|38=&}1!{b}R_bl6l}bemiU z?Mcslu5u6&avE7^%=JKDZrDkiR|lbjO07(;(nshiA^UCNb9?ZTmP_HSI0ThJ`8I*J z!_c#Ly@I;tJ)Fb2-eNx@1)X0zD8iIv=+l21S6FNXgXsn3I>#{QdaJWRXBQpV>-A7p zxh_mP6(6xH4Tq_QsCZ=$%!|3h2@O>anA}L3;4shy_MwjT&s$#+xPmoYo38W{IL9YH zf4(SA;JG8>)%4Vwz%i_GH~IL2y65e7%N9G-ypVOyT+dk zpl*DoW35yR)YuhwF`H&!_DE*Nd8`6+ChMb%-&SCBygl;r<27J#MDHnQ9L95w!MOi9 zeattt<%!2&{&dYFigwTmV7qjcrP=esq%!<&qrU>;#>hoBMH+^bO5DdBLoqiTdi0%A z7<469%AgE8=y$jI%AYm@LrHPY#6f3ZjoT8gRGq=+@Atc!{4)5th~&RxPI#(Hu)-&G zEzD3VjYnVxW;M+<=67hrtj6O`p}m*~z4PngS@IT`*?R3f()t54@{^Y!wiz{#C=VV^ zuZHix&QF&NuSZ2y$0jQz6=B+}J~pc4E=1N%fC-+CSVeVw=bUN3<4>&>}Q zo3?Gj+|KUo|4bF2rOt2aurt;_A1P6a_A#L`BaYCSh4-c)gP);-IBzpxneg|80e&7l ztt^jhgFz3UwUMTc_<9^L>#)0p3MCHT;>sIAU+0r{?Uqji7N7OTy|;-l_HNy$cP&I9 z^6Y+FJ;H>3qq{{m4l>Yx-&(3lJ|406ZTxxmk1Jwq&Y!$v>WLWVx4r89&kWIq$*&xB ztr6=m_jfbr7l`JNIQB&B1F(EP4*qt>d6Ps(-}L>QsPFB}t?uI*Xe|2y&(W{mXfQQE z_h|$6?INtLOtJ!DvZHqYq-YoV_|GH2d6NiK8-Mg4Vmd+%ti5An{1gh)v^HcAmQb~V zf=mN_0=+O5K3!;d5}3m_mPEIBV4U?YedFm5W7BVQW~IY{>7*cQ{c#xo9PN{`SlR^P zV;nOVUgi-*to8}f(mxVJlIvrpZ*UMq-y9XZs_Q`zzGWm5`xxhmXknTP%w}j;J@tki zcMn=j!&8(#IYC>&1*7Zfi_jTG@>uye4`XSYE$7Y-!l*%dG$GI&Xg8%D64HEt&O=JN zcJUM5tFNjBTAzXH_4gtgwRxdRH|-^fDg;O?(fTFkN6JW%q9vEaflxs_PdtqEUI)ST zRlR?JVR-DRM^FPW^^A>9|CGdU?>B!ikHJ31(%x3SS1=xZ>)6E~elY5ImLhi29_VVl zkp@;<@O^SzrgXLo*flG`G;hp(Uei6O&aVp-IeOK#&S5Y?A|@I|V=h7NS7P7rB0it{ zLO&bT;JMQB+rN#=*zaH3qIQFU_ki|QCxkiILuns%Q}bZ7=5W*D+zc2MV_gPWJqh0#yhKc(+S!Z4Tq)Z?k2KoSr+sL?hKq#0T9qgUO5bm^k*2uB(WvnFLa5e0@y z%3rTMkA}7pvbJlt2Gpl7J#eABpa)GXGi9zVP<8#Js?|OtsOFyK@4tbdUL{~1htXpo z*WV2p+cgN}%0$=o71-bG5S#sc-vx63ZgaX_Z-DH{GxbSgE0EjTX^aPNFo(M=Bg)wh zl*kNcM$6$Je6170JbZtb)%+#sEOmT%`Mn6%ZK6MjV?TyMHrA{AtA_bC;KiHk{A3?+KWt~s4Oc6OJ&aPzpY3O}ARQ+690{Sep3j3d^LvQy8b=w)7<0GDu zmT|z`Lv+&Sfd5*cr%60_Os)^e!~A>Ibi#q$T7I2l6#M1g8zV09r~-Ll%hu6DSSN9R zx*;_|9rJ`go}Y|MM>9<(yK2{uqS))TiFGm~gA;oGz`wwDOw*%zH7alT_xKrL&-pPewxZ6w*EF$9y-!34=u zfUk422p+3s7_;PSQLSXa*oA=Lp%lzj^^Glc)NKKV)S54ukAh)rP=jRlnTe*dMnXil zMy4 zCu0tH;FPY)&TSIVFTdvOV-4)bRxucRkMrT&$<{rDj{39n=zHT@T=HjDFRZR;lOIJkf^ z*Yc+Z-|w`GRx$oLG@#j7xOmrQL;JbEjWW#$z8=$6c2a9WgOo|npUyFeR9KkxWOEQA zy4w~1G`x+<4oI2K{=j^)cM6@j_4tMqD5TnrX`U4n7#M9xLVuA&hR-;je_@!rx)_HMUQN38fGXDQ`*h?UY5b+vsO#_Lrk z6sQd2PXH8X>G5_2a<9JV`%9mRStDN08{114223A~S}go$?M zr$_mhG5-|$H1lpR-VgZdX9^#~3Cw8b(=QV;K=^lH+@b=p7`{1XZ?n^6IHZglFlnWjUdmL`vsb}`iX`n}(D!WbGQ!&ePv;<0|^ zq4|%`2)Y|vBk)2FZ-cQ<@Gotu&k^sr$|ruD#JTMGtSN;Li$H5Vt0d}-^CwBam$%B|=X9pYOi_mu zP`*E_8QFXqD6XZSMtIVI+`n=C{QW(ce`yLfu1 zB{a*1z**7b$h7t*ta*NKlX}ug!kXyS?WI&xg1~<|U-Tqm2m*g5__){t1cB2Y`DcQ} z34BCX6n1$Jp4)qeq)k2&_#97cxGsB?z~jE&x@BmIAkZV^{7E&BAYj*XG2#6K0>8b> zw^HG2Fd*J`Z}Mj~^xoSnn?z89dV?*p_rG$&&)tVP)+x9^;aw=I|1#>(d?IeP_W}USrKKiSJPP{&_Dez6N+zbZa>%C<+RVdeeel zF9L&b=}GHaFBttwe51)C1HJW)@v8+H6lf7z$bQ zKEn3{kP;7ShMio%yw2O@-KPif-Y&dPB~c#6{p2M(?6_gvQGH5cj|VV!Hv1?ncL3wg zr-Fw|2Z0gluuZPd9GJT<{5z^Egma>|*T_8C4MVwSPi&};hT$Z`&MNXM3_tu~X!BGN z2FLTRe0^CCgCa}M!`>f-&IrZX+v7>lIh9&x-Dv@RI#(O^N;U!!&5JkqGN7BoO!%4N z8X&qA1ZwzUPH1O}Uq*^K3|2co%*FmbG2A+&&fp6)Z`;06xP=Q^U+!OjupGzr;hvv7p%uG!N&`Zg9dD=}w2s@@(>(Jv3Z+U%&>zZD{Gxh1hVcuZy zW(YIwxVEB%!Z!L;Drm%O<-StNI*h4&TJ(RJX(E`%0z6;C@iT&Z}LVuWThN%pX2IB_G^!~1a#{YZcWT>z#w zb?GR06#<(<+x;#k9N1=_VGeH_2*T|xy6caw5(H#Jxva_x2pk0}B$sdj!WwJR+vV^< z0#|RSPIY)4&{CIH#?NH}?N5^Y)6)e&|JHG}n1y{@3GwzsTOQ0en^|@rP5|Zwfpjj* z6=3qrMoLHG`8(I9N$t-^?BDK+xs<*O#>uR5b4Nw|9Dj0J6#Isg!5-(6*Oi@Fz?IICw#1k zpSJ{aTAnp*!vL&vYkB9s-~(EtV4(2wJ)l}f1TL+`IaZZV6RiFspc!t83p$$)^gtJ- zCvw)n&RhR1UNsM9cEsJQc!xRA=O}kX{S(YM_Kq}6E5NV*=Zd4kA7RE+fca5h=C3bF zPMAM6|M_}wJN$~{%=~115t7B&WeW*nkjS<1>0VwNNO^Nr`esZTMCJ(|9t`h;*G7qYo-KV4Y2GWPkiy0!(QW zry?D4VJgVtKc?L!U?-Z@`(eFiJX%_-RZ$g~9W{*--|_x2ec)5*&LS8O)fRR26PK_VZuL%=Xq&5_Xxz23Ft37B?pIyar@0iEGc@BT?5q@qE1X zlfDzqohR9?m#njg;lWr&O`;Nvq+gUhk#-$OhwQ#^eU}A_&Qj^~g=wJw7nv&J5)Jh6 z=C^)LM}R&-kIonk0@8H$c`LoMFtoeOVSn^(=*uV*__CfCdSka+W#slkzxKQDRhymw zkrBI9vDFlY?&a(urLkc^^;gN}7-Q7Bf#IB~GKe}dQ`os;O{lAO@ziaua@4116y;O# z8nw&hx-RCtMl(CLF0&sbpm~2n{%d9j`a5}aJjVJ2S`;3A@&3Lon)}QYc3;_#x`?iZ zN0u}Yk*L-vra?eG`$cKFcV42_jE7?zyvd00QmyL{gN3S8)O@xS4x(yGJj{IqMEG(v zW1DRos@QdSSu3y%RcM9>%&RW~F~;tvi>d$&cxh_vu*5lZy%Ry74_w0>>5;46n&B`Q zu-$sw!c7<~?Vu0i1mqYwial6r4~z{uLp$QI9{AwDhZ&C&pvU%~{<{AA(1RJI%er@= zH>lm)@yT82srY4*BaL%{X*!F2n7{2?Z+Cn$7eCj=U)^PH$3Dut=`FKoGojn#M#s!I zZsVKjXk_a07&f_qBC=7M_#;UN_KSi~U7GlY}#1Y}Hz>#xnKBKO! z8#-P(uZ1DUXQmqdTVU|-<^oie^p*!;=iABF#*>8;;iR89fvs#B49K-+}Mf@XCag*8#t2?I&ba(+Y%rq#bi zzKBMp=bzqci^x9PTuv$XqXmJ-8;u^Y(Q^Arf~#CPfn)ZFx}V2&0>`;jzoZR8XxZ`H zzP(COXdyE*_tjiBO!06Vuvd(Mb;j~C5HPP&`89u6f+rg3INFH5ze8m4((lPeji{IT z%!NA&Yd(9NNhOw@YlV$0;D1L{jT%@`Gu0;bIS$gTP{!04L7;07D7u8) zfzi1AR$=-fIN!AQEVr!_Vk3yRqSVMFD(2xQ*AsN(xH+7pnJq*`dH)0@Ot=8C3U3j5kJn6*YIa zh->eEhGH+NTiE=11fLIkD5%h}(0yxilHA-P&0h zV7lhE)ToK$ex#k;LHXR6*WvsWjD1Dce_PGQaE^L#EqZkvgRh&Rq2Mn^=F}#r{C7?=zy2ds#U52O ztHixUt^+!zgLu!2&P>T}D1^p5y#|}@3h;BUl9>8ANob5qBGG(h_NQsnuiS}V#y=_hAEt&BtX!m|fl*9af zZ{6D4t%|sxDCYPEbGHr{xRh8Ey?}jy{d1(vpY8$eMPN{w4HHH$UCpoJ>xHp%pO++! zKEr5WXZg`wW6a?(&WYOY0BW%HlRE*iK(qJx7bx!ywCb+=H2YsbJ)SuKd*MBhmH+*w zTOGr?l8Q@r|0kRuvw`G?A9 zyIM1hJI5Zq!1)pDh{GBCXreIT$f>(7WPb0y_QXQfU&j&z)V}N{+$kdn`S013(7BHw=v$pjaxW%` zG+aBh>>))EruDhE)A8#~jai2)oC!iN2(tCv=Lo{uXXfU&J|c(&yYBxsS&rwA2dwqD zm!c7@gpPgEgqCf$W>a(aL%Y7d(b{``Sno<$Hk{{y*00Ytyj_R61<@aDD@rKzDp>`E zTlL~|M|rtPSrK|$82+Oo2ccJ8yCum_6M7^RbG0|(kJk|>Dm`oqov)aLCR=^n&%i6@ zL*aq;l*_NkF%O~Z=sG9!9gff)!;>VXC5iW~rm3B>4N&j2bUf(s1Q6oiu}mKeLKWw( z!uKMgP~&ELlF=>?O`A{WkG>IrALh|Jsoopl=j%sZnrgS8_2a1UYE&cE6SBPDWlF$L z!TTY%TyvpeEhX@2geZ(n*wt?_yA2H2_$+Y;y!R_@o^$CE1v=kyuI4#BU!`?GUi(hm z@Ap<$e)=+y({|kFIe>X;?Xx+=V>q{_{AJB}NH>fmerRbD{01a1cJi5xbC^q$_%|ty z^>*JT`}O!7r&j#;LW8gd$bLD);vHE39zA<7^xP?+@Fjak>)?GNS)Su4-fLO=B#v0| zX9H8yg!|heoU7;V|1~;;pOfoU{9PHCZ=6<2U-Q5T_h4vASrzVviIBd3$+2XZ6neD9 z5$BjEf%mem5azh;++Af{S71WW`p9RNI6BtZPNz5sONlhu%Mm>xkR&ym2#_ zGalc!y_avf6SKOY?uzKsE{hzf{}j8w_KqFS3G>Pi8}{M6XxVeE%1zL4H6%;Wb`a{m z+d3zeCU}Ya@LDL z7<0`FOpAxgMxS>V&KCed>r{f|E*~gObLN+ci-VHqb`Sd#g`k3e?`gIH6Y}!qc0@YS zAam=1v!zGEA!RA8Wp;QDlMZrE;whzo35J%~ehw(046&|E=Ruj_o=o4j6!;pJ<+Wzh zSIDG3Ev_mufh@}2dxXt6=lj7%Tj;tORE+FB8C+cmQ(JTP8UMZo69r$>A4TFm1Z|5( zlb93O7cn1@=?a4>l{H>v@p%6sR9x9*bsJwVWyenc!To?b&svt&;~eC=j|UZA?t}5? zeu<@Zhk|MWV+2h;0(VgokH0c#-dVzY)Ceomg-YqSpgG4T-sWtc;m zEEk~-Vh((YPu%n(!vy=S{#P?CHGt7wKRLU;5*Q6;RN_C$A|TW zfJwK*2?;RfomZP6fceh@J48IzBN%zimfOaGdlAljjH}>x1(KAtdx7FSP+VerzW=~{ zwR!9VR;nq`>w7kgU0ndW#qVeLF^@fZWct~HFTRiby9&;wp2PD=Uj3(2w_xn%z9$Wa zp1>l#jeMYD0~5xpc_r?+ryxkA@MIS57h(HcqLCwEQgL8fTN883+gGRL)>`5GJ)iQD z4xU%pM%FyScj0H?W&MdT6Xg3&byLj75nxPdzAf~Zz zjpVUEYP^+RWbzp%3Wer^u4%$(imKSHZIM9dQl!VhH{6RjSm&cM2yHLs{N+{G!Ve{X z^7b9rSL;&`sGC@Xmed#rLTEGeJof$SD`g4=RrNDISIXh*eb2MEa1wWjSg5t+>xW>Lfj8U~J#bNeed#7?s@j>aXKr zm~lyNuHYkK-kXwAx9bATnB*#5|G5ulyf)6i+ingsTBmQ%HVeTod#57~3j**fAO!Jo zUdQ|Wv);UKEcmtgPtK2jI3MabS}Y>l1nkMKggr`nFuixGhj=6krqfQdZI_y1!q1T_ zz$Y8V4~w0y?uvua#d0PuKR1l_Up*~3KLRX^I8U(`xL?tKfLQ+iBuosh`B~s~4%kK| znnyM9KFi_SzbqpTldRnh%9hwKpWL_XX)Xe+?nYUOs0Q5QRII{#1Lu?#-kokA!27t@ z5@?8Hi8?1AIbFp*B*Je!96J`#zVqToDC!LiNiKor5rK z^ilW2!CGLqI@Fkai2-)OpWo5Aw{H6Cv2W~z(=dIi@Rh;jDVX+J|3Ou33rq(({PAqd z$NIw!Qq&dPU(>L`%ET`cCbS}6^Y6j_befE=+(uhq74O~RGlYGs4KWL*X14hH<0Lwd zdE&fN`~t_@Aei(}{ic3I2_~+NZ9X`z3anwfi*Y{(aUS4>BL7yLhk54I4RSR&7nR=4 zv&|M5JFllH`V9jkZt9Et0M?sm>b54OE|}A^<#npO1&s98iFaF0z}WDpZ^r#UcwRMY zNw>g$^>Z=PHNWuFW@5kVrq`h`!O3kZU-*ALgg7PQg!?;q)T{SsK7(<$Q?gZ6xL2{- zpP!2JDNOwf@>4p0fu&tD7i_i<_c8J^@?G$Kbl~s_M}OQGdOXPI^NVYEkLRjc`B?(A zGZXaH5mlhwc8#surU$ft{@L*(O+YtJ_cc+p28O}M`rjetFn;X)h+XOm?%_*WpZmoh z>mK0>lD3y&^s=T=W|S6;Zccvo-2m&2afXjC_;A5kyieJLloO0?%N$4?$9sy>n&S~t zl`y{3HNuz!e?C3Myk&Wu+jX|&bPE0j^fZInp^yDQ?|pj;v69eRk6%9)a_XuN=9xKy z>ymT-;vPc1!BWjt=uSRowT~Tydk(e;K9oBIeRD>&`83>f@iHX4@}53)x!e5MiF31^ z>J;aKaXhc=n6Kme^#l5ki)~VQj{6|yBaYmU_JiKXnzgTlVql0J6XxjR4WzD^L;h?8 zl(WTK@+2<{e!@UrQ80qjoU@*X`XGRMOPZ_-OuMZRt;_AU5o3 z-m(u70=wjFX-^^NcTjnY83$x{XxaRCPXh9v3OpSb)`ddp`R`F?x1jt;ozc`kHWbL@ znS5dZVx{EU#ALzyk+R`?}bx9cE965-!_c%$wx-7zsLHPTonv) z;XY2O4KGAZj{#Xlpd~^Y`#7ulv+Y9IPaVo}Ry~R5J#WrEmR)i{zRY}So_GT&j3aQm zjt@pP@3ODxa|2~j8$NV z8;<)sGL>_b4PhjBJm_XN2j<+}ETYD~16jn%K;8@Yf{wb47K_yY$@-?RnEWb`z7Q@@ zCFEh`U(c1>v@RHl^rC3_w81b_?|OVgHjsiiW1h8Oj^a+y*VSujKpOj^tbG)JpT$2o zoGv;7#p`FBuQU}XYsRmL6a)iV7N?41M}Ty>#cVzw`;O0)v}O100ji`?l~FVqDE8&i zx&gTNt*^oB#mpTbi?KH({5g&Fzsq}zriJj=d3aCu*BK!3*c^Lu33D2+Yd`O9(tr{A z;2M*eKo}NWE=v?GhJlHg_NNoQ@QM{wU2&zxzppXx1q z7Qw3v3WmE=%b|AEmq&XC?io|vrG%?Wfga;sckS~mzJ5QZ$<6UYJ9%x4Y>hfv>Tany zRGNzZbxLGS%^OS%1BFh_5t{HYB6ots24P(P^7b5DTRl&gnWJFI3ND$ii z1$C|On)7wOiCTs^t#x{csLklovjAcu>e;xHw)CSN4XzbWnmM=@4J4&(PTCuQI&M#2 zzPWk_)!j*6mDq!SKJtpc-VF|+hMFU(OYhF1t_^bTUS3P6JA1LumZ^){-g~9}=^I4d zrj=Yiez=$5*7%0)4+GGE;KZC??Jy$le`8y74ePB*wMXh2r=T}v&*7u&KXpwY&dp5cAOAty==03Z&@AY7ZMb*E_cU~G^b0?6O#r%`$7+9XSOeW! zT8*DsfODsFvG3IqvEO!}YSvc)=Q>YDo-H~IotN!a*!hvranV-nhXnRF`FAbs09)vK z$6FBLtPEWV|Kh~OhM;X=OZeaWlh77Ac8^oV5IT9nPJCPBgzlTRRC}C1?i!C%X$X1` z9Uq6{IymiMpfZQ^9+<#@(t=&VRyXJn-gwCZ=U-~<-2UFz*$wr=truRE9fGd#_j2luw5d9=~9fp@X<@W@f{$)J-@SwSVM#@+Bbex>NW5{Xw9j zh_dCH2e_xyqw%~14^WgB#}kLbFkisRK8y7qvTdqjo*3R&scV}qZ$1R%t8UqCm0`I1)1#jNa2y1e5o_Ew~5;$)6-FqS$N#JNwKjUjFOW?e7L;m)m zg9NUAp}J=aC(!cV{cNi>LTD+)Epzj98k*y{&vWSp$BtS=M&DjPlTXn7O;DyXb@=#zu> z=clIj5&CE}-Ll5Xq7qFu3G2yM|V5!H=;h}_$^1Z zg}y)~M~aX){Jj1M!1vgB^EJHaF;@ww@dCjUvo5e7~iK5}4c4~%bmDEyU%V0_1s*XeawKkz;v zc<|ypOz?_7xKe!!#`iYbXDDHQfJ#slemnwGaU9^Mr3+K{2^=x<*)U;Q$7mD7e7%j? z&bC1=7~jI+8D4V;M(^v8_hTQIu|=wtrxwq*q^FDj#VcTaLc`)L2Eyo6#+`M^?_jo- z{wR^O9%lKtcdjhrJyBzH;SDFgJ`cJcio4zoRN_INFZU~fwzlKh@f_UOqs{eGSVkWx zv~?r(T8cnz=%n8g!hNo##wp#d_<9~(HtMR{4)pUeH*Rm80(ybpl?UcuF;CT|d*e1Y z&@SnO3}Eh!vG%&W%sxk895b`n{}uP=MJTJ~XyQ3LjypqoE$(C4H`j3fnNjz3@9_0k$upQAdp6m% zb_Dm~g(W6fT*W`XK(i}ZLVg7Y z$UAk%64CSyW&8A`TZnBXae0r=GxX~@StZT_p}$LC3cmj7LaSS{r+sg7qd%%W?H}&X zLC?+zr)tS^=={Bq<{|6_?Mt2-g6781LDW+0hilLSl5_8ce4w{z^A6|yKhW)N*Jj3L z4BZrJY)Yjh^m%e>8tR?EIj?xz(eGZ+d%89LFDVate`o#W(tQU56|$RjVsX#3#olJ! zUu`fJJ{Z2Lfc0`=oBej{Ie|>SXLYS6A1H^(qY77)f!4V>Gv1g6eU9HlBRGtq@3DV$ z-EkreY!FLM-0BL0yk=6=hb-KO6YF1XEDZxeRmm3BX21;H^*83L_$b8L1ZOpoM*J1@6G9;m0r`&1fP6?&-+n=RN)g^L%CY zUn*7kVB&o9^@AsIU$4s{D+hNA7$4bv;q4&S$-5Igj4xwusA5jemD&O<_tXWqSNM6L zro!anIEQ&c40nv_?nHD8!$)zam@zeoY*xHov+n62h^4L*u^etJ zvTeaVO0%3-6oroA-qPBm-uH1XO;+?$R>C;Yvv!39Coq9-FwXLvLO^9sI4{rH0acc= z<>;6<)_KPlMfEoV>8;y*PN@`-gHy#Kqy}-n>{_DF^FiqTM0m*i=rQya^E&ZOj>4dx zY|(2)PZ+!~aEt#17xdcceZ4Gb51sVr>xpUmpiAjKKW7Wh2W=D(%9Gy&HUAYohy+n6 zWnPKmyUhhT^R`NA-8Il~WRB2QbO<$d{oRpSrHuM-s}ZBm}q^$}=r`um$7`0w1b zM}4YUdwe%~^V54q-dPn2@+ISb-YG^M9bduEMGu}V69=4Uxwj_r!T{8gG+0dB z7eg%ivcM}~3;lUnmpal3(BBa`x3Y(Z{qm^N7t35gjGDh4Ui%k@w8v}KSl2I?Ha15SrP1 zY0ljYB|32s_FcFEenASFCp4s?h&=I-#UlfAGPMcM$1_mNo9)`zZ>ESa#c;hvZ!fA| z4V(#R3q+lqt2BGJ6wv_NoCQ}BKk6UIOGmwnx}`Zqj}rsD(~aw;knfnQZ{vL6@2AV> zO_b3fcZ9%a2fQ~wd&4{HcL$nC(1~iI#G|Rn5Di0>88o>(ar@KRF*JH6!{J^k<{uok z{^CzO2}DwRwD~0+AX@&rSSkR}8Dt%Ea|8SAIm+&9*gS!O)Pw9B!>Q2MdG5*MMr-Kh z?CHHViSwZ@n@`_?0rXu+S4b6G!{=bJA5;8R&|f59Kah73#`@@j^b$&8%zN|gLoP9`GKaV^vl1;pb^KjLf!XJLOi4^4Fct&Jkd zpb2wRZ@Q&M>>vNh=5doA^}Rne6CBTr1~|^&-&_n|oe0DCcpGT$Eu9rFbP4Rue=2U6VXJ~a!-IH(u`$!)q zF|(a|3Pq{^o*XGZ2r1;}qTQ5VP?4jQrRb4^er?SQ>K{G`d35Rv9o1P7uRCd#X)ce- z$4=f+r^WBHmoXmr8>6<)OJ?7b4bZr(_f8OfAR;@lFV%|jq1g{lKQI6BKyz-xGV_^_ z&`hRWgoYIW(wQE&TgzwAinqwPZ^;bWn9)r6 zEzE^>D2umWDcfQ{H-v9Ee#iX08)tcyPgFf|p#xG zv^}SO>Psz{8aqz4k!B22Cq50{^JB;RcSpJfCG4;G`+Ph^a-&QYfV@y|sHV9K$RkogWP@OsmN==de%leIQ`*mEem$9 zBAD)g^6OiJFfEnHB+8EGi$AK>-}D!NB%Anof7k*{)a(?TIgL40``Zm3a5e%t;w3|^ zhY9}r?Y0`t-au9toXE1lzEgTaxeN=|uj{HVy*m_wa|)dGj7Lg=;?ojxlneV5dIEY@ zCGq)TkEUP2D}I>ZPwv%NRf36&SDrq3gZEH*dy1Lu`mwK7rP91`1ty*_Z+~sXbJ8J$ z1*JO?Fu}YdpzLr4#*ZeLGaBH2IEjQa;u%sfRw5{9I-ZVuOLmce#|l7mM3k6djv=(% ztM5OTQvmG>Q(nOj!_8wWp{YH5{r75>upqZEa%k8@W3_er2E_rML2Dv%% z2EZByxLm3FX*DqCM$W);rUj+=Kt0 z1ph^PdmMu?MjC^cqhm1qlJqw0nFb7q%zAGVn_-Z}(r~cc3r21{R%vBFgy%QQ=ATUy zFr?kL=or8O1JbQkPwDyT6h=aGBd#gj0oDImeSY=-p|Vt_$7 z0ss5hALoTfVPMxKYWgrY82Aw>$Wey#M`yhXzFXgc0qQe9*5Wmx|CqmPh(3Oti@|)R zsTcHE2o$_Ck%fWu<$0llmCz^Ic->}DW&9U%U zBCibICw!=_U}u1ChD(tX5AS0=X`pYTJ`DRD6wUo2I)KRHa7x=Uk-+rl1>H9R%sUv( z>EONlmO#TJtyUkYLZCV)+uV}2gPjPWsZ=Lz2~>x^)QKlvLEE&!CvUPcqh8XRk0`<& z4P0KPPFf%#N^aPeDTfAHl~nrLpr?eUi8j^_59QII;7{oXtomp+yje-yXAEsn-}<@G zV~AFm`^A4VD-f8Z8*1(hq!H+KEo%Queu!4Q^y1#{V1L}wfUM7f1=P~uT}Infgqju_ zucS)MqV}bo@;i1`1Zw{3eQib3Xyb+U>U_E~njcdCXuZ@!pf}Mol08mMpnh_SH}2;> z0=3QX)qrwww4C8LMzddrz;G(=U5}_gfk{+XD(YV(fziv=4N~0+OeKn6OE&2U%nh|0 z&Fm!v#vTsk?*Z}z`ddfRV=Yb+=tnb;TJ0nd*mNixN3>)JZ0Zb^f$ud4ObeS~-vdVo zEG1=Qqf!vu2s{n!F-AMU$ zwFm-J=;yYXuh-D#f3mW#ZeZTeQg@2LjsY|nn3~_g{VP=hC!Pxm7(;`Ec3!2QI1pv! z8P2p9LA7qwBF`RgXkTsgOu>3P@mWQlbN2|0=O|e&@{GdFwD5b^D_8J7<#O?IV-Mb^ z{N2Mj(+u4Q>h`3En?XlniebfgGPGNDU$UI#g>H#;xg23(=nb&57{ol*p8qs96$?H< zjoY-8(GBcF&Y@1wHkySB1;y8fcn+vMs(oB;{R32)na=M`#y(`8N~^2{10co-?)8<% zx~}gWw-Mh%Xlph!H~P&BtqfCZv9WW|q#)wA!8i-e2m1Pb7ek>rh9{w8G8bBoqs&?{ zA~dxhkiRx!4vq3AB?~XDpwTtq;X9@gXfnF!_wTYSw28bU3*6iVZPyKt&3a+3kd#eG z#$^R)Dg0LdJQtt;)(iv~e@$Tit|(ss_B(W(ee~i9n;3NFl9`82;5q*+18Gek=jwBB zV(9!va@^w`U%BTc>vV^{by52X8onx54nsUnM;1hf3Hh+&qsiL9l z*7ta-Ak0Z;^9_m^c7&$k;PeSC%xx^xKWyun4#ZpfMEZ5i0TIk8()p1C9pP%HN+n8w z_%iWImctVA(ouUP_}vWE9ekne@$E2b|I@QOU zeMkRj4UM`CtP#2)B1)b$!5oQKBjcDO(KHhh8F+;rbrT!>C*|Ey3n%I<`>+HQ!vS>u z3HGB_Z!xzoyap0y=FzX1%Q^9UFlX@68cbL-BsHE}0a7b_UgiS!4>K!gDkj)&9;U|gU*1x?4pVEVM0IMTVVZ4+eDwt8)zx|2Yw5ItDarAh>Ku(Q z6)sE4OQ?dLDgKS%X3QBm@Q;+3jnCCtK521MWiX~XVBuUugs~p&*lyGhLkpiC8w9CA z|KPrJQ(;H&{Vz#k%oOh#kJTXY`^_-Sz1%-L$qB>WpG+c4B4NmpkNQlh8WdeK(%}{9 zLY4I)@>$f^P|vduy%y=&s5{ZMRjQX4WuDHpU1#3Jy1n~BRk{)Qxoc)lF!mXgH*~UE ze_w$*<+88hf3mUf=#nGlIU~xp>~0L(zKL?L6y;j{(|~Tnw!#RP9L$9=3ALjAin)(N zzpU;YfSy&){?Oln&_z(Kj9S6H0O^~^+f5RPzE#f4YIe}NS0T^3h96qJGk@lcD`PIO z3r_%@I<$X(J9GR8f)4Q~^~YD`VdS+XFzaI3=||sf;=WGv@uR&>xMzh_DCLU#lAu`Nb3Z@4&vAS=<*}=(O(a@)G-HMMD=qyJKFE@nN!%E3{F) zy|%9j=XwT2oyG|>@*U@p zS{oPtr766HmPYzp`aN$^c_Y#OMirF9w>cRyj$B*6mm*uf=!dM06b&bVXx!ko5IqjW$Ln)JC0)?t=y_xxvnlT55UQtjx`O*r zo@9+ja6xy|$Ul?*lh9*H*E(V&jq}u$z8WhH=yg|R7R@H${)(N*hGydIXXSn4bUCov= z*16`YgNEJlzHIYh0}1DD_0vX5pW|~(dM}BYYag`lo9MOS!T#k#-XB#S(*m(9*OS;Z z18w(Ry=5_XuHF05xVk&$X+5Vaq7`X}`Y&Ii3g^V2=3ddqm1`bQ9t9n?yG@|Xrc$M{ zb{AAVdh__zYy5Mc7FQpkn+77^C2PZ8O=t}v{bu8D$Gvz6r9 z_Sl(ESE0Wqfr$tGC()n1Ng4TjFQ6#1nhUDV^(aA9HedZ|Hwv5g6JDEhLa+Gw5A$<~ zq4%cWTAQAJMKQPYGu(oMQ3_YQ3rpK5Dvas>qpF6XQ86oVxPN~W>J&O zQ?cn?Qm9QW>W|##ASgOnwvS`f7|QNeue{Y7hvL@X$rAThAkR^=jtA%4Go{(W6cs|? z&jn$YX@+!2y)*P>N$mqf39Y&+XWazCy13t)65QKM{G0QDWDYgQ&Tr`jWk8XRt#q~d zbKH*+XVlsv1#Ns@->wPb`=uq#r$eu>jxNg{nAKU2xq=Vs18UAf$JCRRg`gQAPEM<_ zZTSOHTi+b?_m6{#hdewiVCeqbG|NUi42~Qo|IFisp8TQnTxAK+C%<+=+~f%Mhxa#cy&r`( z?+G`4Ha=+kl2{xX#S2}1Z$C0rxAmOktL|a_CD~C#$P3?(`_x#C1@U<|qv_xbUp@BY2`HUk#J;;9@RNE<0drRkynxmwZ5@Gt~?me#8 z+%a$Pz}b6+qcB}!QK#v+3#KDZFsCYD{_`vG_mX@?Fhv%%3pjZMrhk943dOmr8J`US z7Fi0+?EX?Otc>#>9sCX3!kG7C`=1KsGS-!Puf`WTbimZ7uV%ac&!O{PDdE;Q3zO5r z$$#!9!c=B@lCyIu%>27!xldyrW|W>PmOsKgs0um~@qi|Q?$TiiDupj-t3IGzMCS&9 z=DNU!zX%n9rqRKQK_!Ghx7yMFjXRmZ`1Nkyx4pLsjQ^dWi|9K^p#Ae8^GWSV0^V;Ah??0^Qcv3*AfX1UipH%yCx)2y~)4JIldR1V++tDvsw| z1Xk7$(niav1crc7Ha-t2wAfqkewEjUK>byH)bMXGf&PG&g?iE%v}5+E$T=+=@9Q3abrHTig~I9!Qlid9gmY~lCA{W9!l67>QDkz zgn2V9X&P;q$*(yUE}xllmvLOXQhw%3}L(Z*S*KYQZ? zfvWM6mc}~=wE1FmmQ@9x-=2OB4!IjmpmzDxtjK6dp!JWv9B0l#pvwMf{Fj54K*MnL z2C3QrZTi(Ztd8dsnB4oL@Aw(xbF;JV+3+_o{Jo5Y=>!7|FMMX>DLM?pr+(jfprnuc zw_~(+#5iDR>;@<8xt}mXD|1P(-XDf%iCR2=`Cvq}K7G%u9E^Ou9irxA3nR9?ibDr+ zPDF;OIJ83mb0x!-R(yJZyyxqv;}+&`gdLszu-_kZ3>U|{J|zIz`_IW6@5+I^#2F;} z4f`n{+k~fe=E1m;E=smffbrupulC>A#5~DTMzM4q%;~9UXEeFx=#C5MY-EMI4|;7 zncSKcc1g&xZuzRAkJoa5vRH>vp?_mz&)AacC_yrit`bn2(5s&qo zts6>^2_$z~t(gHnps@I=1@FOnmdpCq?^(=YIz0b5a%&A{cPIaxvXF+EN>j?abC{pZ zYp)-ga0jOQ1NQZu>c{V!S*9WE*P7y^`Z{m&0VdBfx_?)q0Hw&X{49Nb8ow0 z=}hPG+OO45N5g>B;77xYnb2$5`S(uYBy{!8 zKTS>&hYqns)6R>m(E2CSKu!q(ac$7&77ym>Ue2TUTs4NS<{Ob!bOO*M-64HHd=^^V z*KAZDm12HHc;Jh?=Rj0Z%jUscy_O@p^xlUCLzBodOK{;&=sS00k=_V%0N`&AuEH1HAu9X3lq)lY{oS$=eOLv!Lx53)NeGd_5PojX2$Q z8~UC9e7|Ii_kSmz`w$B8T$%PUq3#~`uMQktzT%5HoSKI!59^$S3Fq_oZrNeqZo`Es z&0F|BId1(kJtkNmjhjoGCTz+Xx+W;m5NsXt=&co!<^62g)cihic;iCz5FsqeY zmD~0lW|J9o#E!GUY@Gp}a9uXcJ&x$TMJ$3DW~G%QA2GkxqVa;o9L^1h>fV2po&c2Q z`zPM$;$GUzreCIbu#f(^#dVL9dw?SGYTy?3HO*ORU+#W_edd=FC_>q7FrRV0_r%Sc zFgJQy^l&`xhn=JpT)Bt!+PZ1FqRkpuxIo7ye}D@XG&K5CqH17K(s5DJq!^a?UPSMF zyblZUk@?q!onS$fFZuApy)a)TbjAL)C(M_$-@CYL56nBhm**Ne4Rdw8R7DS-!(5Mb z>^&}=ga3Hq?&r5ws8leH(!I5g2>a(a&o>UET(PC&&u}k9Wx4BTy17s&6CU?=nF~cZ z_a^MfrgpTYsA`Xz-*f6zlaQXm`jTx%HG)xb6)quwzwN$Hj_nFm>&Del|&EP^!zo_JBTP{ zJ{WDyh0x7>*QMN(ko)e|rx!ULP(a$3_INV@P>f_KXM{QAaDJ2#A2fkIdFe^oPprW4v z)45kK3Sr*-ROFJmG5;}`8hy>DSBK{e!Yy0V6my(Y&-Oq8J}^^J>CkHR5a;v-PS3@R z!F20s>BstkFsm0??R)Px%>KSc&B=oE1fMIvUJ}N0!j49766HM1P(JLE!96uIb!1Q3 z0X3M`WM>v|eS-H^duC$9FemJCK-kA$Utxl~d2vOV7e@a2(>lbq!$?q^PTu9$Fy5+p zJGl(&@R7UkO3km}{*O-+`z&N}uIZ{QFFx0i2ag~3^TD}iBWbxG)0i`{cu0@K`VfqS zP@m6H-;eVpdp`|stHStdPqblL4UBhXHhLB&W5003Dsky1jP7!I)A=X?MpG^}%Xt*S zSU8WXv`85c^Mk51@$c2j*O5`6b_d$tJZx`&s|!sBSdLUKx&EX;@DxB|AcaKDehwqU>lwacm_if)cHecqA=vg!oGNA1%^|L_GsTG<2;!f zU&n(L7}zH9gi*7?KvTkxJNvMHZB+VlXZSAk*ZA;me(AtEienK2mog04y50SVb(mh` zOv%$r`|-Rwz-_D*hxwmFEPto1VMwd=#U-eRL4wf!6%TyfY;pPY_?t8utP#tkx-pBU z{q>^SLeySSGZ7g`O=U zxlqQ#@%DE1B*ZB^_*eXX1#_r=_FcpI)akbcxfSDhu1v`dFr+PkNy`wn@(^Jdd2ql^ z&XEtsWm0w%B`jf#;9-z?;t>qj&xCx_4u+AW(lw-fhU*gC_rT+xpY0ib%?8L-%GbB2tyD?g-wel6M*S#H;5Z zl52y*SQ!VJ`1IK8?#etG+i&XR$-acf{q0ZL)sPUW`Ej9?;~JvmG`Zw<$eFszyWIf{-274Xt;bURqj(A>RnQ-sH@CIZ9z5ZUd@t-#Fa47nXHIL zv=jA?U%7yWn!@xZ+!N6FVXv5(WLiWyN@aImX&0iL>My49r=a?D&G!Nvyr|Y9!0o8F zHvE@$;P-mp7!<#t8lim7gS@UEE#9}Dq2D1S;yf?j&(k80gsfJW)JiVMICBjq&urFP zI^vvBD9@!lCIU>#JrZGU!S^S{_4uFmJD3;ZYp54J1~cxFGyLh8Yi95FOOYrJ^-tgk@8o+z`%E2mx~)})#Guhna)nts-}rojnSy3O3G9nMAZ<0p%b-wuST-QqIS9{Nz1 zQo{RTMid(5#+H;!uH&9p>$D>dd{B3`wCo`E7gV{YhO%EYhJQxQC#nC*qd=l>$8nVr zl$W?eR}^N1k~C7RX0FCTW}?@zpK9JvqN)A)h&mrCw=f;+xR8pg+>g|wl@!!UI0X z3|;1VAOkgPT>c*wF$Z;#iiARrvll z`kj|caW_6cWXxG4Bs9b5ZnlqaGrqytLz6>SG0%L0I_BSkyfNkjb6l!>fcs-2^|tly zVD8pW<<f% zR0LjPTrDSXSop3BGmR3Mo!(XLsPGY3W;|ZBnm!>gd&baY-0C8*bu_RRb@xDXu2&7y zU=6f>iLFgJ@descZnsTQ-vQ$3yFV68F+apZ{Ol1cytmc$8g=`A0$TPZYNvkV#au2z z$#L0isN^(Y(rluFnhsny&Zz(u^34vfjkBTl>TTXjha#bF*B6#b8CR%N4?g^i74LB> zNmda-yfC^PA}S-53geu&q>OxafPAAScKRlQiB)-*p!e5-a@@^q?i%(Nl4IYiGwgx! zp~2uUPM9A$6i-uZzy%`~Q332}6c~AS;gSzM1%`ff+%+}Fdt|sVL)WiUxHpDuLKLyWeEN5>Yj)pw;(EswL zu0z&-dpD1b2>4@$v3N$NkeB(Ze3tDR{MC+MDCxF`;)*An33R!*C(S1Qj7$zp4Xgt>4v)w#L~1TQq2J)e^|oszJxKu+PT$;OIK;w;?B+b@&YYfJu*erR8F0Jm)th z4DY!DB<7f!D_^jV-diu0k*HL2bc2!5>QfR-12Be; zhtg@?fUz^(sFYH zdq$GF7?|DzaWbEUH`el4wRcoAz zzlU?fPH6{cgKiFGgUKKl-I>z}SG06<)TbD!m!<#st!=Qy&$? zc|?{iZnhOD3Yc`v>ov}x$PnEcZO0Hz8?-+TH8outiqsx2g4AJ#mdOj8p!=oq379vG3{AzY;ZE}TXoj^;ToKdKYx^GBK8G3lf|=k^RnU|WU=oA`Vy?8 zQ2%$T%NTP>dF=0;!TN``_=jtE8lm&M{K>PvCiwlIx5iQ{5ADa>3Yl}_@q9cuC>m)C z9npFW{HNlf$*e?T@V+}f$G$E{RfAC1KX><>@ewG~%h%>(I}3eI^9(xC*pI!LBY16e z3wlL|gyUb`f!+hVm;Kjd&`LG+oe2ehG@2Y#^s!46jSAN6-dqhvL&5KE@WkLe0cV2t zF3CG+q~N~-x)?x%i$m{(f7GBsnIW>xF-g?*N22_WfDY<44RG=b56T(c#~+XdpyfHDPTQjTC=fBt-W#<0Es9bNk47s>0;p_-)>Si1#nEXvm(U3 z=K*bEfn|KRLV(yc6jw|`fVP{0C+QaV0Wsle+$FQym@{)BfNhTsKBrw{uD(bY8q z7Ta{iN)GGeJk?sa_x_gzsz)_$E?fm@XC$lH#i$-_{&ShrIy{K=>DN1t`S9nyM{*Mq z#n3|OQHy0uPPEYMcsVEcE?S^+f-wFuG#B7e^xYbB*_>v@L;g{rSt;M=d)led+_~t; z#cczi6b$RiQ}4pLnkRZs+VJ&Q{gyrN3hs|{iTb<#Wder#0+R1j<3D%LcJO%}4Emta}!L;vhS+%R0FkAn{P^jJq=1v%%E%Cs5u;t=Lpedej5=B+oK@lc| z-S2lE!aDX*Epwi$I2SP~QP^yNdF-x4-aBq8iiGi5qv1^!%XM^aHxZJ=r%Kw4nDN{as@lOZ;=5X0UO7iTff{E04@8;(j@m<`ivh7`}Cg zT~-wH{<#Cyjf^Z{z(DPCfTAG`_dkf_Sy6|Paz(os9ex-Yo)qMhv4v5QG)9|GxLw3r?Grrv4yiFfM8oE_uCYi|{+HojnPd$5 zt6D6jd+R!CjrWn3u#ZH8cPF*Q9o*33;-cJ7fhPDklp{Mm*cB6Ua)+ffM zXVCa|3vkF29=;Kx1sDUTtgbLZd(5y3LT4QIkBg@rTJ3M2tO#Ozuvg z24>?e_56ou=%U}V#4DSKpn>k)%@ju6Wg9=3yk>E3O_H_>pBKlaaL`>W7LC2lA*Nb; zqbZft`wvF=5M_u7GcT^A*|=&2m91?=~lqN(5tV9 zY`9^dQ_f99WeGp;E9d4(&tSl>Rjr=^_W+z_Zi#R9hcWISMpyS>zD04+>5{}Q7~;D~ zSld$vxoe*R(!UvDxq|Ol2kko%xeyCvk!WrM8E+to*gfQa91CM#o(Tx3(zoaeXhL$lW!DX>W|d{r6#!PRy>}E&&;tn;XTph zv7NHzs9i8g)pqFB1Dw13O%P0%s>k`vePS}gt@!bUI-2{$Ve$s4A`PE|CT%`0g)U$& zib*(UX4*rX|KjysdVc`t3>H*Zg$#h)mf-oZ80!qhe*M=6&LeVR(TZ=J4kA_e(KT~5vvGe;DYRR%Z?rGkN^7V_wNmMsbYtEMgtN3~Tb%$Hgc!wLc^u|gl zjYOh&SN082iXOsOFizBfxp@==X?0IuM2eaD(QEFBC~JNS*?pK-sO!QIt+#|`wqF;w z>+C|a$|CHhyAPrHr01lrXZvBwe(a(0W;#q?w>h=%ZzxP&3~=Eb!{;qa#|tbJ?E8J5 zd9)Yjs3+ET8+F#<=esFpr&)s2~0)cpLi4mceG`sPuPyzeP z`VE9daNp(I5!5h-d)oHXNmRAq+{1*>%O4hvn0q6$^0yK2KAX2F>y0GV!B-sQig#f8 zwOK3OWh$6H$R^2HcMN8(Uwzo>6AUxkj_Dr1vCeaTh{nhlV3uv)%~T`2=QcD56-{Y^ z=}$i@l(-Pihp=mUJ_fw z-*3cQ%jTyyO!slx%h#^qJ-b)@O6(R)-)c1vX9$I<{`Bg{^;l0;%9m^(e+^R`nVs(G z%$N(ki)t>S8zy}ZDDDVN1KHBpXDP!BDD$pkEy|uiRvkSqWV;vVb@vK8>^_3`T-L9r zYOsEnEKhupr3;f!yj|HVaL$ANSy2e~50P(3XKUE!0%<~&RIB$DKRoE_< zUuM;VFcdk_m>c~9#?QGeS*%mR_~gF!xENa)lWM*4Oe-J8pHGXPl)VQd)e=54IrK1m zn$GB|0`~i*oNH-O!hZ3<#Z>m23D9qN;9)GSH}uec_KQ-+e_;T z=+YM#{h()s{iMy(4?g8U3yy$$n2Ws*Zjh`mGg~sP>G5KbHA*)N^5Xq*KNsiF@*S1bai3B@cc1cVGqgQS z{Blg73;VxZqgmAzfoNlE(f0H!v|Ehm9oHO#PEOT~VI6#-axc>d7;t1r}o`BPIgY2Wc)XwXRX$>MkHkF@=-VkP}6 z^ji&&2NCeTKPs~jeUyg&Z-VyEG9qALPGM5)1D+Fwj#|HExCA3YLRLWnE-+jm7%p7s zhkIw54!X-=ox#ZEQ`2L7o%>i}-nwIsxh(s#4-KA$iCp@J?Ar7AI{7K1BIXXBn-V=_ zB?F+ta_ZGyivf$TET*#GJ%>5WDxw&u8RdE>Hx|}lMhV}d1 zBI3zrSnrR#WhEf#11;6>#4a^8L+72ooil}Rk+?ez66R1OtE6#{~AB}bg z@zc$fq1kfossoqzp>;7rtv(6QSwBdZy#?h6)bG|2kIrv2tGd<`_}m#SjD6M(HYF0+ z$+`>QALD#cy}+%%o!1G}|AG(w6C)DnY`yc8+Pw+1`!6q5PxTV$_&OAK9S$YX7o?2) zi#ZTzE0Ycjc<>OYKUW&+e=;I4?EUt9{SWrHTl5s`UlSm(yd>snEbs-C-Xm8CUC?WK1j>YC2&Xs+soE2CD0^=fm5w-1Q}Bk(AQ5_AW$XEF9fpQfld1%(1*n-&ivC`A4O&Nr&CVXcK1CLb zk1}&)sFy5NST-Dmre8*3FF0zTslk}~RFo&wt54lKPjrSVDUH*jr*xoVPF$}1_({x{ zOFH~LBL>QU6ZFHlKSNc&Qv>@t3sfonh;?8yg1TgOROy8MllhF#x8LFO^%>{q!WS8! z(M8Fo$@LO6xCsfLFOG&fpO>4j)bgQ0EP!k`7l8jBF&+>IgwAWX^in+qFh7T_r|>Ef z+WnhMj!kq!XLy5KBwZ=?+5MGcPw>M&+AA^<`2OCjzQ1NLI0O2shx2u-3!pzKgL}5V z8~WxfC3zH$pzFSQw|Ao>&L0bIpUuEJ6FnQ#>0dMW>y)?rsPV-4&Vy9*d{|!?VAi7d z!`C(b>tEb*T%lt_gv-*p8meU11!qL`q48Sz#v9pdPsyWkDzIu%Y+G!5y5j;`#W$FA?KPi-{$Iqkt@CtbH zc8dtfnxZmR*21!ZCCI+?l)*Em8Y&JivKjun4Mi!;K2v7X&=ALSYMvYf)pM?ce^2-T zdGeE~Lu5BlqH;Pn1gJ3IVZKwnEFA0i|B{2VH!%;7m7Mw%bJQdFjUtWpVN}o5`)WlV zj0!58o%@yvqZTUV9`3j|>x{U+rp+xNd-iAh2w;DG&#(2tY%v&{%{t&GwFZ+}QEndG z5iq5i&3;-c11K+2BBIW_!elu8GZk*^7m#OtQB8yUaY}inZ>}=~si07)`U%dN2|Er+ zCB*^hpzFI$!4p6kB#d4aW@(AAfo5&7&o4MIXYtI(CYsay*blVDePc%edOWgREKlX(IoRuvgv@W~ zd%)sJ>=}bTO`+Gn2;DGHKheCyr3sxIt;Mg{LZMYF7q9ZHq1o1ldgN>bsu|y(Dbb__ zp(->VJ}l^>iq3p}+vaA}oYkAP##W6AK7MQL?pH!Z>;pcl?KlteDXg(81oO5WSyC?eK?O_T6pmhCSsiCNU@#6yegI7jLrQxH+I}(HNqV0Zt5}zebtok{qziN zV(MG0V>*2vZXSYe&5b>IOxe)+W9W{$JocrIdovzVw8VbPnkY<&!mro{B?UPBo{9&ynZz z)*3FR0eM%F>lG~znD{2|-x3~t8Zn^L_bp1Tgb3a1r>zBJ7ytqwovO`mpHt^ENVo;oWh1?2I3v>nMRh<)Nb#qwj0 zx1r-*&`$l4x6t*j3hkWOgl!G@4blU4&sx`7X+%IMe^;QO;_9tGx&;f zolXmCZyHKpp7(~PlQ#ootF0jE8prJXk^wZnV!jpnB@uGJadQk>g+k@sum5e_SAeE& zl79emDdx~qPjg0VK-b$Q&oEW2LtjXirwC!6|7)l6;1PM~&k5gOBtHv7X-}Q`2X&$E zsZ2$~?zhl?BJB20#07nM^aC%iWB%Wezp4RCBy@k0@yI9^fu8zPKmWM!LSNSr(cnLF zxSxh`Kmhv@x=O!NA9=3{J#WK`DOD$+`~26t!~bv}uiL)Yw2HaVz(CK%%>M%_u5m3# zGv`CK-g=#xsTR~+K}L-dc2GP0xBIigAXJRq?_+yFggR$t>cs&PG~Q^F_=5Gk#^MZV ztNoRj3wkur@YN;kgXhks%!T3JWP9^2MHgtlZY89B8}rVxp4PN#;NRbQEyAqk0QSEN zusNh3h89kR6GZ}MP+=PWm7?hfCCXl;mZdEylzNz--+mrS?(275Dp7z^HGiKOUqh(; zGZbW&qzVOn!UERZCQupe7zUX#&~PvNTQUz3>L*4|XPDrALXLnp!>956=2=tyu9aD6 zxR{_cw#5hy^%ZZ%$0ndTDpT~F4QUu9IrH2cUz0>WKDvC5pwhA9RYfC|?LOuldHU{)(=cT;xhf|2)+GcC^v=rri zUOllDSc1wZlZF{t{d&pgep2$Ub>sq_4XDk@!(XARnwj3Rw2+Uoo99`kB~SWN=% z7u>y1NSK!&DwTN0Ba3pNu4*~B^_@Rdb@*#@@?_xs<_o*1$Nxd|$RFj4vC7aIs3vO_ zVFYcvrC(RmR^Ykc`mvXoFSOXdAF#;9k7JpXtu9>j@EP+y2bvlq>};KioxLDdFD9*Kb{XMg5>< zmhwf)WgUnj;?1wqFdE7@v{7Rc=k^X?*pup}0ZqI1-fOnN{uq1iDzXtXbY8uEJ3KTJ zx&#KxBl54{TrZ=RN((!5@1a`Sdglg%#X4mgZUogRT zPmV)n1}208tmvYufPD7z9d7-6z_1QA!8Ghc5B}7dXPO0*?{sW#1wDsp|DJ=pviV>- z`Vuq!%6*(?ANtT^QxDU0d5K4@G-0apK`-m~S(rY?=3uyc4`4c}kU`!-n7VN*x~m80 z;pMitl-IIh>PiNqY<@XRJ6(2@`@cT(p~JAVHWQ{fo)1xKj=}Vi@t{~Y?E5@FRc7?5 z6{fTD6yK9qU{-TL|9s+I>>C`LE80DTxwjJaZ0`kO=IzA02eu+WQLf$jx%3*QFTNi* zS4B&pPx|3s@-u_LoLkuz8TlG*+&Um3&`(5LySSQEemN1Cwq2rPjQRHkK1I+}QLOvy)5_$s7>c_sW)q@18)et{rxe>HouR3}AsWpLWg3`Cz+D)Lz zDUFRevx`9Q=PZ_XTpQ3^mK_s zZea~j?mV>qRW}Nh=WLxp)brRcR6=>4&IP2=2L}&%WA4ynLHaKb046wBV;-8~kCrb4 z2syeio@sGH{5qzQC1N`pV46 zJjdR9@4X8VvWYa56q1o7*&`y7+z*kNz4zW*l!)K?{q?-^;^`Upea^YA>+^YkMr*)^ z)}OE06-YXTeNPvXZf3f5kFytgbx{Plkk*($Tr zU~Phu@Oci>1q7c{+Al)+hKIHV=``eEOCtE~hh}u0#A)HJuf`xfCDL3R-2hwM1Ma5` zNI!m)DLLpEA8e{KoDo5K;*Gl+vbVy2gH6Hh<;a=ys4q^EaCLJMaTF4wXywuCwD$J4 zmbwU5!xQNSAC;i~-`}pN7l>2FIvvcGjP&(`?}Ac7k$&DF_0~IAEtKD2@$RfAI)8a2 zOZbpJ22--M^QU}VV8-IH=ejcDxEM|b)sbr>AA3l9w(KVIS6;p^DRBVi#SApwyN{zj z`HO6F`csq>F$#B&UxQK3*h^w4H*M@(uG}sM>Q@Y$c$iYefsx^0sdhJWFluhcAXWbZ z3{iU}dm=sd&~!~<k#ia8 zSI+KVC}2qhqwu1Y@>i5QZD%WB$=Zo>b@zTwTcBADYn2y0?9eb7tW~K$%ddYvF_ie`? z@{}6PJjO06eT@UNy#-oEy}@8sjsGbj4;`2vP%Yt`m;wt1xD3Odbg+Vt7m%fC36@mJ zNRulNANF%iymhh}ItMa`%w=1GS$e}N}aihhx%|M;_?pYI`K%+X)lLhv+=UJM-Jkpf0Zzmf3A<}3m=(RBYR-? zzK42wQ99TiOqD&n5C`^1aS6jAo?ur4_j)|!2<%*HjPpE2TybIp1%(r&Q+}I%^vTH< zY~SzNP)9zd9X7q@#}g01&W9|y6^WN%Yd@s&Dc>oFR(InV>d}UKj z{~g$&{SiMO!40;jG>)a!kv=+hdOm+-8+420ykTp=VdYMj%FPY~K;?I~S_g_@#N#7Z zGOrd!dXIMlEK6zNrN(7Riue9thqz4f@bv)LrLJ}&pqc}_RL*vvmaUNfy6e(2$_B9G zcjXH{A$r|L`maAdi~_qdhA+|v7r}hb?K|%1bxuEi(l|A41sbM?na<&~vCM@UD;Jkg zut&^%&8B@D?EaVsyLQ*X-Z?Xzrq@NV+flvQ~A1M>INWg_juY-u@&- zb(aC`W+mSe?~ehytQ%(+6(51!ToD!Pc{i|INWgf8d>3(g_?HJmjM3-C!L_{f3hdl( zM*ZFzu=8o}gJI4)lq*K}W;s(DY{yH-yHaz3?NRnWc_K)kU(2#ERqTfJ`W7Pv3|3%= zFPk}}l@x4$iLbLD{SW<~4+BSnAlPy9O4J@S2Ro#1C;Ee$kPcrbIupALc2+`GmRTCX z&PF=1UgQMWrI-GhgLf5_6}80r|BV6-LCv$3_wxZ(_FyD=#~+l^on=_9?*Y}tA1A^` z7eRixX%wjtH^|kS2Sy1uK%u(&`tpqXn?9}u zb`gPZ5tZj&o-GII2G@JK>byY~N2(-GJp{$FN`@>~YC(B~Ea43u7SJeJ%HDPs&G!R$ zXJVZ7u(=Cf7t^0`VqfUXxne~Uu@Vlmsr$mcSjxux{J*WQ0WL7Lf5*rYr1q3K=^?#M z6@&6$UiA#H#3=fea3(s*tnM&AlZxNy^Ll}B?xs{q@#v_%X%(Djr4W3XIt8f=$Hj^rWU!Pe-7nZ}2esIJ#cyP=HMV?w5* z8HIhY4(euVT0FrWI+|Lfb)`FFoqXJ)1lt0W{R@KhD2v*8d zV(-cXp!p;}(c>C1sh1czXhUsN@KVDx~DnH`~E$#jQEBd?y?uPVu--TayYHU2%0bWxD}eHv7q@xdB}1c zdOs(ro5E<`w4omHzwnQ+yZukA(I`Rjkj2zE;T}GVv-GSmdq?=#WOq~-#zJIrW zUsitBgSn!n6;Z(!FdsNDLr#?n=8pM~gpc~byaR_@y=$Hl#CU!;&ptqd9fd38SK6Iaq!AG69bP=|=A^zq!R~xSWq9V+rLn{CO*#_zY~g7R42c zp*fV9y+(B5JlHThpW!uv{vA7K+92czwkaLBtlHASHfwr5&d?id9Yr>r98ZC5E~y#z zpj5CGp}d|_$q2Tt>Txoitb^@qp1N-W5Xb3SSb>u-G0J5~SeFn$^#i%`N7o1DpjX_p z!|iT3;&|j8PNktbcKu?H$A@{)fAfK9V;LvtZ6e_o`dbNl*?$luc|QXEv1;RAuQ-B% z%7l@y7xLh{ZGTzPU;=2AnU;Cq$O~ExU9_AZp*kz8CL)p$AL%Q3$j&sL2Mu?tHK+50 zQ2nL9DXxa{etZHY&p-1+`qJA;Q48ImqfK{$a|rD-csfh8@w%W_f~WE}*&WciP`R^E zxDI-a9{!WKq7QoVB>%pQl>l9g^Q)Xb)}T$5?;lry9q2BL_MCZu`ho(sX+8u-h*!BB z`_zOVEPd=J70nArbFI#D#whf2gV(z~a1<P5pm$M zJ_xd*Jgi|n;b$c1e5=!^;FphhkJEBhzZlT@Xj8oJNDc89+$U-Ib-9sm(n5%^ssYSv zH#R6JA&$!rtKEo0fUess{c@%S*nmi2pP8);Hct7vS!Vn<)=juJrDj=x{p4U6c6iQ! z^|75#UA8I5dd5w=_O78k_|5I)AN7-9=w`W`xcCRq!6~&29+87#p}Pm~p4Wp#Jln2? z9e1#p6JZP-P`_|N#?vnS5G?5*zFc5NygKo>c?V4<==#O08IV&!@9)(`DKRvssT^jS zjs5}_jPhbDRjpB9ksZJPtPkSp|K*j=LU|`scYmlHp}g0-E&}06M_^u|T8ZcXI@DZd zBxo`Na}G_iVO{oMe&xyKCtNmQk!zjz0YBI}i3Za*Rh z)AW~$zedx88KON!7NifH$v15c-9ot$ad}~C$08_4a_m(&4>y=mm}cP7K0!Y(C1J-x zz|4ae--MXof?3bzrq`qsXddi-bTtV13|Ebc@P!et|1qB(5g+3DM?EcGeUCU%8oesJ zvISr|{j~@l7cH2Uf1XC;(+MW->r9FApnlUXjXdwFHki<1j;d(%29uQO>1?9`V2X0c z=OzW3qp98N(=PXL%eXmyBw>@V6=I-nIs75 zah^~uiww1aF^$#K`z`vYKPnBLEBr%s|M}s=jUq6*_WXs3E8=G4{#vK+%LYU77ad?I~8Ja?n9<5|0 z={XsgqzEw?pAP|(tYZ^7+Pq*=Ky!40!w+j!`NYnh#1C$-z^UM-8LZ~$;lUs7Hmo;D zh4bp6FxK?3GPJ{|1RKeI8q6_2jEx+aeh?QPz@`ex!jg?=u$hMM@y3ir*tqohz4BL` z*zijgg*dlSY}`AYiu2bGtXIybh*KAF_=Wri_#NM3Lk#R{N<@FL4*Z~Z^vSP%bYfs z=<|>(#|?)U7OA8{f%wHYW&@kX+mH{+-SWZ2Fm}>$rgzaz3p-K%a>D#?4Ev{Cy3N&I zkB#lE9%yB9V-v-96g&59u!-A=n3?)JZ1Rq26>GH@HjxKp*B^0U!?)NTx&)|T9lygg;S6C4dGppi<2oLs!ChyVLyaB8}Hz4&i>>*Z{ zg6Csni~N@~rG~MTn^VI+jCNvhGVvUK{@%9(1u=*7>mW-Z5tUi*N!#IQj z`?hvdap>PD_PN6Ll;I508S$@tGA}_qrK#{Q`UZPoVpRGTEy{D=veC}+%egSj~saa zzL$&VpgwHsciU?LVA95SE1VYTHyHgbvK&wyAI6{DN?ecfWRkSx4OGAqt?T|kA>v|J zBjgL)EijKoQH44q&f9@x{MT@2u(Z!n9H!il_A#Lu;0;1R}@&L4~Pq{-s8 zB1d58YAZDxG;=76k^_QpPyOO2O#+-!y6;)4@pD4E;q06EIAw;p`l&1%?Mn z`0sr}bt^~CFXitFV0vWgZlgJx)VM& zV301t*=+a;)*}^-&(8b>YwPO#QTZ$io6)#cbUp(4t1c+`I%&{gwHFwOzL}ALPv@j> z@e6WeY2O9)7@lQ;I?YS;YvlEqE%$zq2j^W3$0|_&*(eD6!1F`(qTxlX?;7)i;5A-s z@Qyi=h*2jtVno`u^@{_W)+&PFTx;gJ^SC!az3uZ#(n6h&;YUYUm}=?b=-X>!&^ z5Mpz-SH$)zJ+NukLz5bjYskMAGIa44z?R-jrb@c2U~{BjH^*P(VB?1KJu5F1v9Xn) zKgF}LST%3(C2GG=?0ZE@UIq04$lM=gkza{N{c_IaX!~K1TEmk+l|BzzoKFhI{f00- z+=ccgk2hGO*DTWo>+{&GPE*kz9!{)vww?rM>jfr$(>S*YyaN-=;;&_mJ|LZTi61}W z($4H#H(QS;gQ?MEpNL1FkRSd1Y(^pzm>j$MD_o8R`}^-Jt@Nfej)00Rz&Df$NBW`b zSDpfz$J+$v^4+&V`Hmb>jo*y0-wG1j7hx85u$OS?-L8PGhlZbPlY543aBN(;DWHw5 zZC8EibsEJs8YX=Us`Iebw08V0Nuo1G}UA5$DJgB$mKQ+`-8_amEDF-Z>9~W`6C@e zH{-*6t66NB-~0~Oya%=+>7XN%af&Tx!4@nh>WHUe_yT-bIpQ;e30 z7WS+9`f^B99ky4&<V2Clr= z{@kO$)*>vwli zzlF5+KWb&<7g?8kabtK0Z2bLuadT`6tW*7Uxofb1=CltL&gLS%zsse2_4}Ksj<`kF z^+p8DKN0$u<7otDVb<&gWyF(Un_jvsc?{ONL^Uf-xxl>XYSW((VQldxTlmBtJ~lVO zCpo2{giSTS2v$zz!RF~XnCaN=VGI7f=LDWGVAEM2Z#<=aj*Y$LOYpzOj*ZA9);~An z2epaWPIe;-SQWG5IbJ_Q(5;~`sd^}l^!R-nOYUJn1%J)hvq1v1e$3rkeD@lp{CjQE zH#CKHbaS;ZaE4>kpAF6H@z8b7zm&wYss@&^7ETL=*N9shy0@tH3C+ptxeoCqQQnt& zTDurA$|oobli#67zUyx;B!Z`4x%eP+?Ls72u7p~zjX#5BJI?x}M3jT}=d*JuivZ$e z#1J#7jDnS+JjIc_$ZvN~k^Qx~Cs-Bx`+)ZmC0LO@*D-n<%?mCImN@mJI{2IwNdQSa zSWc04uf6vVEIBpWy^hKT%SThgV(+xU${}c>Ul<3AhmVWYYSG+2xcAkhVIx?`>KTlk z4MF`!a%~!v12y+qwdQy5D45q@$}X*^0dxCKpAs&i?|63fsj$9_{V*<5`UgYCb(BF*Ywj_utSj9rx{!d6%6fBfK+ z!PZ-FQ(>zt*wS%b!sqflY^|8JHL=wcTfW*z@qx<`+em)Pdu{v)w)(L_p*htgZ}hv3b#Q~84U6)-_s)TitEoADu5_UH ztD)VQC!L^cgOr=GrWWAxkB{)^R>1dIau=Cbr|5iTQf5_zkMha={P!m!v0mK`pE--RO9+*_%0&GCkB-zem-DUG9(A_g}Z0q*imVN}bac z1(gu2yRm|xOC$vAd3t->rMeJ!T)0V0S^E!se;nKFhIm`8+o~MZ)=1BNQ8?gRgd`YT zVPV*BLw<;%hsWka^k6W*@6v+?d6ZN9Ydc+K4dpJHT88WpfS%okQc8k&&`!%BymJV# zMzc%TuKd;jO-o@}?=N|S%@CcIIvK6B7l zqW(o@DE}Zg%13z3*!L^~1MB2EocS$|VAW40`$!UTh)ancy+eJBO{;o&t5(GCemwum z$2k%CZ}I9PNj<^(1^r7!2fkqAQXF1C4skbHi*qgR)PS{{pQ0u|uYuLWX7bi!Zm=3V zwW&SajQn8=xbE)9DBnbMwW5_AEVXuBygK3t7B%~`p3d!}If!(ZdofYdBz`tuyVvjYaO>@q-CSnujj~62S#TEVtu%5rVuMn#HtwM;|A6b*I(36orQ0*?_t)4bf;<%MjaRDXJ?7l;XiFA;u`o=yUw+w_2y zX$oB@>S|*InxkMK@|GK0c^TpXsy8Z>=YYNf9g+X;k%RuT8x_=u1JyhBvFyj6D9|4h z=JWj_H>me-yzhIq7b`JHdCm}>xTrg``t*d zPG+JKox+d$yu#sMFa@x_G{aOejr529t8e*U`61rYHR|nYT`(&tt8MTp2F%J3Jm!Le z$cK-Awef>G=pj*-@DbGoT|N&JV^V`~6ujm6j4Q`DimxqlZ*3iM6w+n2(l3H==O`7w z^E@5L(cnM3OwgQ&JOANVZOWy293G2tX*D(Czp>|+DA()Yh$??;EuD(s$k&^i!gQi= z6h+qxA9{!5DCyYWG8fT<*2hV8-{aCjYuCTpveFNrg~=5&uq_1r|E2Le(O*S5WzpsC zPOf0!Mg&fY{yG>kgMVjl7=odRkTGwjNibOXIWy|+AJCJb{-44(q{pG-Yn^e320gW` zhP+ut;Cp|{;qem@(99NaqXx$S*8HNFHssO#kKL=-oEGWAj*R60Ge||cbhXPpk^x{& zPj&0xF48sg-53vL`U@s!z6nT&hJ&eZGWBCfM={M9Lts~m`enw>R9D(j{-p#3S-jXb zSfanEbmzDe3>0gl>@W)D>VO9eMB0Z zf&5g%A%>jO7GT5>=XT`24RA(5@(*I~fF@V=Y?(nfP_KPP>~$dGiV64g8-9fzeNqz-+Cddh~^St6B4f3@r(j=51*f3W3`98B3z$bLsw#W_PeN z!qU_I$sg?IaaNEp{{XvJ3r8#r(4281Te#ij8rTUU7d+PV4(!-N|R5fs%H=KJTk`|*AI=n6KK1oh88M*DnnWn81G3YrIe`|VBp5Ns`Q=-(UK1lyu|3+^L7z?L+1 zKrF{~G-s1b;~cO68xEdl?)`EFYid8?ew?6+LKuU;q4%>d|6TCoHG+x zR`w8KGMfU+_v|)=TfD(KM}w#L=T5N7Btkq+gM3H{9ixLMqG%q+`m0SCaq+CTA6_P( z1nY|{b~-2cV5y#ol`#7QST+>+rH6F4i=6djA=PKVf_;=%U&}n0Pbwm8KNtrKHS1Q* z7yG~(tKHq}?H0&qWo8lif(fktx2tdb3gyB63$kC5M|u*P(VcMe%ZLjVkZ9cb4J=&L zcu6eY1Li+&;fZQsU>+{5FCqQb^j#QJqhEz`3DSPkP6mOgp&$kR@ij2)LS4y&7mD(_ z>XR=8?17Q{k%x9hRp>m@H>=}y0Sw->s-Jjy3eQGipAEv>8^+Wjph~~3G`ZqI_ z#X+^wXOl-(!XQ5=|IV}OAW&c~b4cbE3JQ`=+9ac`!Q$1vExB^!A01<;?@mQId<}!o zC~M-u{DrTVhW;XdlirP3>0dXH&n-njjR$d)iWmKpGRBFyc9C$fDCTy6

42i+P*9(*UH;(m(~c(YG@8hKyhQM^gROH|12VnZv(gcsT5EzD?CFgxme#T`=lN50b3>EfT zuy2Qewy*JjZpLhazS^UdoJYx^)tBpEBfm2?EVjGH&8>j_%#CP#!}T2-lzDTFGRzX| z7KwUPw55q1`*xE5w~lgLh*@XPcz(eC7Tn%l+89E)8s!r`-H4YWeo~zB+6bGAa9)1k zMvg7){b{U_Rm0|WdBhHlu3(G$qh~I-^ka+pVc(ukcVQ!R`@KZ8>(~@aptTca8#Y{` zfBKs<4{Ig-*mUTO!@380SnsxvVqL7I0LIja2U-p8pxkf_Db!dL;)B9QjE>e`5jzLXG8HwN1Laf49@M6g;)W>94?l3n&eNaY=waG_lf0KRe)$(c>OnB>l zc{14wrlNNbd6|;IRKZ-W zPSC%PxnMRUg4mC}5A^#H+r?=%f|2b22fkk@Pk_{gx4pL>n-h@54R?rOi$V8UKJ)Qn z)5ktv&dl;*n=k6>Ugqy%8+CR`IJa}yb{X$Lq8}daj7omkUDy7slgg|W}rr? zkG%)G6q4Mwo*rESYBbAnf<(H|rG(MFE z-?wnF=i`$=Q`7C;2M*`JV!)!Q>YG1cp@Q~6McorDuR4cmm+ykjaC@!02=2SlCLaFW z9nF8Q_xyWG9S=5dM{abmp*ef}rxZng9ZNy0%O(!Ft1MY zcRlhKnAfYjmJp5nk55<}OqH0xJXxMY&FD+ie-i$wuKX7)no~TxY*G1}8f= zt+DA_@v>AWs@OF5RZ5W(4Q%T30?F%Aj%tL3*x$)jDKEMK96=JR3str)7!=&%6nXp> z^f&+a+qeO7O8w1pMCp7%*V7~a;=pmxw_J1YC`lOf|MrYeyq5?D|NT^v??jw&4L9od ze65J@FjYN({Gh8eK_&!KdtgnA`*5}p>D`2GI)7k6>mB*q;tU~K98a6d6YdlM4apuw+{>&hKM)7#W{T(d5q@#;sRECL13M=T5w(w`7%SZ zb{8FxAH-yA+lU|e(T_1*6E1PE#_KXE###hcu2QVo#x^4EzMI4*={8ut_WR6k#SgG- z?SJd%rUY2F2@6%8Lb>c;a{a;sb-_SP{*vZbJkWnlkjzDf4D=?KO5D6<0fv3%Ppl3R zpE~O&vsjfE@((yHeENd)ywtuopYweKGb<(D@fZ!_mN@(|`WXb~<{Rw1MGC<@L1O0i z@dq%U@V%9K75QfbU!OfHMY*pDx2Nv&C4&W5+)?6>L@+V@^sq%c9!wj*`=y_Z@@;}G z_#2A5L0?XxrK>as`d%a$(fm5b?ls(H9}IQ|nI;~4`df`yMUGzRW0!N-Iw2GDiRm)7 zKtT8sI-~v?8NKTlvJ4#l;Y@m>#6|4X>Ecn*At81U5c?uP?gzGVH%`eqvj$svNNeEp zT@0HOyCkdYCykzO;BV#eIF=!?MbV>14DzLl=Yw9OIg9+|U1C28Fp6*2*lqF;j1*j2 zDt?02Njm~(((Uia2XGQewx0*as~4}lA~*yiLyH~Cp8MEjvs3;67YWvB;wSb>gc$2f zZlR@&E&<&v8J1(*Nua@6Jeb8H8+;QnFK^|z0GgF0(t~Qv!B>fop2cAnSYBW&`_g7F zs=*RW$pkEMGP z)b+9bW@Yd?jt}{`KG^WpJA%PkwFMs6a4?i!&T-Ym35*$a54n?wfr+Y=I5s&}FwwFS zpOGI9CcXx?f4+kFKSs=MpR?8wXV^5jS_kQ01wH5l1q;EN+$*~uSJ8Rv&9y;>m#DsA zy3LeEiu^~{wAW%8P`@lEdJdlj^~V;%a?I8B!RomrZy}a*U?V2=Km4$lNQXN4oTDFc z#j8k9`_TDe>q^Ccf?LQZt@x1jjX3fp_tWi{IJ`u*+tRB2F0 z4XkH$XPK;^{+!Am*Kb!-!McnyE=;5u>1uZzI&OUi>sps63SVSk`-P0Tv(5w9#@^?0 zC0{@6AV|`~>uomHC1-rQk01FdjYO3e1t_r2MEebsD%6MRNK}}SGyyH~c&|mSWg$PB z44vRcEa+8bzI!DSfcDDjFg}M$(4_Fv=(k%bHuQ^r+g0QtHoUdHSVZH7&9Z!qvS(CA zeO;G7^32}YuQxYXxad2uKTAAcm-L^2PWA*79|pvWznBxX{U6GU@C+VrM)SpOo|gugMtyrY%rvKVcF9+7HzlmNI)ak2vVZ?OoQWuTJC9JWW{+mQS=q z_E6t``QlE%(H!y_(7SRn__%=n>v3A`S(8X_V|lT74(T6W1`-oUAwEIV^#lcNq#tBMM=)9F(4cc)8Cv>^VLbllCsAL7Jr9C#?w|A89-H9y_efe7ZSpi2_FZh8) zhX+Ryf41`;dn=A~p-wu){}ztK=6=T5xeOffR`CXn%Yz2HP_w+KC&I5h2 zt~zGkbztx(PUxKH|NC{fo*NDefB}A^YV16!uj#+u(v;ExgI`5@=+C2kc6P7K>ryo+ z$9-YXieL$R51UoG{$2}o+mPx{*EfRh(6uBE{0OkD_pzXg$^-GYs5GCRCqsIg|0Zh- zWxyukI)!`12e4scDnCns^5gJ>=;k*uFe>Lebsq7wXRI#m+_)D2ri+GO{W{eGgU#6- zdIe7q*H!f!ACEg2HcRDLEObQNw7plpIK<@|AZ{TGM&A?V>5B{M`(XSL^?%!8v0z+1 zM&M}LAB=aF@|P!UfxcI|&xqG5LBEIU@~Pc@l;@(9bVn`~4ES}Z-uSNsw0b=-d^U`7 zFKEL_m_ww%!1ZUUZ(NB`ZoGmw(|eRtQlX-cja1x1Jghd99inN_UW@MF+393PmI zX@XS?o7{-TNQ= zSiwV-qi`ss+rTgZ`pPvQMFp{fQOSRw#uL&I=PNJ8C$R^NZ=W2mMxO^;XB5k|mP^3q zPvx`}Lc{~sijkd}(?fmr)U*BUMK~gp`)%J8-{J_rvz@(vJc=W_f2I9>p9v0+S}k8P zEg1d0QL^3~ha*fY7WEuzz~Ma;=V~SDz~S2klJ(^wT~NS)5rHZzm>s04!L zCS{|%zMvcep6~o%m7?JF-NScC$A41r)(dffNx8c7R|mjKGnh4^*NdGRdTy1ZL&Yi8s@y6QaVC+8;vH8R}Fs9CMxMKei`DNxRJM|X8 zkf0lmArtvlPo0J(Gws1zTt)H&2gDV4u4HD>$xagWbPkl*R2) zV9!7|x_tE;ntzw@ahI=voif*v=|UE;Q&&+8?Ippku3`=ry@7RtBi19o0j%oA1Gc|R zr=`Tcoap!<{ZW07mc3eCeP{MEPK}P8th8 z!AQT*H0P)_;;-nhv^BV5>)dh{yakEa^1Z9+7VNy(e9}|bipzhoW$|F_`~F+Rk1eiD zKAZ<@44LZAij&xchC>pYZVom_z)f|@Ar@PZ{o+rUrG@qnzL_IeKd|;MA;SMu7wOn> zr$jUB;FCx3e019fP*zWV`8NgXyWcZ+IY%W33K*uJ4D6U-?*+S75}WX_j~>@GmJWYF zqj!@ax=k5c{eJaf{c0`Lm#_@Wy*&VRS9s2O+G;?nX|ax!cXm+keAuw;%Qfi4GZFmR zx(n*beh*mN!9fZ0H_xV%#i0Fk=E8X)V(1WZ@PJmi0t$U4#Wzi*hWr{=ck+MpLT`ts zjh`H8VH8chDeK|}6g{asP4|q1dW>5WLnr=FPo{M-LhS-Hz^ib4rqd7Q-gqj7SM)-| zwkPkjrL&>IXwHNCvJapNK5x{&KZQ^u$g{;OJp`J^XsMKu#6iB2{A-JLTu}FpZYH|8 zpth9GV|JBF$oFE*Fiqqb8jdbMXTFjJHI<&;+CCJ8wyL_fEB%w9F%VvcPAn(0K4q;ZXEkg~lu@gi6?2J|?HwI|*zA9Kv_P;5RpE*Nz-CH}D9lc$x@pf*KO<@gG35D`^5T z2K&$`-2V4W%s6B{jolyrHVbtn=&IMF2cUV&rZO*S1XN;f`}$*?7%IJy&8-o~pqZ_t zEXlYljGWod*%i41<;7#&gi9|%h34Pm<5VtCFMD5AsPHY+ioZm3DF(rzRVQSvDvSQ zE9Ov@;ZopwfRL#s>wS&O6M*-^M=p=j!^q{`5NbB4h4b)6eVHCOupz=~?S_@qo z)MIejeZMFVwGZoh1VqB2!A9`M)N~Q3=jr~|c6|WqC1yy=;B`Q``a`I6g$U|MY;jns z7D1=-F83Gs=FHcieh&4&z=J(#cq-_6hC>c&efrq+;wTZCSV$ACvJ60Vvh}&G zr3GlN#5+nMB@WGM$%bvLMd8iPol(}MJZR)}?IcXs5*n?AyQGixLtA6s1p6=M&`$XG zA)V|pw5aJ(C2sSER{c-NMi((?L%nlXzL*KxQ)X9hEGk3WT*lSivT*1?SoL1!vJSMn z5YL@?LJW2Do?mqrvC_{zgl^35D&O)i5H=SAzxu96xT(RS- z31qPA`NK!C4yDD^f^ja_AZKQwv}WKrD0H5>G}3$=DpqqHzotX)mvYb0^QaTLPE9@v zr5S^MN=fdLq}|Z$U(oL%*Xz)RwB7lqwj|Wj3E^f{EQQL-n-LrR#u#X?O*LpGlGHBi4{DuL{m zJTy43NAJ%o1uYCZjIxIap|04Ta`dBcsHMvkedq(BD)%YDSG#yeVbCh(Fk=^^fU_a;-EP1Y>-drUnmz* zMyPM<454j)ZeKwC+h8mqOx3~hkSF;F6V0YK8+}}JOA{Z2D=2}#IS)#cqKIQ>x%p*oDGd|r9~3Dy-=I*^icYN z3N)Uk{jJ;)1eKnjq4D4R3i;wF+PYq>!~YKS0&`DEps+pZs%mLARQTn-=+gEGs#I3r zT6o+G^*#n!)8}$Poj+Y{fy1IuZ%;Q63!Q-arEeZ9B~U=EJH9wq$|$HeM<*!Htqd&& zW%NktL!jb?ntz~B8Op8oc<;aZ3AI+0M2$U4p*oeCB)$I-)I1}JmF22K%`5p7f%$0v zzyF^{;%GCxA%2bS+;3a-JkAF19qge6k=g z8>&AriqmK1h6WcR4tdmM|C*0@65kYpy1|zN+!9WpRtshSr9lss?S!Boig{jG5Bo{q_uM z8kn42*e-(VI271$ik@fpS^nxPJg7gjKk4{R92$>^HFhngLX!iXg)+f%XxaX?UTpd| zG|nzL6)L2FmcsmnCvkGn{y1k)dqo^NQ#WlJZG=F3S^CYde^;OblzT|Op9U@Jchbge z$)KLPO1!eM7BpzK385?h3~#ud5n6h<427(!BTkyfp>UMT?m~eY6!47`4tSObc^^}K zd+-fHlbx5v(Vr}!UP|nvqg5to#O^P(Yncxf6(77?qQao5glOH{updwWe`jglYzvyU z{#k1}{}AdQPUt^D`f$gtS5PH#7x0Tp@~I6Wmipju@HWA)VlsMWYnT;f6r z^?9N>2j?rH-ehInv-h%4d%OBO$#5q$85zCl*ir?}c|NJ;*fK%&C(;Z;{k{-xF+6xw zXN0~7otj`qOQ_q$zVJs&AL=q@Ez7dKghuv<$EjC(pkC@Q53LX*G@HA&1Ps)mgK)V~ z`r;(iGyh0rb&C(`?y1)vjiLK~L3lc%+!7jSxKhd*H9}1i->*Wwi%{_sb7%TIDb)CU z$MVX6A2iU9cC>A2fco$d3iE`bed4R6`KLe7kWcCkRlWh#*c#E6Bq)Mf9B^qrI1wtp zeKPDxtOiZr?)nQQg+Sfg&Y2BH_)x#y_>V}$6jV==DHE&qg1WT^>EZ1a&~V`2uOW|c zcuS9SFzKB>^bGtwnHOUX16N<$dNq|pyH~+q-rR_Sx3)5T?=qluQvmz#Cz@8-HD9{n z^WhUTq-|R?c@qbfr7C|=HdjGaFm7%6N zHP)RK9JzU4+`0vkbxUTWDOHC6*R zgiX+hc2i|>d>d-2y9BE~_yTparT!GL89}XY)!U+FqfpoHolzBWH#8~g{Y$>#2n}8L zyPF3;LVd>9?X{VsP#^#OOV4$EXqe=DEh?iEiaW3#MpqA@3;f#H%26Z~!da%JQpZ9= zNj{C!oH?jVn0=mvzY|_{%=LFKM#1#-`9C}IuR~E=<9&h1VQ4Wuhw*0dLK7mUwM;Kw zXicm&&L|ZP?=(F1=-Ow7HolJCXyJz%yA*~;ze%7;!q*VXOX!@(b@;dY6Al`M_^4bj zd;xV*7@F?ZnL`tArkQ>26=>UGBq9T?pf!o_zK26IG<>>lt2Ufkf#$X(ng$-fq4}7G(wCpj&_YHp+Ad)hiWMhSJAI6W zihgMqazcfnRq(XaUf?>kNR;|V_TV41xOO&gb$AAy2L(QS4L^n&^j>eq%FjVdNv$nu z(;R5J$7W>gkOi$~qunI^(e=M$Nl|{K5n9_Ag^vHY0gcNV@%@V@E;AxCIs+4HnulO0;Uu>7U+A2~GdU^T1%t^sX9 zSqBuSgpL9XIDcYPM|>-?Nbp1VmkZXemTv;}ljIp=R8^p6Nl`Bckt5W>mynAkxDIu9 zOuyZaB8R$qw1J;FxS<}Er`t%fKh$;RUW@c5S zOb*n&r-m>3pA^(R`f;`dCg>iu|CmctVR4TqAbjwl?VZp)}`lFD1C8K2_(E~pn8 zM+sH{rf8@tKXLWXvNbgFE~0q#&>QN?IowPcGlxRNX{p>+XQ3YD?4N5DXg}Co5pVM2 zhxT6zZT>^|js2f+swXxWv}?TdQmtAVTAvkQoVc_Att0PSFMV@@HvCa_u|qGRy(e{?GcnBwi z*jr<(p>(z}<59s&D6~0e7x9o3irs*B!hdx^4z4_Z<*{IRqy1fx&^j&TDY>x|{ci>e z8!<*6FXKc0t1ajO%xcoXA>YmsTgkHx%-HHFUp8V2>&`^2UdD9kZWjwpc z^0N(sj+>?F55l3;Wmc(d145|69a0jgEDcphtuy^N6QP=~7hT-;ayTP|;s?_LrqN)W*%N)vu33Q}I{RxhH7y`kp!GG2yfQ_zl;ej_JQIi}1gp@_GEA2YfDYXY1T*gx!v5rGhelUD8GFSB83AR-SPs}6*!AeTzlpG>q+u1Gf_PaLheG_{H zD3P%L*O~W`ht%mS|GgRF<$=A4PX$%l3Y7l9c3%%oICh2j39n9rgQV2(py+tTPUCp$Qr0TOa%qItkV5{!z4FOq4f7HnDYHg2zadrtJjOK zEezd2yE0^vc7o^_TjMVz4U+qu@^0DMwGTi^WAxHj><4X~%em{yR%D)g{c3if7HIob zTh5FwgUQI_=JRemFg041ca?h*a_?(fdmUCmuKRYfDqk}A})6@c-u#&#*a60~6B6X|z%!(2kC)J%}*y4%=??(hi1 z_P^Wy#E_u;FueslA!V)$Bc6@2atM{pZ8f_A13v@bnv%$8t z#CC}2$!AAB#B{;De>Efg{%6uBSzektZ49Sk@#wEEe?T+dz~UkI7L1zp+{Z;r!IW2- z*`;|8bn%Y!oV68jpx+wF?Fa#Nx$JM>5Fwa`9T8Ov@`HtFMt|TX8CdE?FS@6+!Rm@> zteK($ER2IDKeX_`#MjEXL1_|HYUjtde_j#2#5LaIPByF_d?zfG=6x^Y8Za` zdMSdf1B$OWOa~dep%gRa>lnrZCUft|aSt;%i++~%U6&2!-)p~jY7^aZNPw^G#A!IO z8@Pk~9+{Hs_w;aOf^lbn{Z`ORI7cx9M?d?+`9j>of772yzecalmNNsDg`b}C$_vUy15YDC2Dwl7hU;H`4C^sIz0e|Wh&c@(Gprqi9_59MN>vQh zUIY!PU!vjm>`$j>Q5#%0JSn`gTMusZP4~?} zbbUQr4kvdOfOUP!e>zL>UO8JH@~Z(}Q`&p~>de7=^|siscm^o`1lLGU&k|mz=QXdH1|&;D8N`dxhNcwHV#Vk zRyvr`K`cMG$bFjb_gbyB;xP5QIG3N!&#+4NJ5j`kAgoRTGlAQde7k!yZUO_ zG#0V6ja-KVr~MsvdMuob8t*qLw8F94SBV0=*?__DxC{G|1QBiD$p_ai2DrYQ_mXWP)OeGJgvA6seI zb|0GA>Jsu?OVC)y!;Ej)2H8!8E|hf%C{14q@13UDeV`*!TFpjCEwHViN7y%t?M@Q)}Qb{Fhg`- zTkrDviHp#*SmigqUJLSb9y}X{{2|x0x#%IA9ZdF|rR%>v2i3Iuk^vR1FblqUsPLu; z%>CDAKg;|EyWHE#q5+#>5*Ro#MSTK;aQ_>}+&M_Y8YY?b z=t$cxW(Axdf}Q-ro4=YFu<{BU{7L3;yH3f$g~~Zl{;vHV?n89PsIDD(Q$&}va(^GT zL5TdhC3k~=3hdYzrLt)vpg0KcKgJ;a=0?-&^Or;6rf2056R8Df=CRXl>zQzz;935% za5J3rQ`gQK)q)xST8lSxJM4!8+v_4zh+dG{!%S*~vGbz3TUR4o`4&6bS4WXLmGFH% z(dFsvzj-Mly`Vplx^*@A4@@ohIdEjs;GQxw5P8&`JdejEs-!r;aKEeKE5Z(!LFapK zB0j;*PsR2YZ#q1xp8GaN5FI|4@`j!H2lh%1&0lbx%wzuTV~g&@zx*v>nQshxx(J(a zaSNdl|k-Md0me29auefYO;3Zhnc&9l9|kE80eM!YWhp`S{XrB3At8yu1#v0 z{-gmF3Y9MB(^AGvyWWzn#AvEVKXm7G|Au#_MA)z=G2= zXhOmm8m;S09p27COV9YXef=#M|8QgeyEp)&rKo-1^i4tQDaza2{{dzkFJ*FkN1&4K zaph)yCR7Xl-5g!11C5i{U5A90p!2SIXZ!lMFfL!PX44~e@Jx6?_@z6bWWTy}f+`Bb z?Bgu4L>IB+h%rk)8V0+^>)v#;e}`MhDdiIq{a_kt9*XSU497W9^}44C@DGfAmF*FS zkmcpdj>f6*e1T6D_X^;-{aRcP{T9*r>ngJyeBd7H`sR>k6Bv&h=fuU&fN5{J$A66w z-0f6?8dfO7I)P`$ItOo9C<*ZSoQ{WakJ9r*hZj%}3fH($5CE&&Y}H*&y098b-1I%m z3Rd*>r8@Gqu&|v-4SXC1^V$A96Ngk-b}CLq@s~m0J#1n?GY)dcb>H{>n813r4K5w- zuc0=mIL{fa3OE8;TBN+AT0zQ=5B9 zegRAor(O2bR-ljUG4}fx3wn0nN?ua09e!wh@-iHT%f27h5}QuL*7W_!`!H6OP9HrfZIDhl_=TcXJviJiervuoT>Zv$V;VaIpn=8JS*wtYCm3 zWY`27@xwOE=JL;9il8puD|qfp^pUtT?8WsWu+%x+ny5St%J(#%wPKIp5n#5v=%^W- z-l-0U4)GIzzOQe9qZEwz#Lu0|qc9Z_KJ-L}+)v3D&N=SmA-a-r>y%Rhv|jwmyZQ78 zEUypoEvz7V9Q)Az`jaUzh!?eY<9Q6T%*5_-+Ee({mu*qleHAVj{mWLb4S?H7*RrLj z)^PnfRqK-_7{oEH|yU^N})KZq}{1 z=QItb*o&eNW8(i+s;mi)<%RXB_nWp=H^Jojcw%{|4QxY(*ebIsK&hd7w&!gDMMOeE zCV_ms>$kzKjqIS^%M<_c`7$Us_*AsGuYhin@p<3?@%cKXa&8NE!htrk<7X7hh@q!R-*sr)=Nt^f>LGQ z9J-avNg?j9R@f5%$ud`EJ;x(3Lho2Cy~qNc^=W0_z9`~LtnFm1&;})OomNRM(ZPBz z*(T3!C-;G#&8FN_plT%?&U7aC&uRXW%7dXWtQOI!Z?=Q=52KO>2_MpDi*J0nHyOUY zwV!ou-4P=F_QSIs!|>F%^+|r81J?r2^!2AizzpEjU&SSQ`GJn6&n@ZSARZf$|Yxm*4CE z=tYJI>Dksl9MS;djbE%Ke1(^+{Nc_2ZA9p4voz_ed!V7-n(WX?g>&Tk73_V0!fVU1 zlcNSOZS>jODD)nR5t>IfccsC0jbBjQmOFqv+mAd-4^-RUP3E0@gD@M`e)Y{_P!VTU zzPY&sj_kF6&&iQlES$*|+x6qs`5Y1?=t!Q2r( zF!%Kn7!&7`nP<4+@LsTPqe30I&$KRgWhIdQb6WgKY!DbDPSn8h4Y2(qCg>B!2`8)G z&oQ38p#8NO7dh??7xrTt=P5jJPL7&NJgPu`4kybJr^)l|={Ax3l?ODx`@5;MA8@hE z++(TG1;ZZ89ak>K!g}tpG>aG)W1AH#CMM^eh!Q&-o)R@%;xVl!Cg#{JEdj%~kP(=f7$=Nq&$a{l% zmk7*?bc?_%a@VNYR45$piXEMQYe0Aag%by+%HVO>av)V>JDeo9%U6jG!Trw1{voqu zG7oHymXH4l&kFz3L9Hd^>vB%%JL$pGLAP9Gw>7+}YXj__=D^b}{p&)<1$fIPE60_Q zc}|-mygTLu@wts3XP>_StF8MzRgaMKye zWxO8>Emtnyd94Q1aYCv}cfn{b<%Iv0?}YdIa)IYf1ekmG-l|&t6y~?2mTg)?=DK)g z$c@{YFm-hiWMgrI5ubQARn`*PIV=1d3obzJtC8gHYAe95bjm-zjpzWf z9HV_vP?kHuUh~@q8k;LqcCZydb)r7A?7}0cAChj_)1?5F=ECd==l~w~0+z}>U{ZX2 zTkAkH^ommbX5W8?xp{I-qEtP$T@4QQrhSI~ZI^uk&7Yxkfp_DN+5M33YcoGUSq=I2 z)d$mriT<{Vr84$j667K^2e~7N4#Oy~-n8OBIKB>ird>%mK4*Ex$Ufp9$Za~Q|5O$p ztBJTX^}~|W_R=re2|9>BU9^J_aNlIRtsn5n!zkS-bYx)jm%4>zOMXSaHr>A+ucF* z+zan2m-TzYtNQJY#>pI5dV0mWI^9BO;%vRkn*}7(jF3}^GVvD1&Y7%@MZNQl!3fdu1k? z1?M82hQ-2qL~P&v<9adC_xBb)Ty^{j^v`%j7VIp8`fIJKwo8AYyf_&Xu=N+ze?Ry{ zuUrK@zZu%EegY~UeG?>H2mQly<%!Ht;N8t5QbLn3T(CaB$7UL4N8YV4c_Rd~J#|ks z*qJby*tt#0qYfrt^?HxDETEP(T6}<6`Jl`t24!)1r0*Bcn$%f-rpe|ct zU%r2ua60laTZ}ftMv|*rFmoO3dLJcy^!f{GZCLx-`HSQ}5XQ{!LQrmVtA&mifm&E! zLft`hJNb7Zs&cns)7^0<;YI{#!j*p9>Scs;6EE=mK>Siw@vKcONuZst>|x111A4yW z{_c<_xG;8KW=kxCOO@i@=VB>vEgEWzsj`KGsVUb%Cqq~r%|6DOS_bO=L#*fRB;X+U zsC?Bne^@_SrJwm=BdiMbSIxEbz%-z=>)5pigv%9X9^PC77uJxo(7y(!8SMv28GLZ% z`CF1#unry_rd zZnGb=8P+C#kyd1YO%^PIf6wglU5;0@!PbWk2q>REsMfW7U332gpa}JjQoEd+lDkFdm)k0D%oG{9`n4mI5^pNK92JT%>Fp(2rvZ+?U#LH6nHQxmw zX=LKabz2zk=--)^vH`|62R51VWx-ft=Z#&-cc5}PGjUQP5O{Jsvj3Pe=)&F3wW0zr z;Z)6D-Z%oCM5&j1n0`d}o)_hB4uFxa#>>?>D3&$l9TkECj(YCk+Cg}W|SCc*=+Q?{>|2lJ=Gkjq#t z>`z?5$l?^7R$Me*h*%9Pn=1%7C6fZdU88u~FC zK&^_O$bd(T&dbG-fY2*;LiQ0^#KWRdxtqV#A7t&Yt9qFQaAH@$;nUibd0 zAi`}%mHfGHDhUsB>r+aJlkkwCbd))DlfL=q>7FY@&+PS?|EWs2@3LPxe`&j5QX%)} z=5P{hS5jszVk1Gb*zWqUA`6z@Pt%%BSz$4BY3z~BHBjQ6XL$1zU@3KaBxZ^Q<{f_< zWmdC7uDLQu^1o8p9C*b|Jun2uOSYaq?Tw&4PCL)fLHN6Y)zw9N%)nroklV{3J{ng& zjZ<6}+BbelWU5>wzR~Kf1&y(AF&L88$i4ut@D&UCvVw3s<29mn_9>hXZV|Nk;SD!I zbIU6-guhEHJ@}+uoz#=KPtFGh;XZbWH#d4U(HC3feL3ggn2?ukeC;6lIlp5sjE#nk z{=XARpQ>S~^3Sp~$OsO_OZPQgbI3h-W%0CcGOWL_>Bl~mgnR$D(Wl}RSPvVmySt6> zPr4t!EYRzT-e4(~la~&M*ODNyX3s} zV53THT`f%XTI=Q8#aWHW{J$$N=inf0Ud@kg@fn2K36{Uhx(IJx7S@0BU@0hUa)@uX z0F{ruDEte#M809qO`$chU5S)1scge42C%;mGby= z6qp`E9O~A8;VLjDHQA~F2Rj3)Kazxd*`jYr-a8wNm^%v;(M6~T1&Q;gH^StnvUb7? z!lS-gr~fdD0~QOJ8XJ9A!%QY}&Bs7*ERJ%dq^Etp)yK=Eh~iLlUrkeJJHjqZ=$c{_5`93e>~fu7hz?0aIJ#WK3Q0XYvME)nZ~~Sgk$>g%hCm;E-M4}@3XbVs zd>iLw;Hh*&b1~4%KI*t&yfCHWB1(-j$4UP zjv>nrN~}S7UM1LD%7lLU_bE!@3b+gfjvqchLY_~_DW;(r>HCczB>$6ytK%=1DS4t} z9(Ud+%uD75-d@4AlH|S}eevx6soA#n=o#yzH?ozJuajeNEcpWQTc_BEl?lIYDn6J; z6Cpm1Q>WvdCYZ@T>&)wKsk6pV- z6Y;BmUmItCL3Enf@`MNha!$T~Dmx=s0%m3mRcw&lGiNT$@iGbjHFPC+x~~Zi`?d&5 z{}Y14)bID&kN3mMJNWm4Im!Fz3Vs-Co(45+`kkorUO4Vxa0uF_V54!^rL3Nkr*Y>GF^sdXsjyo?PBII1(wrg$J{l4w_x)ZtZvZ>u?te1*C z!d-=jD)|vnRP%-Jtuh?&w)AESKl**t7M=N769e}manHD`&)b(jp_=c#mT zCi>3Z*`MnQ;P5r^*To$^aOSw<{YB;;?5%dwHD}C054t~LWpNcWz13RV?{b5&+(2~x zS1jSm*6I689)VQMZ_e#~*C3mxk&>?>3WkMy!%g*-#K)m*;3;i|(1V#ql@LxrTIB_kaGvcmqY8w}r?y&Ls#&?7=mz{n zk53TZ@AmxPkO*?W^9Z=|Wu1nDQ{Ql7&H$(dL$_t(HV}PxCa#@R56Z(|zBoN8fzdn8 z;rP>AKvl8e?wiem)*Or(g6S|6|GTdIsyy@pWBPhDU&57=wbIS~EIixHIKE!3gx9)7 zy*KN$;1!xATAWpgK*NqY_E+8TN)n7LkRUk|78dzb#vahCMGieJ-vcN4)(a10tl$#) zIr%~mndiBWo&0ltn#|GprUK82PgM4AZI3tULsfb2ov1hhkM3D>7t=^sSrm86O?Zmkj4`PHR~6 z=iv5MaOI)UBQTcB`}ecP1V*1WKKK=*0?&-^JI!6W;3j=^D8Xt1ZrjEf>vYNQm!)UP zy!#wnR^%Kz;kFGfo_BQ;%ZMH;dyaimyAvD*)_GVQE{5YRrO9!FIxu#flQUfg&<9^z z3QyRk@MEON}%)_;l!@p zmW&-D&;J^4hOr~*Yi?%$@jpwRYq17}0E#T!f^NmXdPDlz;5ZKhuL^kaui>37Vk+=He~aWN5L#(zOR4&Dl835JFG97!JykMc8T1t zHZuEq7LPIs@2Bi1_9htKd)#*N1^|?I%3wsoZC^t?({Tq&Z+0 znY&rV#Z2#lS*UZT<)S>{Rnp)mrA&N4R<*4i%J2!~l$ppN|9+j~WN2D5{B~SZFWO}2<`2z#>Jyn=oRBpYU!@e_3fX-3OwpW5 z$Oi9y8*peGigK5PZRRDQ=>1O1kB&&ajxqB6(@MD0F>izXUIdF6RW1LO z2mey;rMC*$&=njfId z@B19ub#1vBYlfh6<3Ek=gK?mo*j}o#n*(;A|816jLb$-j{r>_r_=)~m=*zZ|@HR&_ z=SHFkk zU{23%dQb+(jPE@5P7a{I6|(H+;CXrmY25cZ5ZDPDK&!+<0Y@N;Vj`@AG?%I zb-Te~F|Tn#;v=>ySuQ*FWe&0r)J80~i9%Ahfn}{Csf!wHz2DxDxv6s|fElPrbT*N# zhx}&2DCzCL&h?$}Cs_98c`>LxFR4las<1ORqJ)212ix5D>fw(*!7gc!5WSh?=qRUO z#RZ-QW#zNFW4`ZT|DEHv>>n=Z-7**ZE`1J0cMIrSkNtw$^GZX*30@eUYR}8gS_g`r zNyj5jVZs4xcAo04g_F`10Z}PV&@Sv_YT`GnX$Su1P7wa$K~MhSQx}MiP{Dbwbr|k? zJ(o-uHQ@a%&i3EIB$#yFP3~{`2A%w0hu>}NfEoA)mA5#;sq;~xxg0mV+c%mD+-`=q zz(K!4YB9VT_XVlGcujIGS4)<+dBed#W+f5Z z{*>3dxM~LOLqD6Tk=x*U`%-Xe6(2ln8#7d`xQXwqAR2p46mE+vl;)o1!Ao$t(>DPp zc+T_QVvoBDudPL{O??drbsc)kPJZwHHGhu1-Y*B=zGq>2#gho+wT)jhZ-(FnmiN*( zG7+2#NE}On+2waWEl+=vKK|XRffb&h=Z$M{w-GKZPuu8tYYiAz_NUq;hZ7&A_S4Ci z+OXX7Yf-3&@WeNbB4$bnk2TIOaoK4uNb#`;MgOf8%pp8~BmAiw`P;Y|3xYPnrh0Bv3<$*+OT(=9J!oFj<;?s6lw zurHG6WL;-eGgx5rz;4~j$0Yx|lf2~}8wD1nFZmmm*TM3{-Ga2=&5we4{H(zt{ba%? zE}t&)Vgcn`tm^?D8Iq$qRKRCVc&H*SuITTizg~a;4e#$fqVH*J>iR?a(D?WlY?`7( z?|px_B)IfcY|LgMd6a#1+v1O#!G3q(c;ta^pw6+i+WohKaBdT4jY%$@){y?l zMu*&wO{zy871Bs9W8m=p`&U54hThgc)v(KZ%ccCR0%kjf9b1D=z|5Sy1>u>3%*W*?5XSbjF{-H$p{aHpFBMx5R4%~n)s=+s@pjq%@fhqn z9nj2M*98CZor0D`U-9QFJv*y7L-OFiPM+R$ACw-`a^V#>;Boy~4qrF2kL0}0(M4lT zK)){TXD^|BMyptyx#IzU08->H~pC+aHrRGd=m*FS7*ZA56MB z=Xb%}X|2qoN#eJ}ivGzW=TbG+^4QvyBp0hJ*mQZh8dUfH*f5_)e3C<5f+EFpq;K%C zp&YU%&*9{f!1po2Bdyr4?M{5CJ&n0W($QoN6KXjip#p=WPF3%H-$LoS;&_s#HrZp* zm>Ily3(B94O~{re!-?)qKe4o9OXQKeb%6B}CwCZo_|OBm++0 za_9b>-VeqByWb6W+n=O>%&)2M1d>X_Jpr7d3nxVEr+5?#c0V*!g&~UXSI1 zUG;DEj#N(AzZ|KaKgdt=8Dg=K>lI+*{!OzrB?o+O&pqGB)Bt&V>q^_44dk9ER%#*n zQ=NnN&Ir{C622;;JJ6sSayzRVRd_wIv%z#?kCPu9c9n-o+3>=xtMtsVo2%h!V7FZ@ zcMf)Ie!bG5lDul*CRe41$8d7Dzj|}I3tXOye^=+8hFjPwJ0*9bM+f;NStMSC_i1gd zXu=12w>%N^TKoWSyH^5NwUXeW%3=6jK^b0LD{D0qR=|5n*2dt;Jc4WM-}lIyG^hysdMuE0Ak;QGR0w0Q zq}XihSx`84_?Uclg!Ssmwaw4{V7@6@{*wXOdvbV7W(e0D%y=0ip&SvgD^{J0R3mxM zt6wEH9XJ9it8u88sSa$*H8*Z?+5>}qd?SsU>Y?)n%01EYPY_q;4B<-Ht3V+7Mz`re{R~k0Oz#qyK0>5Bu8q1RDK_2hrgful!=ovF@Jw)1T(LWUMEp98eGDdByRO z{s}nmN$)DiP$zRyt?B`pVK{4Uk=VC(2@aZS|6MaBIs62tg#Df;!1yj2J#G~Xhdw*% zg`FB;Y;{~FGusUM`+En{mGz;xdh<&&M=fmW(bzlGECQMG%-Gkjsv+&XPfk}U3ew?C zPq+%>NX|OHyZ8G`&=|i*u6mV&-VlFsjd%xWLYchkr4-olEaXb=NQ31kuWhMe^00Q~ ziEbu71+%BYQ1$gRypNYVB##m9@S<}E&mR%O8;tUvbSHgX^q%Ga)e=9gUBFyp`Wq}H z#O_+&B)Q?2Y|p|7k7(UL=A!$n4V0%vs&zY8ka;tDmHgpGn5sA{@jd2(MZfE_)P|q1 zJ!?>Zy>A*c8%^GZ)M$LEC-d$Bq{ob-zwDTgmBT?0LNTbH=I zC#bt1D1YA)_J37pic&nu=Uq?raB_pi#8&zCAvKu4)x5g!H4mn*uJX->#KNs=bW)21 z%skR+^dz3Kz@_n*TiK=#Fc&F*z6Fs!)3jXfi7VmF$s2!WZX|rH=zQgtGU9tnwYTRT z{{-`G>)a0y+QH0nw)*#tIcQA!+gqlP9L9&*?_w!yVP}1K@%oWzQg?3)T=-4q{<2P6 z^PW%8*sHy9b7={*EpMrqpJaid@sOmuRC3*=t1!03aN{z5U zzx>#>YqbjDyWZA+taF1+8f`v~-vOrPW}*Kze24K3fx@F(d0?%(yR47tW<-&vqk}wF?mL!~IXw!>_ zTuE?pWf|SdS55fWweg+aWdF^hUC*u;lGnkXSFc@6_zI)6s?(pf!Cby4_o(YC;W^zSpT)Lx;#1nn@EX)&UQ7}6!+#TU;IY6#An{K31?wb@^3?XHiOiKdz0;bk71cR zSb9;7_*r`W!oQ`-JXFOO;rskE>E}ZKOEM*UDHNIy?7AKX2mRY_?+B;BeBiuVg#H}N zjn+YW+sOB4)5OQ0Y756$Me%!w2?w@LGLTP*31;l^uLBk(aPBSWyuOhi%!T^&^|gfa zc8-wguONL%+`!oC`-Fq3s}deZ5?qH`*wT`%;21%xu1uAOqxmW&*Vr#`3tq=Lb~6a> z&u*yq=#hRyC`e0oZwh=`9v@vAUj<9nyfS5OqWc@oXwznEVHvP`WEZy@tlySU&4d$4 zoiBfR?XxZ{CB3`+f1U&V+{@OOIN~eKh)*qBBIo9>YxKpZ|G!`K)Xs*Q5svWoZk}q= z-*i&@mfn(j*I@Ra>`}mZ(MWdRd?Xy7@UQu)#{->D(3z8+!<-P2?`=k&IzlI4VjHnRZ`f*>&xF_+wUKAWY zY6pejKKZe?%i#0Ou3`C;1yFYE7zr=l1le1PpAWZqL%e+{xUrH6_l(Fqy^vnQvtRK# zxAz^~xo;OXtt9(Xqp{M@~#CkM&=$w*Yz3m zQz!MrHEHxptw;bozkPkI_SKu{qW7d-GfAB(cRegzKyvZ**G7w%kHbx-TzKz58(glO z;Y*#B1tZX0LAH#{e>KWc&n&p%vT36^RJ`GI<@< z9V)Z4L=SOja(9aP3-5|;8)aiF;qzbdY0m@Va36^I*jpG68s`I}4JNbh@!EiQY^0aLlgW^IL}Od-|ehvO*EMxs&QjZgnt!Ce2#L z5)5i=!N|=NeHd3s91JkehG9u?NR}ee-fqWI%$R!}Ow7jSzK|M24TpI&5-4ORa@R%HJW>|I0n z*@g!}kr6Pz+n|S;eJJ`(&f1-Y?BD|%9_lL8Wh<_$K zc;K-psJ~=ReV*tf`M1Y4+3WQ||1U>5{tz1&w!0s*%g%zj!Ex_TflyF`4}E=A_ykl& zCB@|MEt2cuNKr{3{cnMo!}F7bv-nTfQ+;SPD4&X!PMKsAJtAetw1WXCx^lEfixr?= z`8oQ?EQjzVQ-%eDgp+!GK4JywoAmdIBd5{y;x!Zw_r_q7v7G*&U{fDTOJ zBVS}RlKWRLe|sr|5B6SXUo~42{Z~wHqte9`P#P`LPc7d9W8056h8~gJt@N=Mwm&-U5#gQywY5Y4AStDd_JjLvmiTHfQW2 ze(4^IQJGYdvu%(~Ynu%xepTqwWozOy<_Sh$sbq!I`UR=jpXBvg&wS-J4~6Meqpe6w z11xHbZ>9Wu2kN&1_5NGS2>)|lvzdkT!{3IFpRWi)z|4hP>FvYtP4xKLwb2D3$BY_W zhV>A-tvlcKd>ulHUPKMo$|BfGj$g2{6rMrHng2*WAYg@f-xD8O_$mDxe138i4jUqS z8lI7TDVDsC=94M#ipg>M#hVAF@PSA7+A1NJsmhx~@=FwDYsw;9CfOf1o;e_$M0oFb zO`8Ow=fr8auG8!R{bYK8e0T*IXHpiv#e4v5`Q3Jy!Bop2N~mG(`aV9&>}-0ElvYO|1x_`_wO4*Ye`kl97%qQcb|DP&%( zSr_Loc@vb#4Q}UlaI@O0rkU*gnJ*zxq9hJ>Ed@L+^>AY11)mD zO=k?%(#U?2@sn4+?IrsDV?*a#AIbg??y%AE`}v?0swrwm5*{ZfwdmM|NaFvrI?O~9 zoy$G?-PJP^u;2F2^)}mUk^}t0dT)6a>|RB_=FS=irEJo3*-xTNjThX`k07~?A)UYU zP(Cn_Q5l_bmF(Lbtc;8i0R0-x$*n*Qv`EcZp~NV%M~!2JjSAUw!=<}htAGltN1iVB z8A%Wc)Y>|mZ-}jxkMCRF*24CV3a;Xi1=t-u;ySau1}Z&oI|@thLGc~O-g%zCP&p@7 zFElZZ?Q5gMCDaulQDVdr^!^+|J^$%1@9M_Rqknc6%_d_{{R~5QPdg%t*X7WEsUc$e zn$dr&Z^2i**rV8L6(Y2Ub00-KM@X$(r9u*!m&aJdN{)mf*vb12_BSCw{1|h$cPs2U z4wOt(^up1v=~}we00Q3G_y+z>K#-W!vG0R_;ph0nT`X@S+*WTrP)+uuDBATtzs9l% z#jzi=t$!P!F6fu%E7lM7FNfDIr5cd^DL0sbbq!D?5xgI4BGAhkz2iGR38Np!SFe1p z3cXr^aXoS_R4)XLji*FFxv4X8Kp_Asvue9(?lfp7{r-0Mj}Y-wd6j1Ty+P3ECy$<2 zB8czTXBPkGU{uudH_zHYmnCU;MlIPtdF+H;SM?<6Ygasu=Hr3K5y9aNla+7{WDk3K z@dB)`CWVh{C4#Yb-4N5V7u3P%3yc+KL3!|l)q;x+HbwUTB$ds{-oCMD1EPc5cK^Kc z`Uc4{EXZ zNZfl=Nb>y~!@sTlN}jK}3Dy%|B2&tDWDIP9tF{&!9U zjtv`5hC3_5ssE>ko#h_F6S1f)PLh1W(}VO!I-lTpxy+zvlK6-vlGDX3Ca@dqJjSzL z20H$)MMe zbY{RM=IT(=oIIQZr@o$H6@km$3)9l1PB>d$tG@D+^gH$*%69MF$i6%w2XhH+IOlJ< z*-g6#m%I>)%bz%scWSC=AUPt9Ue93;J|`%OY$#p!r5Ac9*HaoNN$$-xM6Enf9Xbsw z<&Uj31M0N|Hjk0qPPFZ870LHG#}sHclIPGl?4Y-bU?PGl>2wW+~v`d!e( zeKmNr&(R-7j*z`l1{|M%_>es(q5TfsWDlNKLgmUJ9{3yy7xvXXO7ye*H=ExRfBM%Q zC09vdc;}y9aaX1RK0I6UFAhn=W5R}`Scvef7A}`{1I!5rDD9H+g%|e5&36Bz=)B{x z{<|=aNXV>^29dq@3di2-cH4W;Y_hT?L^h>CDMFD_h#w-GB19>XjEIt=B+q&N?e!9F z-|;!uxvux6bp9}CsGg~cWy5{BsyEqb#&pnCr@iGYy9ZJ!>?d#0m4L5=Bh8A5g zTaR*LP$mQ7^2fiHe{8|*VEp7a%*E+%#u0>{Yk&@y9RI-ssN1n+u(ny_dD`LrhaVpq zK=nSAw4DDn;Mozk%$+R&g;x)4d}Q4~N#bv`2|mY-jC!B6XCd#;mhsA?oe?m*?IcG? zKLWZdT#6dg;h?2mxMX`$5;PmM9`jltCrMXmFn`pLfU%Gc; zyp0dk%L3AP-+c%5EybZ5H@!gq^w(;o)3k8<-@BY2=t~gLFicyneg!hylR@-M8X(hO zsYhPh4gC7ICkUyc0He8o^zUO{^L|rg&4M$iNZa|2 ze|1H`aq(uA*VOpqzzs+NM~Nd`+&3GwxyBx7pCD8gZh92lT)p|BqQj~{FOd@oF9lc zn6m_um%+%t-Z{Vw_bM%4&v7nrp)Of56RjNvR*UgBW4SRe<6C-_=Q0m=Jrz8^wBH?q z@=rYH?|cj1bT{k=R?U%{z1guDjMwvNdy2>9f53A*Dya5lTV4(f8ynjKVpBms?U+D*yaR~XC@jPTV~!V+ zYJ;7wLEwGo?6O(Z6T>fSErl;So2 z0~x2!Gl9FlBj00*JoL+${r7&K9XL?T-&D0Xf)GCv^TfzL2rY>jjn5qiuac=&o26sm zEkDmPn4t$D{QH9FSYjabbL*2K`r{C>J|~j#G8-b&dkcPP-GneQK3SM{pGsUk0NCszTk-Pw@N3+|pjU*sNQqKM8d@SBC?U_^eWkAJGBQ}V473A4n zy6TLqKw`c^tFmta)J>-RveT(BCr-y>_S6P63+qg)cyQjCZcdXq^#C-7c!_1`16QA) z?S4xu1DZ4rA!@M=pzfLQ%ljny<937c{px5zGrdyzASveDb2ctXopk|Cg^i?(UDH6+ z&dx4SLmz;`Kxk+z@&?1m(?Wiu??Kr{y5+`Su=vyZw~mP&%-L7ABuvq7A)2D`3gf^= z)hg+AX`Em*$p7q0Bj(?QJ~6lwzTtUtsXR@C5{zc=yf5)WZf2hMmy36h?{LLrxkd3L z5Qa`XGIP`h0^wJHPb>O;X!4H!x`;l@8{-k~H^O_W=-IK6huUvjkI4@7V_O z0_4>O*_1qM0TX*ZL)R|kM2Ts|r`yMa;a=@poJlSiw{GmaIn4v6tCC#OtdDTdyG%KA zqZUl#**c!h;2a)F`GnU7=UFCCh9enb$ia=jQW1cD-!^C$Ejk8fp%(QI&){A`X6e!| z37qGT5yWoY$p)KZFI5qiaNNT)?^QM8`%kk6#CLvx9q07d)%X$gcZW`#KSqf>_)i@= zwc%hydskfYJkHY!*O}kD9LG83n5v2{`lpY7SS_$z0pn+7KECDZm^-F-oYiXv?G(xC z#lv`>a~n(WvHS@}8HOixNOAAIweQ9cn;6hF6DI~-kOm{tANzbKbV2J;7VVMem=C6x zQE`)x0IlMO$~VcF{-3|N>hcNmx{d;rcU2le?|DAciD=Ya{v}-JSGWQ8693egJvzXy z`n_D$L_X#Zi`v#m;^yoPF7b zynW{H>~8qnus!f-(oF*WP6R1B%SJHUW1Z^#$&UW;3$%IFs9!84d=3Ae0)$|z#6poi zAm(c7C7oFV(|u&;_{DKQ3W3KMc)x(jpk|)8APyH#3n<4q@bfjR@AdLTT}GU-DEjUn z%&S-4BmO~tlz?CMDb7VO-hcD0$IWceRsNLwqYwQFIni!X>Qo?ncmH*!Fn0WVIX|Ip zc?BlEzdR&X8^CC{n&N|lIsSiI0mAv{<1Z*5-Bk7l8%nWI;Xe+@rSREd%rybUR7P)E zc3V*WF(pK!9t<#6K5)RX2p}orvC*n9C?sodIy9|x;xbPrT3SVw|j5mY=$Hk;I{LBmU}qQEj2lpea|ynojR5F%DCxw#KiUE8~U zCkugk!gp&EmNHP2;k0;0avI>aiOp`|Dae0!@(=QBW6GJBb3m6hN6t|245&4T&`VqBfKqY~ zr(>N8DBDz@KY1t;lwx~y&Yf5Tl~T{YmlelBkuWSv9zzGJEm=B|qR6-RbuV)Wj|BNB zU$JMwm}k1v${Tm|9@r26>SEgU!*i*3Z$s{BaN;~8^8WEKc%Sqc|Glpj+)CqY9zDT- zAK7z$jd^)1Z)sltK6$X0`SzQwyAB*wRHfo}Zh%uvcyl58*=(ynx*mLp=U$O}Y+=F3 zX+OFVD8rAut5mMzr6KpgcKcw%V7d@;6oOi#C77@mqK#sMcOA@c70^jOc?mic?(J>{ zs1N>CXV1p{pJomr>(nX-=xoa`pY(PBLbcoz6N4vU?EOcjpr{=5=Z6W$b{s*^Dpkn& z79Z%IX|dd8M18x2rXyZj4~*xT1`lBF$8_bKeX&{z=EApGkMrYR=7HYIU~zo7KDr!po?NQ5 zoa&hOy7*QnK8pt|ybekq@Hr3 z;wuECLAXEh=Wjd*>p7h5e8lJtdf(R^s_xQaP9{FMo@4_IS&4>+l6t_HPM+cErzS95 z=!}&?PA~BUha4L>4OpZO3Ni1;^H292ncP?O|ENr+(M=#fb@BjDMy(PM7iA{dUiqPq zhQ{Yh3HB*aeAp8{;tblxH0P7y5olMqaLMozK&xhsGB_ST=f`4FtLq;@jC7j&?`l18 zt=$&^wLv%f%5SZxpYY$m-o zqT#(P>cxVI#K%Q8>Hsm??`Ik68L;ZvPWcniRue-z+OP8EMFYfBaMsxI;CSH6q`a%zg zF)b=STFA#;=Cg>7VE|Lxv=b!u`9Rojq1c>C1Ew0!QUu<(;d_*Ztd~Os>^OYw&Q>GG z%8zcm{hk-tCcTo~ci|*B$;2OsxrAJS{h}{}ImmI2eh^BW!1uqTkG&~mg4P{Hlen{( zvpiyPFUJP=Yff(;7o6Dwy`G9SC3`KP0cAS>5hTvqb)lgR;t02p8yuC|&Q8 z!@ZWQcv(lvE6`t@Z`pWr1`MqqJ`~?qjC@o^s`P9l(B#kBWB=F<8b1ub_4}R0yu+6U zUw3jacDUjc|6KzNbnfaXt+j*xd7k(Gve&^l?b{okvk91orZ3A9(FYxwlGC+j$bry^ zj{Xt53h+erc#_Zr=;v6Ku0Kr2e0ou`D6(oay` zetoVtbPtT*6#n}f9|Nj?HF~uBR6+iV8*jV^KZwC&a+0@EU@xX$&=`vE;h{SnY#hU2 z`DwDoC8HT!=!HJA+t`9jTCZr29P)Gdg--qW+=qD_RU$F^H`q3&<&0Q*;NEWVO(x4M z*r+d*e&c@!wjp)Ty9JT=P&OyCH;6fhY#>^2S%Twg!^Qf31#l=>|LXBG1RS`$&Z@tB z2R1^FJfq@h!REjn*^>STpq(YIr12JWBn@9UyX`D6XSiSK%^?zycly9Kw3LQE#`F}o zWHB)MH<^BTa|HAL-zBJL@je~mausUEUIYfwm4se%YP(G$Wxg(-|cF39Q}ulZbhEh-!LXRXZ;KPt^@1* z!mgX>ryMO-Z^T?cht8sBP8XQgvu4!dKG0;=hsEj6A25#Abk)w~0|VCQ_a+`7e^2H3 z>Ka2l82M>AxCJGFv1?ZJq|aY4X&u{nyv+_K)43IJ0-vjo;;UL^tkCybSGldR$U zlbg20z(l3QMe3V6>g%KAGR$&#K2)Wo)WGZ0neP1iliXlnTekR$(;tk*8q6|YqrQFW zudyxrf1oQhptY%30=m2EGaf1LaPMzoeD}c&_Edae6h_~op@uiLm-_(di!Oh3JZ26= z{aZmHt7Yh0tWav6!adV@jf45Qn6I{Gcpmf~^B03|^H*2#zNHpQi0{=$?$PAQU~+zt zv)efC!*v)`ho%<(3h0C4PJB+A9wTVhU%IUOiVOKDCfAkM(a*9}@`Hmv9R2S+Nms@z z!5|?b{eWLM=ysl2ypufw+D_69dLu1hdfIuG*GB+sI;J@nCoX_Zu3Xv6ziD9o1XhNA zApfwMN1WUS`%6Yw(&qMXepnzz{cdCdJ$R+MD@p{Ny>=_|QtVgYTYFo5lNt5AR^EHt zF39Ed&G%hm0Zo!*KC+YMprLppsz$W{=N+coOPYb8Sy?r)KQ0LK{0&zefBJz&rs*3q z;V97VFIHq5$_0JB6wSX8$gALr?K<>dC1@>F1xz2r{WbTk(Nb=FU*xeJ)uzQgFz*06 zGp#S^htg2hcJLrCDy38BE%LstGCNGicfqb=lVf7080?aBqj#nP0K z^1gQ5&z>Rg%ePzt8~Lp?r&q{{IyXf7B?9wOZBDaf2gfo06mZU<4}IsUnGQ)w4?t&2 zLx3`~2Xq6A3Y{25(XUzh-C*D(m~p)5sqFLzgC}L1r@E9t*YfPEl3Y>H)>52i^3?;4 z?d;E4y*NiUgsmltUj!{HpBmw%dhFj)teI@g$NaJG_*7{acuBX_O0KDc*W$qSaUT!x z^|jdq!Mn&cwN%{``3q<3uIlE`k%FJHwZtJMcL;F5EoPo-1ZTVE2dt(Y!I$S;7VEAD zob~qM&c5{q{0F=~n{>27K%^^2>)H=6lqxvyi2XnY{HO08dLIsY<*oMwIpzS$$`ve} zg5iwN(B92scQN06py+xDDVUI*46L0A#_M;yCaJ0)43chZELEUyWjsCRabN@bRmigY zj^jS?l(vpD@>3ku>Tix8{sm4wo40}vXn@l`3a5Mc`#63(v6Aj(2TqG(-}fBQPrFH` zzjF!m&%aq8t*y0!*}u7o8xg0#!q!kYgm@eb7OdyAQTHUg*BTY=T>zr&{L|Y?^kJ}wUrpJ;e7)o0eHl8)g?TpdP)GL`Sh4u}72n3^c+UJrKj~4NuUCs5t|o!y z`R6C+GU>p|>2${bFk_>U$awF z0Oq7UdJ)2IV38;N`^6W`n<=}QI?H8&ZH+kZv>f&)N!VoP(c<@uV{~^kx&~I)v<~(1 ziGjnkH2l5N4US}FcM}i(0Qae%S@$Bez+;{4_^hZcxHJ2;4jY+)Q{+w~muNRQ=Y{_} zD}p)R6HIX@vsJ*;cbqTz;TCv_zxzvagbCd4Ts{5(``MgI`|E#`AqRBokMsL@S?~;U z$o$TT9GED#vfca0ogshfS#k6&xZIk&$d35LKwZw>W$4Go8z8P4P_tiT zLw&K;WA7LG#*0HKLo?Ce*cm$dFfRdpKTc{t#p{4r*!1tuVlw8}3N97!odVu;uS3WG zI}TEp$Xw3h9Il{0{j`678i-eY3hqBh3u5o{)y@;YgV>Sh=dN!a0tv6AedA@XKsr^P zrC;YO$d4-rHFC3nG{c*}cfWgr6u%0yU627te4b17zeEZWpH8MY4p4#E3$@J^l(odK zw>tllC+8K;FiO(0Vr(^lSJ1Sc?{A1tH~hmsgJj zF$b!!bxqIG*1*InRS(&~i1P}CsrMmyW zpUFlL6_ML%vUU@Ku9!IZmgj@U-lKa}QK#WNA!yHf;XFuXl9MYXKg9gzbuPNRJ`gEl zTDa++gFFiw9gFQ65M@^QXJm!%QRAd_!J$gY27tQ{Th!{|>iD8z$kqH~q-!#)s= zAapI^en*c$b}Upv9_K^7Wz^Pb)LeMm3_fr zf9J}hlMch6Ib~NB)aZpe)kgFowjD6xPPVA-U;)b>`>-0E7tO|O_itF^`G4C!(ob&` ztnG!xDYaw3?xTm?kOyt2Pk#HrF*>_5&u3m%fc! z6(F3D8j{}L3d*~eZJ#MW0aY@yskJAlgGk@m8~eZpD)$r8SOwKV;&)t$f=d?2wzaqY z%;5*vv7R$oLf+icQQA*0`9aO5%5V4RLr|}qGGN-lxzGK%Z48AJ=Im0O={@jzHop3x zO?v_NuiF<|(?dX?{_)$-;>cr|9X|V55Babm9MX##E}(OuRV+`~3rrktX9$>M9~OOx zUZDl@MI`r66_bvGp$ENR=O@%BmDOY}uF-+v+Q8vTA3P6D|EuB?M9zKPAWqf0a^x=mT;BUZ;}A z3%G&C=HmGumgfM5FTHXyUk8=b$1l{s6~i3&>#hB1N}&Fo&6T!<8MG5GJtFe-fZ;>w z#Kyd3FbL>L-xbUTt!thNX}WBnx#^I7f&VF}HCvC^Ogw>v& z&JvR>tIM2MX`wC2Dwo0Px@xD9SZ#wY+^#qBK^AB~B@$195LT$*g zU+S=uX^{!?a19Mv4eh{Q_6Xn70_wXYQ-6D26yg08`a-FV2CUYvu?&r~fKTw=d~Gwn z2M<$@=LP3rKN_`{?pMswN1v0skSqy)#fsivSoeYZ_U&or9L)DUa3W9~$N9%ttUN^s z`QsCr2_@{;FgIXYDawtyIoY%8jwg^yMcAGd|A6~+e36OVkOs4h7WHlRs$j~j)}!8f z4~&-|Jgpr*4#vD6w3HL@+@7w|C-fr&j2iyT+S#dt=`-ga7w6DFf9q!QNk^uJtRwHr9{~?A1(Kb`d0+FMm+gY<1^^cp~ToJus_VL=UE!$^6JRvcvMOm{r%P13sRS9u_uYjJRnX2jKafK_7*XJ7#6f8Xofru z(|c+ps+fN>H+^ih6Ay&1#P|R8FM?U0gqB*-b@^M}Af{mW&e9P}&po{^$Q zpPz{&o7R(~=v$|qU$kHyI z{R?%GQyryu-MPRRsN+v)qW>kicRD4BA2i-HUZ^H&AXi{XQFaLV#N7Iy_!_ZK-hbypL)4c-vLI& z5lw%E2f*kd``)O5Bp8o8YE-Z<0OM0i5UsiZrc#sg;mB1bw71bU@E!qT12HCv33HlW zgP$TWH)}?^@l)4~8wiQdW7J10!HEB8e(J10@>Zj(7x=J?weD{(`yE=)k|* z@VWn{?raecsAfNIyfKA);k?-L7qJw$M{)7JW0)xV8xYK9GXr=eH#hj|IVTv~I@M=r<5U3k4}_k*DWU{ChVK z=f9o2&ddTuFe`oZ*5V2;m`O0%@c_={d%ug~_HF|4s-tj#zX#?~?X1-f;9lv7yVK>- zH(-7FrJ2vnEwB^K8CPyW-gVTKO6fRiu$3E$W!rH98yQ75$$jXfI^lH1C6W}Z`D=MZ zNV37AKYoQj75nm%ekQz}hyv>mGXsf@j>z5U{%2&{2G&1Y4!lPHhdEMkLqsltW#NH< zZgF|AAfFk0lKK!VIKJ%Pu#W>`NsEXz=Y8a;Z>|a)V&$Q@zi52R%y~EK;71+z@p)P37aavmibn4VVYZ9MtQX(1&)*fJ86TESrln*SnsMOQd zk!SJbD9ygOKClWj-edNW0NqI$?FWA;!73w8Y)hI5TAy2;YiHds$8D$b(FuJRu5pWu zL8#MFW}RYl#hyOaPdcRO==<6R9ENDmtypnDMaYpryATRFy=wF@aPA~#1PXkKVv}>5->Y&MB z#$JU_77C}v#f)h5-Zhps^b5jtCVg8 z92r19RQT+r49p1xZp*)5MLlEiHjjP&B3P~#mtW6a1zXJNmu98?RSEpR8Zy8**g~sjfXdjh~;vfAe2P^;5B@n9=7?9`Z!4MGnOu!kopG zJhn7~7?`$O=pB3W3ru?t-4siU1!LN`k-7iBK95>o@pyX*_hROAn)Ab8L{eX9_?ij~ ziZWQ0IwZg#?ys>{@(LKf`9Pfbisu~Wed&<}n8z*fs`}T~hP^D6Q`B*JU@|o0NM|q$ zChFQtuDLrq>Q8x6a$0s#ZkRVr>p7OQU7+5$hbuM?&f~8JIg?}P$w_v`#vJVq;P=_P=D+9jU{nh1G8e6go$S5z^N=lDKg zc>weD9(iOcNmoHSQgn+c?IMUKe`5T{fc)P-tSmdnE`ZE6c2o1NJdn$sdb9WL2*~_; zH}-lu4y2p-Y4;qjgGz9L`ulA+5X)~4oRek%K^EU=mEn01n|dPg>!}XN-x;H@BTWO< zvsx-M=sy;?z*5b5dkKWITVp>P#eq~~ex-M3A;@O@$_~qV0%GC$6Gu`Oz*zB<>#je} zcj`Rc^HrETmdL*DT8QV~Q|?U1G*4qbV(FMw{b}Ts7}4JQrU07c)8DSAJi?sQ$EC*Q z<^TJ2a_o^mL!jdRko?aMc-tlo{kzjak>mT&mY*L;_(UqHUq*kH;)XK$Ci>G;$Ik6< z5eLytv4YYgoFL0!AC<#W3EVNwbkSm_VAC=_IAl$Sy`JySY4fart|r^9fFAU%bt+Wd z=fdas(T}PT6sLfwR%*6BU57r!YjLbceSnwqVaiIQyNv#MZ0@0ok+fl5Mbrbnq{O?TZe~8Q;q7i(7_ZnXh{R?XeKJ z&%fL(t^xed30T@+#a@}`{CA)Fb%1HtS@{(1EN~T5jpJXh2Li{$R!4Cgh=dn@eWt2{ z?~Rf(MyOZoF3U0;dm9HjVqS2!1@o3uLwAZ3F<1BL!%_X&I53m5Ck@;{9>e&;ex0@t zU_H@)`tsT&?oUEG%>@WxdDYM*3pslh9`}fE-W}W2Uhj;M|3EDBbRY}zxe&PVEs{DdwpjbERv@0P2qmS@W=MUPn75j{hk`) z6XgbkXB5IpZ;@~2opRR69PUijM{q`Jt|oRV-2)GY6JG(#EtZ8Nr&<&!wihA8hu& zjrv#m4lF&jzk5$EgYB3B`#Tr>x!s-y+r7j+t#9}Rxd-~-@}!BMgth=YNL)?SE)IYv zRZLXleIan-9}~~9J`DCBH*(%y5d&AU=CjkYieP_eNObdZ9N0155qEBs1{>+2mdn?L zz*1N(oSh~K>}a-&z4Y)pF#Vb5E`J9<@1jh$UF1xVCn!sbmw`FO_5Hb9)2LHR*&UM? z1+%EjcOFdg0paYl2_dQv4D`EKFP)JE%?|GpOT}(b(?7{u`&kjxAAYzu8kLPbSRXYE zPmbYxWcYJzML%dTUXe}l-H*N)smpz5d_dDJCr9B{1E@}qC5d{)pzkPOYyC+GsCu); zi{8!xy(x{-7#4rjX*9MM=Th)~xWsp3rwSbJzI?drhJBYsgd{rC>tItCU!LEN`!&Yq z)SZiXUfNGg{Er6pUY${sUhXoGzH;E3{jVnU(d|x(iXI1zV?Hut9N25u#l0+l4EIG- zLjMl0`GUB0O2d~K9uV4Z94yvz9C@bvB$o5Ydyr(V2s54qEfd?Wx?ucz@k2KXywgC_ zlKDu`32RV!(bwsOz9iLLgNt__;CW8)V8G4cVNlcLU6Hlx0&V`}-XQ^;8(a8%11AhY zUnivQr6K{}n@@Y5?P!2;P4X8G&d=Dd!?+}`rwfLc-r7Ct9ROYPwc6&no1pPg$a?{< zfoj=tDdD+ru;6O>cA451b(F}z`>tw$8Qqdff-CM-!z3EMe?Z;#tnTk3?iS>i7dGET zUn3z-@5!wc^r6@*9BVP8Lq1(4xkDTBBL8HB2K>Xha)(RhpHm>1721&TzSzZl-}Q>6 z6#V*i9=TE}cd#&gq(V;VjJiu{7VG9Y^tsqdDwG&uFZ{j}mIUmno^8z5CdK#d$&f_n zTf)d4c{~4yu?{RGHEuEybJ16jPvr1&02`X9=4ENjy%)4FYz!qi>t!w;9&9GElN-i2?EMV60%hC&jh$Q|roknR1UL5*C^mP#rL zF-P3rUuDhD$6nWwh`ApLq#*N$>gNZgr=WfI`T=>{Vlc`UV6`W&2m4R9^8Dk{VC$^y zJ7GA4pNGA~d%9`#qi%&SM!o?@zSJA>mX+X`qPGe$Wne?U{oNS%!%Z0Zu&-5>tIjOQx{rYZ603Vm>lDhm)_Mt`dZ z$%wK#_OAa4n+p;20DG&I%(OSfV0BQjRLB^8ZoDN=`YJzz-%*%ue*!Q#MkVOsM;K)fwSqQm+eeS`nL%uR-(uP63&_H|aUN=msB&0Y+a4)Z@& z@SI{z(@QCG66Y@`soL^-%%3G3nb<}jpW(6lx0Xs|!LTDfaAOqr1!@;xQ-va5{GiK| zwpG*}xyAnZDD{HgGZ)E2uCicTS^xW?73PqrPVi7%Jq!*%HI^cd&VoHd@NRDh2{;`L z6ylFZe>Aoz8%v-sm_Lv|beS8hY93J8TjJ-_Gn>H{9EP0EBh{x~?gy8M9|rB@OyG3< znc>NSTyRj9eLO~D2%eEQBQ{Uq|GQlFbaXEl2oxd7z>hk~%D(-<|Ib&8ANfc68ubBz z-Qk6jT_6;N+2FCQ3C*n3E-~>pOC*5=;gH*^`^6 zk#D-*(0d4Tzxy6khcly3>xadw#LfovF^kTAVqrmkN5%-L`hGA|GP^j+B?j`h@BL}z zz`fpV|Lud*W!MAob@uKlKX6gYSQu550tcafa{2XsuycxGR!KtcPJ`TSS@S?J*B(EW z`U*LtS5;11)r^Aqoi{JJ@jT@+b47x8FB-X|7FTa0r`f%Hy7QKg8+enuC#rDZJ|Ohz z)kA0g16R{weTi@j3!Gzi8=~LxMFezzX(r(KF zQ|b;6e?YEZ{9)~rKdZo$!KU})l{L(rEB&jVmj+Yr0LSKV34!JMLQmHK`H zuq3CIdcR!srA6p2tl`bb8BxC{1R-8?ONtXYWKh zu~dMi_vO{gljxJ3cvN{}y$dW;x|#~D+dx12#n|i1n1427(4kDOFm;^I z>hHuklA({JeRT%?C1zgwCvomo;3N4jkO6bhO^T6qviKa0_;58P6?LpfmNK*0M;>tC z0!Jp!cYjZY93F52(~j6sYTKKj8POh@c={RUFnE2%CMQ8heo^AiL!2))UBq)0Jb@7T zABz?f>IDp+t3?h4qAp`k61b5J#wD#)6umMa<14@OQ_=>kU3bQ6H{(Im+pv@Uvkd5e zk&zj?qz&pk52q4>$AB<%^F{b6{$C%SkMEu*gsOLe zt6l0qQL_`c3^D3VqzZwv#Wxm{pHtxc<|V%q>k7E2+mHtH;qxHhfsW(f4!Cq^nXH>! z2j|Z|$C7zBz^R^+&J^F9&hlAb*pA)?du~d)-^a$laq_QF+Q3cBJJyq_tdpbfMN8#@ z0`ilCbh6`_m%!mg@u`t}*h4_WELDJ98OK{uR}1CZu{Y^KplatPIKSGd?q;U~lar;x z_w*V;U+Kn>ifSdscn&fi{T>P;>Vg$nBJWVAVlJk1T?XUM$ysiZ1aNZf>MiIXt(hIlu=lziP$Ztlh!&^509kUf7=`*u6nBECJ3l zpP0=k%R#9~@R_z=337geWcU^t(Kr8j+~syKNQ&-PRLQCZEDq#!y)p&LnY-LQi*6to z$L0~KfxUxVrLVU}4Kc4n_v*#$IZ(Mam>qkZ4b42@HMWw9aASC!Pgz0q> z2pTbY{wt~nfr@}Jr+jUYzU)2zx5X4>@6!9{8d!qJi9`I?hDtzcP}YXR=}u%xw=WA!ce? zz%H~4@;UY$@71e-jK`khwz+zc@%x*XY2{z27wgQjg z(!FQf%7^(NrgVkAFCiYB*jwxD6D_NIHs|_JM}WKKd*p zR?zHxQf?)`4N3=GhToaIfiwAHLlI+!ph{0sboJ~Oh+m0MI{fV+p2M`;k5;V!xH_+- zUlIiw;rWMF$fuM`CNT)boUPOev732G&rr9BmW_q3t^8KL3WB|gp$~d`Tehv zRUuc9E9Fsg`>i3EX@ydaaND9DO0PRJO^^B7k$snykUOzttYG!M1k4+3DDNhh0O7(q z`?+j{88U0D1Qb5D6o*QoTth+F^7+0*#%3?ogFqKl~CUyX9xNCJZ^6#oCz$*o6I#M5^TR)GQh>RwC(kjmC43gBV>P`q8cO z3%*b|`~ur!)a?I7qCa0!_WPa78DKatD0_qU0+<*a7E3Y2{+8ZXSby4%Jg?;C@PiM~ zZ%D>e_yl{F--RigcO!qTPqjraEeEV7SNI37)qwT*eLw#>?0Zznt$TbD&#$KC<3a80 zV4KI5W#xiBz6pP={@9X&?NIb7-5f^TXYYOc{%Q({?Rz!U8rWmH#y|*5j09rwi)%aK z{$Q@+m{z*i4yLDqmbWf$ApcxsQe6$el+B1bMhW-uBXg8$gUC6vqe-n<*8}<`Q|zUVKUV_$f;PBtUB!rx@!s?4Wr0a89ik1^0Or7@m<%NpCFf%gk^C> zCJr>7G9KPiAcERk=BC8k{-7Rwm-lFPAE>HT{G)t?{Q87zGpAe8S8x8LqX&J(I;z?U zmCMLSOjS9Qv9$$i>8b+2&x`MsFM_3Z2Lbri<5CN}0h+hS?w5Ij@~mv7Vhe!QSJOD$C@4Dc~VQ-e<&w3hVQ%e|2AdAaC8=($?ZU}iHNTiOA0&ha?6 zEfKIByq4o)i8_mw%j!=lnUdL=#z;XXbSBr0LzHa#Kn1>lhYYU@<{RfzMn42UB;iMI+9)Y80KTFhn~~7;{DTU zx_2&92lHW4S8~20-^~2x2Dc@0h0~@iqtI`!MNf65d5{25-I1HS5(?_nS-0x{-|H$) zb$XD&1JuV3F%(l)gPO?>Kk=F!<_tRPL%wo@+MNV$%>xnupM40mWK*DhZj&h)3Fx0)zLuU_OpU-J)T{S*oGZ$DP3c8v(c`;L9CD#QWr zL&989o;UhmWE!8{_=M-$E$60dR$#zfPA*7|9GyPO-H{hK_n&&+?2meg$$m|lpEWOm zV5FtyG=zLh7SR9$A?%e^CM3PWd0AhU?nEV(Ea=RuQK{m4pK!zPdEakpa8Fxt%|D1d zJ)sEEgXUvkb7ak1_Ok-^GyJJ>RnV3WdPpgI*wu; zP)}W)8vP>#I^BB8_1wkCDKy?cV~RTHaBT+NJ8~doigc{j{sDt+#^K}!RrJrDG7dc? z2ExyuPfe5}FV^E}xasf5*q5t5@iO%S_A3d)7ek5CfEbSXhqW%8{EGrk}yzdqR$(8R_7>?FUeeBB&rq+#;Ouc?uG7{3kVYl z=;{Ea7XruR-%x^je|pj-eG$-kmAKN+x(*<8-;hD}KJxG7J-J?YgGtflA`2ztl03=e z8gTMOpO?>VF0f!+2T_fLEtiXOWDl>v+w>!w~XX5qf; z`SSK!8*)vLZ>zEff#KL~m*b?_VASH|__EUr=cFm}$c0HTzFYM`W^@@$?l*OQwZQY^ zzsP_h^dFfDY8qBq6oE$Gr}|P47p&WpCtgwQU#328Q>&5vB&|5t4q=G2HKJc}4k!jDu56 z=ckvk!eIWZE+X*G6Wj{~6rROBs8ddoq2_URLlyGtr!haVlHTy+4d#=V?@`DSz=n3=4 zJzU!%2F@kRE|33;pl(-2dc=Peb4~6>wJ{IC(UHhc zHgyDhtn5-=n~8zlq)FGD*dEwT4=v`EBUf)y`A!@&`t#L;ogEFt!0G-Tl}Qa3_6Afu z+S_*kTsp%qzQ%l@v#5Ec>Op64s`h6&pW_BjyLZawqMv|E@hgXzJ9FSsdBU^G#~QqN zRHUX*&+yT6el|ZR1U}mrL%hGNAt$2V@2j>E`r*|ISs#*uYkSG*hwAdkZy6DlUy=qV zTVv0*Qw!jt_}~ru+Bxu!tKXWtO9%ewzCZmG`Cyy%kA4N%0pcbLI6A_>n}Vx_{7X4_ zZmP8$ne76%n5PAa#lzqs?5y+a@&s6jzMz}7#68Q=Ct1XkJ2-dzaT6m!{%Pa=&)Wu{ zL48)9z9Ly43_a_}Nv~vrSq@e6^|W#@KVj2Yw{r%Fv=al3k5S*{lx{B4Mh;TJ``h0z zOlF(ekrdA}4wi34&Rbk^0o7xBWKr64pcFI{HP(>|l2*1Cfwlm26YZUevu8m6zE9>3 z=5I{DdNxsRnSjKVZ!O34=Y>@!T?(tXVaO-#=-{u?zjOXFP+;rZwB)R3%qT z{Vfd;{6)>5Vf`6+N*)+$M2CTlA+<@ckTi&Yy|258=PI$N+8_6xB!cM1i6#vR?2iSr zaFd_dXPEQF`(|bpNLFXHmF0?o*hklv&l!fmKhYu~)zJXLGf6J6S0cHd~+7>kBmMLa&sQ{y+sG+yoHo@Ubv5L zts(o*_%8B?2Ycegv%zWZ!`n#ZDe(LC^MVUI-nT~FB=;{ffRkK&rCr){a5@WCPe=Q} z=(N1;)O$Kmb9ltDEGP(Pd)BN3I+_00*?YfZ-T(3b6bdCmvPTiwdqf`g9;b8IduJ0O z84*!QDiw9fj4~>jAtK7CD6&hXkW_^1&*T05{so`UbzH}B{m^lqS5B|<`FxD~{dNaS z;`tpGy+vT{FRQX09tg%dt6{Sp=%aL_Tm0^*irm*j2ifTI!P;#t>;oOn;cCN1PbMKx zs4OtzC~TYQ48c=hLThC?m%pjk_y<< z0ea+N)2K5{$Q_y%pDsdO{anPe1|MZOp6+t%W%Wl;Su)I@INk`ldK@7=ls#b7aZLFo z`n2@z3;yW|k#SE@@|Pr24OXi)<}}GWK;><~om#AKElJUf@#;A5aSBqcy+r}*%k#hT zbu+=CKz!)%Kq}Z|p%AwZ^YoG#&Uc^q1~x8n3b_S^K$=qWj>*P*kuGbapB?o|21!-J z$#kH(O?Usyb|EM=dDz$mA{VXE+<|xs=a!-0p3MkX0bz3EVQs837-#d3HOwS{c4Fi6 zuzo{O7Hzmo6vWr02*wc%T3**;Mjbi`M+ISpq-x+ z+t0fXj4wKJj^&_^b42(dhLK+w4algIW2ZT|8Fk)0OT>Nl3$aBv~F(-a~~d zSbtddQMX^z3`I_c_^l?KixJjoxpLV*faO&>nTI8)lXXp7eP{I%^9sq->~!WpsXp5L zM&be9LoRI+QOLJ=c}l2ZpbG4M+7z&DUkRC!?_5v#<{iJ1a1=vXS1-3hQVapX2x=>f~geb20yQ70_Z<$9$Rb*QK1 zWfQFM=R3whANu4O`Yy#r$rR)xYdW=kf_cyls2#Ym_Zn!`B#d5W@dB+ojMS4{4WKKn zaOk9B0_dDm%G_zy3tBGL;SH!^G_qb!6VXMzbLtuh9qR{efz#i*1W-q_lJV86@d8-N zXff{%#{FijQe4JmOE4QGEBNN@0*ezP7L`wf!SY3QQVx|Qn0Gqc%xa=P;#Z90nCT@j z+bxq6_7-#Kb|xkysG|<-s>APmJ9Yed{)S#U@f9q~s#(tQ4WgcqX0kni1NHx#zswp7 zk?UzZUgj(X=5_R^ddwNYa_g91!Il?To{!}UOQr^k*R&0N9F5qgyD#~-#{hvfh0g9R z&d=FPqQbxMpw7|3C@?Y-D9bFlSyA=ak20@niC|wQ&}+8#82x~chf~B2kf)F(TX^W_ zQ}n%l)-?0F4OU$zCaO2Pz$Wu3hg#TeuVEB#mX6vAz z&d%T~SkGmgs0=Q1vgb2B1Ce_#vasXa3OF)E+_kEBg}MQ?xo3LFd42Eoua@^eAg0VY zhV0bEIr?7bH?w%(9ItNp+J*IJibv1A+v-4gHaw#d9S@`c)vj;q@pw;dY2Q8l4L@Hx zHoGaDhm^!-)EMC2BJ!fY4I4LD__?O>Jwl&ngyY-i99QuC6YT6xivco`*6K*vB_Kt- zTUO+z0aDRe(7|8wSpi!7A-j}F$|086dHT;us+u=#fMpUq;1`e^En9fDXFTh+KJCWie6!j;On8mu=6 zEbB8JyUM{bU4lp9&Udif*h_mV4mlfjL*Fz-O;9Hls-)z1?YDHDU) zU`V(mTiuT5+2AF`d{g9g6z^tYeCG!S8ed(1THyY^UH;)QQ~dwWF4qSYBB#++UfADo z2ks*yPViFZflwsO@tXnvYgHs9sOX1%6?;g<7dJ3rFv#(>R0Q&Z?dfWxX8isOs<)|m z0=m~%Lb4m$P}b0HzJ%O>dk0=!Zk__edx!34cpL^pU*!X&9^6M<^iyZ+ zdjNWLJr8$cK8c?1eb(uguRshf$rPhkL!Dx){QPM=zdvlisM% z?rYs<&D0jqgekczN>e=(|&RoNMlHIVnxdaA-7pI3x(eHMP zkTczmd%sTNmh!=2unfQcv%G{IKkp}IF8jXWyhO1&3iBNdyBQtQS5Qy6&f==b7yw%0 zo)vil*jGi^*=Gah(A&SPTXWd}ub=cD`))>q(?rH2n`CbADQ58I%s>udEYD-1|Ku=_ zTm9FL20QSp`jI)U6byd(q1SS`Y``zD;_RtkYT%i5&UeWS>+Gt<=XX7T;6U$biIEozL%RZ;W>n@|;J>}BHVdN{EwI-hYavnT+vlwdf z`N1P2sfs=55ID_UHa?f;13}W%%6xb~1sW+>3k!b$zvlkou(&x0nNK+5`_~5Cge(N# zpIiq=$~2jQh5>?EUg>$qML;MUD0_z0g1^&6g)W>Y1TqB5?O@&up(Z{ytFucG%49#5 z+>rtyukQ)69g~EU{|?gZK<+>YrBrp>4fR`YH(Dphg23&{klQXZIdFfLB&?>C4{jmn zj72vp!9CZX?_2S0aC7b`GqMW>H{(GiH&=G_>(cq}jg|qgmCT3C&FCNSZc=Al>&2WE z+88b)bgqqoWKXxTXjU3nZuZ6ouO)+d^P82SWz?fcKj`K1PXNN@ zCmQ7IqafM8^E#)J6p$5<*?go$oo#i!>gp5hD^=bw2w!sm`)^}kWN>fiz!+Y9CoLE3 zIhzs|=X=4nO6DW~Mb)?54oj%Yo45_kF{@`>M5T< z4#h^cOh_hjVY$q&yph9Pk%c!s^;1B&&Yw|yU=b_~lE>XvtAWVHwDzZ<3xA)lx%QX) zAxHE*4N)i#C?g^HN4`D8{UR;fv3*uRnWtTMqOb!+yCJyW0_#!pE29xYgZ{Uc zf{ry&w7WhsWFAb4Had!w!@wx@Q*K98 zAsGAn&4B{A9vBjIDF^sb@7&udnsjGoS-Z&rP!o?Q;X;gn_k3 z$)aF5FxGZ1st@$|Npz>Dk)yIjza>*%2!?4#T{FjVzN=L3DS)}Ddc{Is5u_xLJTtog z!U#8L(jU)yVfz4--5VlSIC8;ub zaDcqAYYh?o&2oEK-YUICJ@Mg(F#dQAa}n-{WSu~LldA4E6&3pQ=H3e%#9haxi!+~o z9etAj6|;6z9Rypw{QNTKD6mmt|Dw}e zO2eExdZF)`gnwYYb|^C82hO@naG=% z@Aw#O(+`?BNaE)=-WSt-i~$Js2hG}oHt;#;uazq{1M3RTS3-(d_Zg4K>ZSnB5r-D1 z?!N~@$Idgqgprp}N;nzTh4bcHC0d7;P=9jzuZf7nC=gl*o~n28bsBZ{eU`Xq&UwIG zdc+zC`+JKj?j8ohy(GoA0ct=PJqOY!d6AcLIqQ4#71Uv5b+ev9ouy<}LTt@Z+t=jw?kbNCx#M-ri?8>ryY#$F0 zJ1gF)0df!@@H##B+`yaw#f=LT0Lvey7s5?YAM1Q;VKV}KDoR>>sx zL$lNSJF8Gnf3JRJ*m)Byrcxg|ZAO84vT8~XD>v4arIX7v9bnd<`}_BR1Sk@V2LgOnaF0LNYV!eegF-Hl zNN;!IIp>%5C;<5YYzH3jdSDLBFmLHKDmPH|>3=EicoS4M2^S;E8$fzO#N=#II`-wg z43r&{U{f^x#(4tg;CCsed3t&DmuD=X z|M+j9-Eb1}0<8Mw-Fg9%i#vJ}Q0H3DdV1Lb!0@u@0n>xbU_iU2EMP8|NLmDset=h^4vNp1lqBc|-k%PM5%e^;m3*@LRBtm{sMg zZw31!E^bc)sld_r_d(9jQQ%N-vY0v2g7>8I%qnjyn6Y~W#3y53)RXAbFPc%W=COW; z-4Ev!I<`}B>8haA&MVX8=!tVkpHjE6C*aDydg7))IL;~c+E&%b;PQ31%{uBVU4+sz z58j)_y~20kCYOQhr|U-daRKN`;NJh2Aq1R*-pC5q*n^YbbH^>0+dzP321nGdnPs$G z7ZBY>ZdSy@row43=Gc%p7Ss=xhSP`3L~nyj+=Z*-bf1uGJHO_AehTcFkK4YxXaj-m ze|9^KIY96W+GDJT-a#;HD6>VCC3pr$UJfODfVZmt*?Y?a;F_plSXtqUbxWGmd^>Wi zSxpHGil4wuaCG@zT>*GFzszQRLImHuPqV#BSSO0ITk%KS2j7o7z4kjzfnTlBR&SFO zoRGW0Ils0ae5voeGV1>g!HpW_!^_7Zcz|9&@xTDymp8RcwN8RUV(v`o<7hCJ@>6XQ zz?_Jsj&jlROz?^3zEmh~1uoYnHvSc4gOv(B#||l7@TiwNT!6kLOFbKph4vmWCmJOD zw!-|wLn^LzL6KkpwKO^H4wyUrCa5rV0gQ)Kh2ogGaUae8UG#A!7#|ZYul}qG1`0an zX-Q0A@Z}t{)e`#s zn|iZ+`k-CgY~ZF+2#kS5~KSjfUd$Pv8+K)tvz^k{i*4ygcXr3+Hvj@%?Ll9X#LD`llIzC`-!g$o0edMI>btGJy!mpQ#~rzDz9&UWFqiM>npOXsGW03!e@8ds z0A_ODuc~=XkPjv7%!qSIf~<~n{ca;L?)6eSf9N`hD;V!BVQv7U^sn6n7UXJ?{G-op znuGDo%4U7J4`?s@?@PWZ1*W18IgR+EL1Bu6s8l-+@~z*kg4l4+9n!Yaej*=q`2Y7BKf*fs!&8Y^R@ANj#}*iRq77^br~dUAiGj8A#7*~BtS=~b zA%eM>6Q-7E@Lf3>Y!kMsvgUCINojpiN$ zVSv>x&IkLab8Xs-(@(Gu_*lcjtA%>=cPD1Em%wHv=@-i$5!7Rh6LzC-o-z{i<_=#b zkee(2`Z9e1%G#qtjA!v4ma+J%x#KFH`@b1?#Xmqj1s4ni84S&97xdtxuJTrxX zFL1v%Lt#4+177mUi#bKC;1KWL)A9m&bz0Ml(e3C5R=3;Zrm~GX)niTtwR7Nnh+EI! z4|zhL?d}iXst4yAPjm>*1aP*At8|;30mqtzmx3%ez-992O~3SXaH6*T5cL@In^onL z#?QS1mmRN&dv{cTN1*p3x77$d-*yk=$Ec%DOe9~*jSgH~X(}4`B0oE(F{%5hJb1EP zzy5E#8r=5SuGBrleaRkymby14U^A><)G>!X-_8g6v%xp;TzBiea1(z|l)3QMLN%bo zb8T*No&btV-^*MD^am))Z*zX42g>a3-`5+2z^2vVrHMN7IviW#J@YXyqgeY_#LNQv zN^Xi8OxuI=ll@B#E2#fXi@4MtY6iCZD2(>l*`jkU|!%%&JEyXLjJ;)1g}+JP&u^v zAn%7SNd8!tbPK_KJZ%K$loxXEX_jVq{xb%lu<|fd4?j5ku2XkjHw`$x-3STZqym|% z)0}7Os6k>kEuH$!OCb7mnlY7^N1x@>fQ=)<86Kd5Gc+oW}0v*RzIfq~mOVRAJIjBnfCXj-=eeG#((=Ijm7*4VM@G+Q)sP+u0#@auv>Ip^HS zMhoc4DyyuE;=XpzvxSqgYv2^ybMnSyA?Q|rsdJQ-1|4laD~GiXaQMp^{)6r&=8M-J zo|nNqUkie$pV)rIZ6pWAl%fwLH963$dmSOVTna8@-(r^-gh8_+diG!z(wfw{ zb3Qm$!trLs7NwwWkog`}#+x9AdfJV-f@nq{X>Cw{O?L-bTF=I-$n!Lk@M(~jKG_mZ0yQm-Sg29?b{)LY2;o@c*(a1#4x*Z-J`)jon>8b8g@#sY+D zC%ajokH~3H=6ZV82h4Lg9sZ$S6Mg+3hPc_qfl!f9!#vRhcHh?<*7sE;u9xpe0l zoMd9NYH)7_Rh3p!Z6N_DdnE%eD)NDo zr*J;Ja6X`C&l1kdoStUj{N4Y;T|WheFt+kvCgV28x9c7g?kPz^* zNc|%foa}WjxY>_&^xeUEJ{k10W6~|x>~(PYq?vcS5Ph!#er-__9;mQCqMg%pvJp?qGpsE z1bW3L=g2<5Gi0^ce8dW5c;3h4bln594F}Q0d_m;EK0Tikg??N9*qirWO@f}z3vaQr z$n9T>i3?(|2A%s0M8Q|+CuI$-RsK&63^QY><_D0E@FeqBT%K177Frr^VR>}$N8#c$Ezc1$lVupT$#Cr^KGLzlL(_3(Czs#A%&cNqk(h& z^aH`p z*e*WwOE{1WCLBQXO8Q)gsRJC-4BO7+oyK#$^baE$=VPG@&m)c5z>2~VF(-n1E-5=g zPM9<5KkSaUA20{2-~937dB~}{B3(#GYQ{QALH#o3PFZpA(?8{}1wu-Ju(l2da;vU} zH%kYgJ}jumxoQDS$J*u@m~Mm7fwgt<|?gZ4M&k$aGQ!`1M|29UdMeDYF_L0`d+pYBHZ z=K|gThCHHyoT;Ptz7>6hpOmcPo-c#$Q3aVb)Ww?|y3>}al#71cow-UPa_CREWwt7d zI#D}n1zmM1AY2>@<6NZyz2K;Zt*&h_R-p5{wjb-q(?{BZ9MP{oCPejZKl+N@e97|9 zgTVN??C7yyn8T*OM!0mt4T$`Pm){rS@B1bt-2eJVut`XZmAO*^1odNQoiZ$uYty*N z_n8)~Ir%H!IB|n%nr_WUZR95Oz3lZ+!+q`GHQ{B`QqVbBD(2jE8|pYTiCzbWyb#1hzQ2|B-o=mgbVeSPJi16&>yp`rbPP~`=0&F zFB(52f!*yNPhK8x0lPo%jeev5#;&4j+VrplI9j@dr{p3x&`?2>&4vyf!^TuJvd}ly z5|> zm$YyG+iX7uT0i8Z+_rK4Ff`J)%8PtjDUpXiCpW+(ET41doE4bGURTnp*$c*(OtYs> zpdNB>{MWw6O`yZeckRxl0?^*~?O*8r0zkr5-1EI&pth}}B~dF5I&TZYg_IjGzgKg1 zH|l>iT}BN5-1Pw`Evw3{Cwsy9Xa`+1&eHpU736N-|q<1E&oa z69qpK)&ZeY7XI9*1EFQ$X2UuCtqbFpG5Gv$@0)$Q9R}oa%j2gj0)bd|Cf7U|x$;JF zuD{=q&K>-o5v21tSdqsmzA`3#H4xx*?0{!V0vPam zTM8&$!+hHVdxscTLF>PRJNnvdLDzghPx$g0K)_Q|+FSr*3DOevBF@==rTQtisDl36 z&rw|e!a(lYEyj$ryC8M?Ox(h&kDy`SHJsKN3bJ#rcNK{*f#JohuZN2#!62_ZaYDcn z_4E3gCcVh}zI^}Q&xgsNzmu0=OYF_oPtLYxH%ov8GtzyGW)%v+l`n({wN*)g7|Ha3Rrr3o$?Xn>a1vd zk4J-wyu@ddwoOnvkv3bnGaA%R53XJ(`e4q4(*4u*zd`#~%If#pr=ZpBFTiey`+^9S z)!WW{!Dx4*l+rXc^7Obu3ZSVs4f~^oO50IlBpXq08R>#(g*BCu}?ngDt_jPwDFA?J3))#g>K5%}o*`rC;*nG>fpCVJFR zr)ImmNIIeyTp7+vJjVIHxA>0J=Y`SNY2hC!je9Jo)U|@gTsUX+G-U5@tp}H2qKL2K zH17Rhc>a;~1jkEj@)ib|!zO!0I`<4WINy!w)*r^4vkRNrft7UNP!S(CHmQg@t8vGH zNiDGHa=*3a&JPsVmX@GEd`|srrgrqBU(>2~>z+m!kemnmzKtTM$?3^`@i23+%Q|(7 ztj+=UukChmOoxKK3x)l)G1k$Ovv!q)BG7dpvxKb6fc|itbXf6z&^x$VaZbY%bIXRr ztc%c3JZHc&E_e>Psf`;0%ZEUh{zTv6D-7NVGQBdlp$FRk{(Bp1zldCvyRX%$!$7Ym zXy6nt)~kJ%CdoU$f?>YctyTUg^f&Axn!06xiOQdls$tBnki7i-S-uk(JjkvL8+QWZ zzf3>J#lC@2C2etZ^Z@E{Ba`0DWP={hm#(M55n#em@Q)ObkA3#pu&+vB*cq@gKR*fv!B5+cpdQq~KJuDXg)_^~eVS%hhYbi*CX11iJ=7Ws0*|f{1F^HMnvs`<`1N=85 zS>j(5fylXd33bdNIhwq3nfbIPDAFHT-RpyU!`bcnq`g;wwEAn-J?SUd7Q|(^p?%AC zl2hsW{S+W26?s~G!@A_X)~=>R+;^@U6&Y^pW-es26>_7c%qq%7bl7;zZ9$^glRwKXtLq2Rq4&{ZSvqz<&GUY`IY` zI1(R;A2K}*_8oNn-xJS(ZFyb%dBY*FxuIo9NkRX+&re?Wv>b5o)6kqX#T=3Edzde= zpl){H+0~*);$SVZxbuL~XP{gbFHXCI&vj9UW!t`wK&oh;ruvtMdrraS^xddC)MPEv zTvZ3Fk;BhzaPC0Xw5XqoD#m=Xjf`f=NI)ZRxk}DeeX#xvyaI zW$V?=Pb^pmMOf9@qh9kkCqsnJMKHz~RIiBlV4K3eC03~nCbt1!ts463m=F$pJeVgz5f;G9Pe%(X!?-KOYwR29vt#X9USbC%j2da&Q&`{;g2 zHMlG3+#$c_$M^sJk(Yi5tRG%m;s476)`Owb)670#Llt&h=2<-0XwB|76i4nrqid1P zCeHcns^uzl9sniw?9^&E>OF4Db=2+i2a4Fk(fqj)up(~pN-*Ri?``G9m8lXSY!7A# z6i$NK`m?SvaX8iY?i&HgZ<2& zMq8;lFuWnVeS9A8|JnW9gLL&^JWy{+suThHdzsF)ZKyYG^7yX$iV6Gg$M5%|?nL+B z!1J&Fy#bBcUP+IB834NnzP7)O(2wjoPkPY<#~;d_6N>TxO%WrKQ*zxrIEOifd_cG1^#X8tHU$XoCBP9-eOp>45Uv^5T&A3OJc8y*fH(1$ySh2yKmA za5>`>Ftxu2_0Hrs2?tt%{JP>e2kM?}wJdsl^?T9BwEgzVc@fNo{`TJS1m+#QC{tm| zc?f#(S)rrDdFVG_4UFa{fH||=K|3APE%vq#l^J2*mui^TcK{;mLdn!i|)ZW`qXWkLR=f0P&40)?&wRN?D zNjPV&eRLxA8}iAXjor|BLI)Q8WxT?BJuug;t|0V}5?KECoK5Bv?#)YQz^4%RH7i7# z)j#LK>fr;8Z{P8pXes3Ad*Xw>wMj8+AAG+{6T%v&aj(hE6v}Zprdvr z<^k%Vwdranf4^G;gMTZ$sklei+u3gSq!#xbv~s=^kC?!dbJAak(2qQ#QQ<8iW$;sD znRq>cK0Lp#=_KJxU?=$P91}qaY`^;SpOm!&oq5Gxk7OgT5@HY&Vn)A3z}bR#p-n)U zmgtPm^hF&erQptT96n$9yN%?f!0(Q*z?FUC;9s*b7W$+U{DRhBH%Hllb$hp)Mr9+; zk!JJQm|4Lrgz?LTkp!?%>09i*FArAtq@G-l7DRu{@-2DPT{?s=8yqMo0;@K;$Ln{n z9-yW?GP#TUdm*~1A9=XX&2)ENNaO(W368!!46d6OQyHz=wF`W3hdKBj0mDdCQ&{h5imB>(Y$b<{U878kev4 zXMg}|BX>^!Oz;!f_OJ#e@E6Tx`EKot`lEX4uj&mDHrVX!89o3ZBe!zBliVTT#F-H( zn+KruL{j?cv@-rZ#TYKHwSfGgZjFfaMlgseUsk`=2a4yyxz7cB1my}L3wQBrsB_MY z(t3#gQxOrDm`>!=PfA6)h~R$oQ04))=WAeJdq8Cr`DPB+G$kY%4S=BhT+H6n988Dv zzPQCq;&Zjjt}_{PU(W7zWNJg72TRek$Q7K2<{E8{^W8^&Mc0+r@`^Yopyqm^$c$X< zt;;LBFc(?WZNW4?6a9oVU5TuCKU*Z_R~ugg5>wxACMo3Og$O|HKn0L30@F^Wivs26 z%*q>AXE1k)&0s)1m(5i&>*9$ruro;3<~SpQ-=p5oeDMrmdm!;jU+V_gkxug5uE3m} z@*M_Wb}EBi{M6NkE!;y}2_{@QAqM16M4eO~?65uc9=L zplXmdIf?v+Bae%OlNnG)n8nZH#)mor)j2&bX>dK`Lws%44K7<$67HjzKi5s=FLcfh z9D;;N)g8OQsY=Cb^mraPuYAb6^6xXao=`s9^pY7|Uq#tne}{YR37v_Hx?w~mDah5`3e-` zooi{vs3(onynKO(ef30W(hVhUFfz40Il|3?^9u)#6un$faTR$IN{!qkW!@K^Ub$c` zd+LGol@TEB`fM{lC5PWnQke36InZGbW;@W2`D=WS75Sk0zU6g?|zwlK()MJ}vbN5oc0bQ|#=PtC&Ao=GxlgTR^u;s@j&Ff8Id208L z*8N*xweN1nub!u1OS4V7gFGI`efKZPI=sSj(X(vjsR=lW@W?7VV%|my4d;OaeBff# zq3GTq2jLznujv;@A)?H@v5edfVXudxpE-R6*Kj^YHywHi-1#6?QlkxYvLY{?N8R_4 zMoRRNTm7KJ{rSLmHO%3muDZjv^b8EY$J)zT$biMWN8Pr*b|5)^!-Ahm38Z)L(Y{ze zft)U#HeNU6G%?GNauhefKc8EhlGO$wbPRkidZoa*JBmcc3#2SPSHGl7b-~{96+({Q9&S8{`4}YHInBU*yAES;U+G3)i zBpS3L>95*kdtmNQBz5e6k)ZJNjF_CyASin$t-ZL3IZ+o`6@K-FgW8cvXVKFOpzh(M zQBv{?v>(PDZWu=HP|~1e8|p!|FAGvBTzd`rzBj~@Vn2eO!fhAdG*8eAR~98(BX51j zyY>2`9Y79h^Ik|m?q$vd*B?i`zZ@<0D;&Z7ad-edDG~Y8zEbS(Xi;}V|8Tg*zZT3I zU*4x#x`O)lmIJ!w3CLND8u-G5K5PxAJ1eQ-n3Et7H;UY4YrDp&IK^nxcehl3N*@5z z{WS%qRaoCwv7CFnAcMJs1IBD?pMdyq>+vbpZ(tkv`(U{X3)uUJd@PBG$6T$Pg+txR zV8icuV;FUBwn;wY?CRuMVXe|}27?oI@&%F{gR!+4*wEj9ne`knAvsEqEl z3=r~jE`~B9Z=@jk#^s{7s4F`y??6D^R?&9*)SFQB%lYP24c3CQ`1n^}wJ319{V}(v z4DT%)o-LIFmB``hjX#)$_fzO57t0QI+$Wc8SU8h_Z2GHG|1j_~AIH#cuHF-a%0FyB)7rJo#972w?z93u!lk{}Wpv8R9`T1fY z$S4?$_t(+KoJ0P~Dkp=SI~gQv&J9=degJ*1?P2m??04rq7;4{Xg6{E4KC|LNp!>Zx z`51#cXkIu}#kZ0RI@19=6KDfLtLbNRhZFkFSUA4@d~oM~T;VPvPZ8*wKGB@ddJD(4 zNu5$$y`bm({q07Z7sypx>}(eKgn8Mqu2yXOK{GC3|J}>@ys(xwyVkt~vwO7WM8P=R zvtO5ca8MJ-i%ajNY9uWa%6-YY}3xzP`{9~tj0U|t#VxsAa4BGijF-W!t{ zSpkCZzPO%kF65xbWX^p+U#|O{fU*V7LHPEt*0hHLiBUv6g%!E17U37dOz=F3Z23?S zyAyfBqYgLqkyEvo^db2Jo_8rhcODN?;e0i>_)9I$)o2f#=a32j{dZnm!RnPDnb{SS zXmb$vZlCRRx0!(Ov0Pq=#Q`k#Bx(lAFat?2GG9?{40JO&x)Wx3K(9Jtqa^}!L7(pC z+Q`N{(nV)UhF&(%3rU)~WSj@$b9$%SyGB9WkkruZF%7bh@|^vvg+Sq%j=9c{x1dVT zRr;i65sX5`ginZ~Zc=P=4Pu1>ME+7o;Locg_?b51)pMMCQA>q|e8m0CVgWt+(n&{W z2j3Sy0U~RpwMY&6H%8t5Ja$L@a6Pq&g3dm$Y@N_5eI|%=d_4 zqWI^}P|x?d$7E$v4oC`|OFZ`qfq08b2F%_f2j4e$ED-${X*=kz*5MplbTB+l4t*{s zb3~Wg`+@K_?!Wn05n#E#ck_*b4G^Y;=svu_`Lq5Y)4wMqpu}5mw-uX%^Z5pQ`{EC% zL$-j|5w+m3Qz2SE3H>@$|9Oq39z=gSTXa!TFc@AkE^ePN0*ge(&AUNsLJtnS$ zehL0tTt?xjcePnKq+v${^AnwZ9t>E2RqDo`yo!7DuTw#`){ zBVflWVm(}fy06`zU$TkeeA`dq7xg>z!FHYc^0JQrPS&1L90llWwLLra#X1@s=NY8$ z9z$N@?t^DKmQjaOb~)UAjSK8~1ClGgDWU(#;Pb*~Jb&uS!z@w9Yy8={xzRlotb|=d zm?(5$)TFu?ADRG$BE$2p-lMn=`)zo{@+0UsBu>SJ;pgD0pOE!70fEZi*+#F z^RVI@U_eE-7p(pa#<@(I72dB;*r6(> zhMX@WgR)`)bL?M@FY~G5euHX#-=Hya3h&1-$nj&2X0T&>+>!$j53KL%jbOyQ+{w99 z`*BYY&woLO4>=F#H_hX1RDi7TC)w{*1DKhVzKZQtf!0vv{kM*g7r@RiPr8Eu;|2n+ASd6`UnKp%4{avsw= zZd^mYBWn+j7(kgnTU(oZP{>2yk7?0q~3mgdK+@+H7V=s;_%KquaN{AS5&G+_5sOnglo^K7o9 z=R7!M0Cw~b53oKd1NGj_re7!XL4Ai1zlF*ws0Xk~UR+HBf>^HYj<9a9cpflwQ$-Oh z(puHSTkL?6B$QmbM;7})9m9iOD_~XE8vDx&&(Y0i(RvT=f&S@RM%lyo{0Qynx8Bu* z9Q=ePrrdh4xXA4H=|ctf4|Ip0G0&q;yq`;q4?p+c5|?GH!oYeusG!UX@8SFFw!m19 zyiDt^TkF4pd}?QgCffiI-#Q8MifrP&VeRwMAMXznx~{LdH?wdf`gpNeqEC{Q>fyC* zAe?`FC%fnt`moznGLTzM?8#eW=tquTgjVUo=R;U${7BD5e}~!fN1ygZ)QdBi+J)yk zgSCXi{)iW-vms8EMbF4$&bC;1d)XwOmj@R$D^Q1ZW~ciY-m^qH*3ULU7H|e_3Jk5YqWZaA9&ccwaE;rZiAPpw5s~iw4g9`Nry~qEUCo{7OLJ zD%NW`Oa<&$E(0;ol{BJ+I%-+URl7x;M;WS3(N3-49MR7-`P3OOCJ5#9lhMaoO#k|7 zZUh)cpDtjCB!EN5l(m*8=3yGY{%E9e9SB%U^Sa|d-1MffdMI4E&`7R`=20{mUMIs(PfI~*Pd+s)8f=x_Y>ockaus+8? zbzv8B-xgIacwa;xfu@$>+<&e>I_BMYA-NxHXsF{s>phs{#k<$GVE=Bd>lgoY2~3Y{ z4)4O8F+v)ZeZ&<77kHNA$7X_+Ag(gC<*)%-d0cb@>tBk)r>A zawH^Ed@K*F%M#AY`{MWfY=SMja0~K}CcYN4Qz4I)k$!@^5p%db7e1)gBA@39XX4X( z@ z5p@ZfF){SGx5=9bl^VSQj`tdO71AFDN7}2E-{%TJ{R88dC}n?e-0@rQLY)RU2CKfa z#N2NCJys`b8B@S=-{(Si+Mi&o&dBzzpAodpVlLM0nFQw=sppM_tH{@WBK0R?2^{nt zyJc=*|Nk%eI?f?5%;Q!{I|Nr$0 I|Ie@gKSJOkr2qf` literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-05-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-05-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..956d3b4c510dd4e42c9fed9a25424e3fb014d024 GIT binary patch literal 168332 zcmbq62V4}_(_rs4_TDQB*fnuL>_J7rUd{s!I4OrmQH(}S>>7`R*s+-A#M*X6DVCSJtIx??N^kv=&B1M?`@p$rwpR(z`vypK^m|LOlR`T9xvlev0Vz%d0(l1-ymbMZAg#!m;1>xD))MfNUIwF1{>p}YSJdF8 z(+XnP6!+7Igc^(y_%Zp;wyQ^&uD)}aZ+(Xj^&K6%cChc-zDs>adxuV4>j!!Hht#(l zRNpSVeke9_fFUTC4&k90xa z;s^EH2I{=^+P0G;0<^}qy2+tNt;Sm$s%@(c(gs9?=tJ7#*CB?Wwtegd4|QyBZx^Ty z3Dp_x^g*GzfVRf4pthvJhBl-*ZM1=H2uF9FQLhVe57mZ-h+Nv(+uJ+X*>|wBcW4vj zRsY*jN(Bb%ky(Aap!)4Q*KgC7*QAEmKhYreO^6}P=p|SH-wy-aoJmKPb}w-e{ zh9JHd+3!jQYmNAoM(@p&;QOexW2c}F{sA405yn!Jy!|>l`cLq43@_C&(96*=*w{HJ ztW>a{gLlM)z;G`wVtXY6QU7Q|Ixm?b7EF&HOljl7fsERQAAt}OH*cA|sE-o7jUk9=D}0cfaNqb4*Wn9$<&=WEpY z8jN~vkS53wpwkB9=XFK+Nk)CBPGblQ4Gs&{pl|c-2qO>zF7@rIB7Cskpa}{K)aVVN z+7N%i$%`N?i7Vtq^+Di5LXCQF!MtoJ41uHVCv^O@0R}>aeox|3J&~7ZfWgaOa19X~Tqs~V^8A14Vd9)2S8YbwxLg`;`y)mS%)+&r@gA7<@FmBz$A3oJ59NBAjk= zaDd(m?H0xH66Gb|6Wvq$qWWe)%$r2}N)n68Q%U55ZV{>p(1q)SI4$Vx3%-y~4G~5k zgmMV~XDmmMrHE)>)K*Y#ZIHJd%vpIGiS&#*Z2*QTy%!QS>J9jR4T^=)8(qM>jZ`0k zO?ia{1Zcc)P|;xc^QW-Xo~R6@O?ot1jW5~?(HH&{4-3+x`vwvmsy7F3mth{hx*#38 zgTY8lOBd?p=RiP&F$VIwd5@~Sr$m7`jtow2@RsOOKTO0=YK!ePjE)WOL&z;y;AMzgM9h# zXxqa=becdtMpEr$O{kyV%RdNZMhMm}XulCS7DmudE>DmAqPC!*rSZ{vi4Ec5ovKUl zl&<#_Z+}g&Aw*Afir=!l8;Wfta{3r`6Nv+%`gPt4Nt8GZL>x(05lIN}Bw7k02=aU< z$y1-<<)`=c>y7+8h)(z+1oIR#*(e`XSQ_LJN8r<4;zP$B(k3M?rb&XSDs({o+#0Mv zf22g8!fT19H2qvcH0W8HU{5b0bSr368^UijJUl=0(2+#YYe^sK)&dI}D~UZ2JRc)= zu{d7wvcSnz@w;wYFxU*$!HBMg zgSEVLf*yY{QBi5G$G1}kvuF>sH5|smhik)i?!h>wBKfc&VFJL@g(zukrE!9c9Y$S% zFuaBY82E%1nG5i7 z6v8nxCW#4g1|EWk1=+7uV7>JsVRKm4XOMOXPSPk@g$-K5NhB3;bPmAhD3h_o9~Fz$qXmpei-n0B-w>5zgbE_gF7S&atofG&hhw%S zoUDHd4(SngN_zaT&X4O79MZFZWBQ8r=ad0@bbm%Rlbo;6ac0VJy*CaXB9zz$CmD{? zBK__aE-04tCmkzk{>gub6ElqRp;&g}XLLjff=*;#pzsnsji=Vj-`8je3nJ-1Z@ZK> z&GiJ@G92IdFj~0~c`)s_ibpzuq`Yi?19CrD%0|6gt_!HkM&U3Dkd85zjfn+H*%&-k z*<`)ZoLtZagXgIY(RmLF>M^W0QJ+G8R&lUi;Onb1QXIaIcx>SpjaPCXh4|^T^1O)Z zfadOkOr*+S#IZZjU_gTkFc^Z_dIPZ;B|J|P=RuQ6qz&=%!#Na{|3^1BA_8`1b1Ff0EF@tT;z=A_Ym5+*D@%DOo`8dN%`oJQipD5; zZfA$?Kx&jSt`}C@NVTI!Sb+Z!9IY_%#5(anDJoIBiInuGv;)FFP>Y2Rns)MSEaR>Z z3=Yt_`(Z*#Y}*p2mw%u(XiyI^TV{1<35(_DL7u9xmb&08p}_`{q9N7*R}Z1+DC)lC z#4xQlsg8(sUQ2vsLT!-~Gjqr07P?g8Vp?g``U+|hY*6+ku^+Jd!gK{rSoMJz8nC4r zGy%-#Lv&h=UMzJV zs#C+Kb{R5BqxHl@KA2dTT#DfJP;7$E7+?tJQD{yre59GACFKsW23`aqNZpy#mT5eq z*5eswh`{cMu<&DMY@~gHl@l*AD9|+mQj#XjiH>Uy5mpvRd4&h!i+4Di3KRl1)dA@% ztdUI72M}8$(CE)heV>kD5>F8}NQ2WK{6$y8*nXw;JCUwn&7|%qnsYv|IDTT;-$x^* z27Es_e>biIX&Am}KQJ20f2#)lvGC#jggi)zBghR*B7wowhMBU5}TDE^iFNa#~4E0!{KQ;1!K>H@K%pbZtv!~%Z? zpT-lBKQSe0#<(ydm6v&Yr1M?cf0D4g6O%aR+8qn|-U5a1Ubpe$%k zq=d)C!=5ZIIpr4z@R~s0p_260X{FwO$ts^P%jDaB-vPtfS z3s44J?&4=F0`5-9hdZk3bAn(nfVPobj%Y=eVA&= zr6GZqJciRcgc!W-2?HL+>31nvr(+`xCj4Mck^(xAA`anSp}*G4;7OK~eT-O^^l-<| zq2&`VI#!f!u5-FpMr*BLg_Th&*L+ ze~z$=rX8-m^B=Rk5gPYA(1zgGEKMpSj)eruNNVjuHBO*S^Z0rU?~pK0uLv)!Wso8i zv)IPcrTs%>#Ua{(47S5V*?kUif}r@@4AxQO?%r1kn`;fWoj_MuVCMUgneWiH5g9@Z z0a!dl!YXUgwC;jU^bYgFQ39txA;^)BL6SxZ zz0$b1P!r~22*G~@pZXGRv?Kd1FbBu=IsbO;$agIN#-jceaQtA6TLQ_fL}v^n+Wl4> zqK0Zm~f?=Pe%CsiiM~CD8Q51v=W%WQoEzJA#9P*kgk-H zewHSkACS=kt5cr1T*PE|N_puRFT+Z6I^?W`rMZbd$SWYsTc`Q47ZNsx>PS_B0Ck{+h|N6IQ*Q=5=ER_$vCtR2@b!tfSIhA%gw@0A-!P% zE7PU*B@6kPi455kNd_@i@6?tF9@$I9Z1a@hNd1!44-Y47MPYX9S?Y(@-95FqKb2Is za5E>?po1_B@aj_IMS6tR0aWma*`ZnE@~juXMj%Jo=U15&|dDxGwmAm{%1=${TpijBa$?znnk z6$T8gqesE%xXy3k)=eh%=1X!5b_X+S|8(q8!do;?Y+rk-8fmYT63@#JfIAG#%Bdo* z9BZgwC~@)BK%g~Td2NsSp%NE2pfeKz60dE=HGLYRl<S1N*p|m5**=$r&IXY!e(uP&C7eKXg}~Pdjw$;uB?TabsX|x`;M+Fnc?Ic zBWNw%45xtj(7py4OvqXRjk9L>Ulkjuj?8cwdr^rCPRLYz(K@~vJ}&j(wrrB@ngsKStVdg740*}Thz3`&_DdBh<0x^@b2top$9Q)`T zOTuG%Qh=5Fk;W1UmX}Lus5}m{=1yaQgd-$MURV*vywH5ilWSKNIuH{qcBmA1$?FFB z$wwVQXj7ClF6J*E#iC=IJf7w&pNJ;#Iz58+5uKMvx=?t4U}LNg(A-Iam#v?qZEOe@ z;yzf$VBY|PCq`iL+@82!L9#sBE^=Z?cv1gW;PLSMQ6nCR_$oaIMD?cv@2wA%j%f0^ z-B;k?*%x&jx<;qM2WJH6Jz=*55DnuQDV;DA5%fgsVEMI=bg9fyso#9@ zkfAj^nwO~QQ|K2NlWn7_FVb?DF4WIJ20MHaoT{FBaruBBVd?%W{(Dva;(XY{ouAC} z`%T#SCqbm~S0Q)Eq@H-JS@ITEUe*2=;lJ5eBs}ZBqS_xK-Z%Fn#mlE3Rc(&q6<~9! zeJSGN!O5@gOI00v`2`q^hG4%4tcuB|RB#-dqQhM+e$GL@SS+`Kr|O%yUZFL*`$sTH ztR2wYUtu@FIF%*3Wh%)+OfMzv?N`+=Z_avLb0I}9au)z@hSBk6EyS(vQ=*@*{(FC4 z{798AZiz79%p8@YYO|{25QCGS-4={%-F9gWK%pasZ$UAP&KL5*XL?5&#|p&F#|Kn> zj**)&BZd7H)LuVrh?vyKIV7Jn$Et(4^?T2F;!NF zV5g)VbnKz?Ooa^IIvv@_M|T2a5hWx<>&p*aEUv2W;{bx55u))V+m)s5eSEvA?o|7X z0&9r0l4~gRMfW)mS;yb`LU5?RsK#`%|5;dkk_?ySqZ*eP9CM@nHe98_vbd`D!tk{) zR%|ERR@Jzy#AnS!VQU5Ani(o9w`xpc_)am9qMsbuSzOh)%-{y%aaeDh$|(ql?WQ)a z8cP*4zCJ%vjTsCrwHc84+)_2~)!}KZ2s|mz?C-`qDg1*BllXgBRAV#65x0N;7u@`8 zH9wxXr1))fOi@-m^?;{=+1aTwcTkNdBJTftjw#Z~Z;q)tmWg=g!JM_zeDU(}4b{1m zqP^;Vp_X9mSCZrlP>=Of@cuIgUt1yy`@_6pGeh(Y>X) zqj1h?xcemc9=-Fc*-~3pz+0*O3w1cT#zn^!Ra{y}K$!$Qx&BFGmnxnx-B8$pFI*cTive3R#&|vFX*5*&$BQL$#cr@!bY#;3}1r5qoV@ZJ52ZK+2M2SyMc97jv z{J{%pj{=WNI$C_G_5nI1*(uCon&YYWJFfDFl0_y3s-Snu5dYFTzd~NJ-$5gZX@R3E zr!HI@Y#@iyFc65S=5o>;NWn{*o3b4x8xEbR3VJ>u^%LEXs!mJlFbhKFbZBf+&|yWP zE7GVd9+#;nHxY9>1+K)JL8Q2h-c{vS<4aC-Vou1H#Z~C2`=5B$M&4+yB=WU%7%X9B z#$xHj!ZuX>*pd#_60Z?+JE7yFLa!_hR!_nTxGEjhc)-%3Qt;b0eEEuqxh!-XQOH6D zSN3u(@Oi+V3R1lh3#joFI%wez@q36BUeT47{ly1((jm z5qP{p(F*+F85Du;?IG~O@}W`?eeUElgZ!Vo=)NQw z-cLGkA;8M(n5_N;8Thq7o(>P|+kDV$PbDznif zl9uAQ8je!m11O3@-;|HsQp!VaE8QE%^02&6^+iX%?yqZKEy~Pw0Q_^vXobw z@ex9l0>{mXBC&d6_(+B%=&6omM^@kwmANO%X+9+{-AzhlqQesTQfRN7Z?pO&!-9B( zUAga*u{nB9fY8-?dGSMuM3*@iqks$XQNnTZegf7%dH%STCY)FmWi`n)T`xydI06B<wzAWwkYEGZK+J2E$6@Xl zDFBCWxq!3830d;50&oJznJ@uI&bjEkhuDjnY}zp9oE{?|U869^6DIxS?3xf$si(5J z2J1g8Pl_v=nIJ1C@9SaxRShq|Ycek^-$v(#lD`&=7om#xb#0VA{+rq;xW<2JBaitX z+Q{IQn>B;C7#o|fYhybps(n)%$>BhJ@v?qfKk}IWp^XgQx3;nUe`{m=|J+6%^FOqa z!IRra=glFw&DOk_K(K@;!{Wh`6Ert zj%IZfXGE;<5zpca(7cQw&m-vkmd8~|5(t*iF44I0y`pa^4l`L2;GJd=T=JrI zF`ft6zfN&T;1>5n2{)Sw^*fp;bzp5m9S5)Zl2T5_8mY`AgArb|&TG+5nLjCr3FjM_ zlChw#I7&vTYq_e;w?tl*5Wsm{=6+0SJ5$I&X|^!P`X#M}^Ke>kZw+oGz#ZxMd>3}6 z>FnMc*^n4a^+neMcszMhh)El+1qgS}^My8EF6ZVGXrt)5g}@JwjT`Z3x|c>Q`xr^} zMd>@tc&fl<#bdF>!;m~*W)4foVxBK=7kCFUe*v(kHq;NRGNID5aHKX;|KM?$1$m3R z^_Y4ejT=0UumL~<7j)5P)(lY@3fQlVF+5$f;ulYs$wR5n2(aX?XYyzeGQY=bV3D@~ z|5oY~ninzfV$@|ilHxISAsTadJd97`tzWbX&9_qM2f6mF&?$wK)+_|Y@Hjtg`!qd1 z!h0otMCaH%AGY7wzGmtgG|uqwf%wQH#_x#p5H5laN(c<`w?YSIzUHk9$IEjCPytUu zD;UpH9nVa6WQ!(UGeuruJd(gmJ|{=lok+r&) zjE86DWVBw(>lim>k;?^jLDFML6fuyFH7qPUKhOqYQWPMp_3(U5vc1uGg!h>6mlp~y z?by>=to{ylMPsf7j%w_X>#;P(Ti}WJ6iJ)ukcXhZE>izk9}RlCb8cbRIz=|BWb=!^++C%VDQF~5*KZP@YKB7kgiy_qirAa zHk#wnz2|)0ImlNYLm2(g8i2UJ1rH5}1(IFsYG;(me1Nvg5?;B;N^*{J4)*r^TDY^z zfL`H3T|k{5p2{Gb#l)ji1ee`wMr~QiQ+$^X9vvH$c;?!qwtSo)Ur686ahP0;8AvXO zu%eGr2utIX468g8N7_;}MDH6YjzhF9GCXeV#GDeZ`o!OugE7x6D~%UQ>4uKWmVBgZ z$3)r42q3)ZxNM0dU4bUxFgcMWA8Yn|SQ^Xe975(Jg?kHqS;CsFCpuk_=+d=WnXdVG zAfGR#ZwIiv^n=Ee#wZiBc1B{41fO3}A^89sQ_TFBr$P3omO?q3LJTkq1OLGFvo>Hxk(mn$`6lemVn3D zxLRMZ{6sM=+Lj+4(>xJRo(HMvgz{7D7iMgY=DDoBP#m&#nI4H1^e@Mm{CG_spyxL- z@Ho!RYsHZc#8>_}!Ub(2jui9Md_i?!Li#)|*KpG9e~(rm)f2V0;e*V?$CQaVC&gp# zrKUAUQUWE96A0IN@Ru@#AS{U~bpIqhlVt%X71a4BYKX@n5D{N2K0Q}u9bf1PwOTw~ z8??lgHjXQh313>5w$7KC1mQx8msY6Du(&j*QQ_;2kM4EG!i7b9DPP(jmbjszc)CwG z$t3EC;;=e4FC*ZDQFzR{qNRe4DL&mZO;aYO%t^CN>$wr>F!3eL&*&C%i6_}&rd&nh z?GWN9sR zx+y7esZK50i%;=3HzihH8jmgTlxC#h#rm|4KW-;?0!y2&*2@qWj5iSfBO)dcr4I?$7ui!li zANr@$D6o`xG!Hl9hnJ<}sSD-|Ivvxjzzdg;8st3z6>!xhAOdfb*977b2)t$u<)!{_ z#!J)!xoAPl?-?iUs>o=25U(cu5MR`ukcQa#&WI*F9!clzj0-5_LKF4==`7a93&5rQ zrO+Cy>yBSXr$F6*B^@e{h5b|}&ycX=|7q+U@G%nNlO$;TD4?CHdT)@AR@r`_@fCUS z4@et;SIM~GHYzOLD13w34IN8W;J>+jbgWaMrP`({W)iaPVC=~Z3KIyyZ>`!vK5Z(n z?-@Tg=ZkkVddQdAq0RGi2ote>;guh*cCretljWWW72P3UcliNy$cpFdkrXAAa|ou7Wmt7pDB3{h9ts{RO=sh{Dh}nvbSJ^F z)|WI7R`9h{6)$UfsYQ}%q&05^K6z}kr|^(NTK7JJGSGUy0+!t9im=4id4Ik1IdV<< zgQ=wMtPW3#+y%lL{KGsA=p}gJm)ucA4>X=LF_?j+%Cl~>O=R0=@KidA@WLOOTdCtw zeoSYHc-H!h)>Bc341dcGBfKlf5K@QHwF)J^BK_gzR?B}Fdy^^Sb-Xwe@FSPT)0r;c zkDPp`vAWE-REE2y^i%ll3n;DF|35sM`ZOl`%xQejj86=|0BxYBx7LxIHZK5Qy^l#Y zPR{p{t7W_l_y|D~rWJj~j86<-+E+Sn?+CIl7*ho^JSIP6@OXG)<@C`N(%Ldv;b(Zs zJ5KxJlVx$57lb?Sa6gS?z^pwnG0z$v6SVE+(2;#$(y@SPhZ>Gmy{gT(nKr4>Qf*UZ6-YF1 z8>W9$Ags?PRP03!-)jF*e5O`Go&erkAAki1W&kHXPGOlmi-onSyF%i_3z-^6U<;skLyd8=5z>Ej#c#3GGg(Ao>vi>~%#xqJYq-SQu+3R&^nm6&X~q zipH~$@*napzqae}{1vJH8TG;@Si+Cqg~`NFrJR_IBA$2+EHOW9u{TS~1} zQ5P_$MW*qx;*dX)!Ce1zuFvEx=5&ZmdLQxxxe#0s6zc;>il;|yxPUexKF+C>=n8zg z=M#NZ7of+2mM+Lm8xY94i~^p?j}`DLF2m!gjX#XdDQK9x0B>_FglzuOxi@pUu`5Zf z*h2r6Svs=$v-uedp&nF4-P1T{O&2O=&+CHXF=Lj3C%=Ad*1wFcD`10qgc&06X>bv) zhJEUO^51)F^=bMP_g%cTs6mv!=c`s>xxFpxK#Qi;vCxpM4+5mr}8ZTZ? za=Q&PC?gyj2bg@s0>_$NS(}eAG2McentfF@hhl6jKe-C(W4ew`@@{fbAFBu2CbMBe zp%W%HTHt#~(`P~JtSzNN86Gtrgk$@^*vO(wVJY#;&&g>sAkOtXuB+vaB8tciU zy6T?5Px8~7e0-3McKp*}oW+6<+3YMGSyXFt z_l?q>m2}Nc%~nul*2oC8ukI71XEfwz`+O=BjB{i0x@Q_IY*7zPek;rcwE_H!Ur((b z&-hBE1YTcs++oHo6&!U7C;F!NOh2pOt9h4l+{+)I@@En_vA@;EBPO3yk;Ob}2y#@n zgp?u&6E`fOR1!3zmr4{87nS@&zgm79If>u4zRoqHk!! z`CAhiyHdduK4Q-j6(QL=(#T(S5l>#e5d0Buf+YMI-%{b};4MB9mYj!WA6+ic2n_oQ z8jfE@BY!(r%AwZ*YADF;iVR5-tIBT`Y+p;UB2&e8F^!2{8P zh!}z#q%Vj~;rsmMknr)wYH~M(a0e!7OX;9tNZVD1XZ-j?gNc<2Ifm9AozxVu@l^TJ}>D1e62VXe?8z}}T|h)z%1!N!dOXei}iXqd;10_;_Cd>S}- zIheRnfE*G&8#o9J^SHs}ri#89AZ}xpGY!EWXs*EIN2++#c@@D!v?)r%TI{2|)dC1< z!`I?d8Q1_q@YUjnHD9N)m0uVnE+xfAEGp^&5NzY5NkF=>6r%+BBM20*765R ziwz=#4vit!;sC`HR3Zlvf=gpaLGp{ZQV57d`%vrDhETu zJa!aduafJ3YaSxXA>p&3gY>6)++gw$QtWrf#R6RjGpqiJJVX_bI;~gdxP^8W60x907%Ny}Al(>V4 z?U#aV!3>3`M)Y3}qcB+;V)xb;+(s5fZX>k|^L-c0K2X)Rdg8k3B(2e#EKiYzLW7SF zGC<+*#oC)WT_%p3(WP0P?0tj|T{B_gsTDkG`AY92G^p=b??1|0&HIG*d_4^+hoXBF zIx+V_>wQP%GWSA3rrPS7kUY`4eNnm=!#OW!9d){lCn{=D>d*>r6y&92GBYMw!L{^A z(vRl;Sg=i~dnBQy=8py2hnhzUZBz5fuW6^bR}$HHpLD=O4rY6ym_5{1^k&^F^P|g* z%Vu<40`!5}P(y&h*V;OOb(vUP>J!#|(|WvN=@jgrUq^?^^YuQ;)T8s!k-DGOw~itC zs&!jt+pq4g4Xo2w_^kCf!}4H9QKjE9b6V>hadfAbd=els(h%G0L-zNzv$L1SgKp%L zjuxMEG5^HDk^KZo*?gVNS@(S^i|k*#EGXT#eL`gUI(xGoH~QEUM^|$GFP{)uzP5kV zV$L83=3Euo=7Rsa{Xae<@^oYNZYuL^*51A%W+{4xP*&`3FtB*kyRRunnB^?X~D$1*JO?J>`{1!yTGNp}w6 zy0p5EEyEE{*E}x~=*pppnUky2RfZs*Ce0nJ=QLtlEyE9wZ=O38Xb0-ygQumII}~UW zDj|UMsaoFf6>T(kVO}np%Xc!%8<;bf>iV|sf(p8F>?R&4-)DpN5o|zPoum)Z@zZE4 zdj^<(H-lF(c%)DCqgMA~*0Ig#SQa;}_0(&9gA5_KdTY5yipC5^Rtp?8?Gah&{$*y~Y=LX8F@jgs97@udVt2RZO2p&|I@6Dh*nSH^=;2;-m0N#m!S*?*VQ{L97 zuGzYu0-h>bWo)3l7+ouQsWgsln^io@(`+oj{cjFrC}1-Oq9dlZrQ~nk(FjZU)4j3G zc`GFzK7w0MuC~_5`)SMZ=N~=%^j`i!cwZV}E8V+>vA_zxCl5z>vbDv6`SMq>eWR@W zHjHn?k?rQ|b>btn>FaTX2a$f8?)@zIuxlR*8^tRwa9HLarbsSYBz%f$>wDI3$&--o z1heQT29I2n$jbLMyxRQ-oc3lo1=%jSvRNZs?aa$(USIwyeEt?lW&6Ggk2LVV$V(b& zhR4`^C^@l*7qY3G+!JJ^F^O4sv&69yBhC3vv?U#Lg^Ipd%>q(ZC}YzWP}Y=5WTSSOZ@W|!$>KJW=ggM8nUkXY-fQOEd;WOx z2~l%ACbnDhV@|cw{lZ7EolLFD5=UBvlb#4bk9hO;Ql5N2Oc!AA(uYQP82F1Tn7XSa zJ>keUUbZcuNC(Enek><^PbuQ3it|X8^vqUmdEJX^woE*+#48}46ekx4Y4pbol65e$XfI8TI+=@#}kP@v7bWhM@Y)#o+bXBMP#N zwg+b+?+TNNk}#Thi-Iz85xo%o5c$mYQ-bIVZ$Tp}BXCamga2Df;429motmGn94TnJu96fi_3Mn2g!SGZf)^LC&mc zp9i>mLRyUvNt=xvm*w_&U-pG75U)AEB+RKUWNj{1{LST!kn~rPg%|1-;VxI7m}z&u zBRq@MzxZqMA}(#rxqIt==>$m+9yhodZwHz0i&xR@+{QhNX?wSJhn0{yWYzHH@!60& zsbY9yi-VA(4Z5*req~5p+i=>_Nxwpr+nR}g_4*4Q{l4s~NBML}xnJwzyb}W<@$=e$ z{~k1xOLO(s9f8WG;tl%OYLnn%Di(8fPm9g{O+|i4KW_iqV7PH0zW9|s`{AiOH^Kh# zYB=xJ{k!pBdO~`u+qr?2dqB#PX0VCFN44e8ycOj;SEtQ-!HI* zGw}40bHmz$>O<<&RWs7_+#&narfRMeG>{YC;?S6h5vD?Y`&6hN*Ai0tR^DIww<(bR z;Xv5Or6VEx$o_~eYb!y@oIlq5T_YNv4tezKQA8LdS16}xuy_LG)~r1-X-y8in0sOA z^({&8yj`|~*UQduy!zOkaRe9^1r3K!jt9KMy|5+;cmaNzc;k+AKaB~YkXX%kLQkdJoiV$ z=4tRac4)_{<0rzy&UGK_r)-7?=esss{^mG$uiL=zCvA6gkzo(_?b&^sd){jNP5UBq zxZB|a>?1h+5^%a%=xYNf<4^ZE$vI!iM#+K zXBBNaHN+8aEh*Wi$S+MGw_Z-nKW*(G%j8#Ldhb1u`@wn3j0OI1tI+tGH!F>S$cP>r z->+K7B?Q;G)6u3I_srROz;!pT%5%ADkn-bS^NP+$Lw(QA3Jx0#i3dXd?6f@`(toUGJ25K=vSu7zwx*g7 zJc-=3<>$^B(Q9_~O1B4q!Yuv%mQa4sO4y_GjM5J@91pfNK-y#=!IUdpGqev=g3B zFRy7;KiB={Eo}XV<^meg82?UmTrVJaryq&HL$6oeI?;BXWg)j!k_?aSLi+{#FE} z{d9F$gVNe1h`!{=EFVhI7xP7jDUUi3a7sH;%o;?Fezt$E*Nomc`mjAgu#2+hvs_^B3kdWGIQL9T=Az{Rz zQ&(-`A*oDMjpNr^LE@n7u0Ji6t__qg+G?x)WB z-zSLIdO!`EquiTehX%b_>B&8sX1vt)Q4AN$g)YqWY0V{EvvJy==FLUkxOj z|G(@1bvVb}i;N#LF=rq=JXpVb`GMmgdg}0q7n%DZCVbP9x~ob*=7A9u78(`r{2zk1g|n{v(_Gg_#KTlmH2^!E2E~=^e?uF zOD#UFu!HSzlTFaeQFBA*nQXfMazE1K$i3_Ne#)w!2XdM79?cv%qc4|SX{^te$wMLb z_~Dhab2dZVv^rV8_r~$bW5)bROA;Zy-HrD{^VUM@#8Kbdp5G5i+kc)NHRK#5Z>e2# zK)EDH+utbWWmacMf4bwc$C%fU-t*TPN6U|c)SrI;G-S|XE^+Rj?O^of;-eFKFRitc zOS)RQRf`|iaxbQC_MX=KF!y$Bz0vb-M{w_KdbF$S_5fn4tR0b_eit5{X><5`mno2R zx%yuZPi%xIm4jE-y}KMTcOE-a`$RNkt!VRd)T^41y*sMv>e|g9yWOad*{c>o=9!jB z0}3^UjQ-=_4=J@CVw?xqJkU5pVxJ}>N80y;q}wgFHTvQXDZT9-K09xQ#LBB8wPUu! z<0hXTe?I#dE^c!#_i)?KT+HoiuYzav<35KU%9{L_E0I{z$ zeqS-{)mez`)yygEbPhZ|8P#stxon7AeQ|H==_hf#T7D+jcM)7%=RIQOuR&bY?fSu7 zgDzagryKJ}lv>QaZ9M2;gA?z#WW$i>d)A+UxIT-H9PZZ!;vQA+(y#oF@NDqqLvMQY zfvir`E1g@k8Zu{WoHJs8BP6eTa3eLWEo6@faBsqK7U$gBL*wn?UbkhA_b-8AZpG^906abEm14${gu)rPm20uP7Xh+n+A zGQ>unt6gc;Qi$ZPb?tLK4=&sY?)u|0XNdoFG5t)>=@8$tp@XJEAxLS`_+qz}Pa*NN z&5BXsb0De7nS`G^`a;4phw`U77lRm=C9^d-<>9ez&PAW+#ku%aJ@pTI(s4G%PVKVKUc3sJ6}TFy9g4DR>ZIOoR78t`bawqex`mEd8? zw7KikaUAh-9aZVj9BylAdq?9+SMJ7^A2xSwUmw!DB%c`7C<0Q$BkMISQv}l8|E%1r z%SXs6G|z8o;T*^w{7;WJ2mImLppWDd3aoTDuOA>NoK9j<$~=BmDlP;xh+B`iaKp-qo1~PtF~i z9k9{}@g*Pk%Jg4_az5BOxr;A6DD?m?X6}aQS<{kq(TliS2Wm_jRdqaEcOSK^iF*Tx zYxKW**IQ>mRP$oz8n&$s(WiU#AMsCp9AAH2Z5;9dZb#*A>pAcZ-1}`|+!WUbaBijl zh~{p+x%n^0gdC~ZAC?W(y}oi`Ew?{4@#3O>UAceu>jPKi#=?d1w@TSR`~fcZF!mnv zXec~99fd4n@MD(KD)bB`c`<{ z=k1hFdKbvPY1iv@&u)c``sce8QwdxDtwAeha_<6PuW&xGm;2J@Y5nQLQ@AfT`c&9B z{S5wnl^3?~w#oKV)vJq6--hH#*B+-_SpX>mi)D>;Di0a=t3)1}(G1c?$7=etSqQ1^ zwj4fXME`5PwNBpW?vS?V_R~=8$J_?PrdM6^1hSsE&&xT`8?t*uHP3Bx3F3~9UHn(( z0*KemJXhqD8^kV&(75DQhWi8m7z)i|A%5@wwm&>J4`Pen_K!dD0MaHr*t)uHJIGlD zy4hJcp0`Lm_~+-1@S>e<(}{g_@cfv^k2eb~f;T1I!ngMw4KLO-`#89C0{6eB3!is; z5(#HEHy*XFa!ttH)@aZA8K2-qzf#B6uUG|H>(4n&SY8Y+9xwN0){_t1!(Hp2j4K)i zxx-F$t5f6ygRG( zA+to~=$YL+!?Q^%T>j^D0UkCgU3cyD-thRrx~_XNDsx#OPa5uT6U9Z>Jn}a4XgHU- zGkN^EC#$&R@V1eqANS%i6COnNwja(#E-7`i$-r31Z28+?GduQ!^u5EooVvM$i)(es z5bF6Sm%L}#rqu6TVdWnYH|p5!gzVc@GJe%AgRHl=wr`oQ;nqC4|L5F))8S65vo%xt z%!BQarRTaQv~)m0~byy0ysJD}W6_w3rHvfZa{9eU}AsY2xwqmFI?Q<=j0 z$*tm&O{Mn?uyYwP9`1Yf|8R7pJKSHD)nU_wD-ao5x4f?AY`FgSneTcwxCyswcDC zTY~<~n*;wWsXP1od1c^yrJJi_XKjT`=NeCNolzSy4%=7z^2r7=OE*5;!=^N3Rz=+XtZp~Pk|F4rBnCd>7!;srk}mfRj*}` zcQ2{gkaP7QH|1&NTSXf}rvIX%6CR^KTqqmuxWx#We`IgAC!c%u8o%?V9x@m2ofZ0K zIOe4ZKkkcf4cUGBPOE&e1*9eH`76DR9i-RRmDD}-T7zL6i5lo zJMJ2?2vP@oZeRGR3dGNCeqeFWc98hL%gqYAUV(%;>Aps%FA$fxB8j_E24c^D|7!4# zD2RRAJ}K_O6o_(3bG)9=6u5V1pPs4S3{KS^^Vzu52mV=q=0U}hui;8%n*|A7G5!wp z9n=1YK9F#<>VW}&zQ%a`_Fck~Jj??=_;rjCv9*NJn+|K)4yV_nd+4SCi=;Lq2O@%J~$dz@? z;66EqcUaxSn|mI%wCrDVja=^ZS%=TmSpb>)dw<-#urZ{r+_|CIf*i;+tQ>x7)=bFW zU+m_Ta|8w~#BBTJnJHyV_&8q}aLpZtTwF za(-#>^U6M<+^hS=PPy+m2XXhpPsJDS1yB0kuI*4;50CyheB{!u-VnR{$vLUO@!$ZHd2!pKn6)n!jl!B~w8Pk>}Ooc4%sHRP4FNC<=Zw?I#_zB|n{^E0S zWk*PAp6au{)~}FUYQt&Yq)15q(+PaazJ$bm)z{gK{}=8w7_j^3H7yqz@97!1Jd;ab zQDbuMj>TN6>x9Kix;2EO#cWJ#7Y&Bk(F@8|-uWEjhP>-uEodLa6+P)&Ywmk4b?fxR z#KURa<2IQu&bN%_ZdI%O_rD+7bBP}D)mMN2oJ+mXs(tqEOXezIRV$k_T%n`O^VLDrg8 zNBa*?!Mw74<$gJO9B&4=7Fm-7nNt>4ExR*|OB(uV*7a-2+}&GI-4+!s#{E0$qua87 zo^ub~efmayY0hQ0TIDvPfg6|G)Ia2}xzUh4_pIZqnXZuGd2d^%qh}!bkG?|}g}K4A zT{{8}{BjvG<~=!h!S+4mgnpO4WIg7Q_0oTRuAG z-7+|?{`%eSsQXwSC?B`z))#-sIsWUkW=rcpR?mp6Vt-@YnGmx!a^(`N*A)G5VQ**1 z+;QTCvD#h8{&DOd^BUBK_*SO}t!Oa@l46S=KdHM1sipoc9=mWfB>%Jb(#mnqAz||$ zMPpn;A+Eu(NB3>+K=iv$=Z9rBghx~Snh8}wi58l_cwfXxP zJXzTy>e_{OnAg6K9^K;*JUF~Be%PP=;eLyn6_y@f4Ns@Lx!p}mfVekZKQ}G?3nV^X zJTbJB9ugY=@A})Z36Pjm?qjN!!CzxKrWbH(nMp6-gS~ zYih~urlS4qVoq)^Z7SI)%Ikc$#-oc7$pKS$? zUsoBsxOjJnOWQScHIoS0W z4p%P6pI?xDiCYr*dBz_Vhr_w;EpGL4wS%PZ8jj4}QyLP=b^7FVqdLS@zff%P*wyf) z^v1YDcatIZjQhfNN0vZB)BnYHZ{i3Uf1b{(?dt{^ZL1dasLY z2e*qXdy(=b5F&fFF81Q=RJikg)+^rzE#Uq<w{Nz zygmcJUiY8VF76;~@`*lvtnpenlHMh&y!R_O`101FavQqCf$^WJHBPz;^EEDS^4wN) z{~NG3ael{*+-bwjA){xca2vb4Y5U8%d2n;+iXrvZ_JuoBDwn+4#|END)-Tko=4-h3 ze#e5Vms&$q&9FL-H^#y3uuLc0F;yYv$(f)3`Jop?A9-%rdaDUMuy6UYv)yiZTy9p4 zX0zHt+_efN4{z~-ShvnzF2Pu5@oN^+|HoO7=8-$S;n6%uy83&sUYbh~pMLk%Pj~l0 z^08Wrw1(l3;j+78tGk0C`|h1Svmg3GcHZIk@4oba+)?kAU#RgL%$kq)t zUMl1cSsTvvY_?1Td1dG11#DUYS=B06`@Mf(tcRYnTRi=>$;Ph4?QO-!n2P=58kzfZ znyFmv_LYx&Byyj)nsq9)E@CP+?fITVzb2Y&0|xf4wfd;ZRzIx8m&A{z(!EbbOt{#~ zWK-A$4qR*iY4h*>F=fe2NR4>8@A2>`$hdxe{M=dSC(Xuo{v7ZczqjYU8=ej6Eqt5* zJaH#v7V^*z{BrQ15RoIe7x2F%{nZtYdb_Np}ZPv;Vlb8wm0XNO40 z`8U`5(I9N^^Izt~#JE9bWt+OiqIyBb{J-8#KjjL^`kzKNyj&L&-t{Rl?4%bYK4`K$ zd+~cnb!l2-MCYyWbiv{Y3%we`({bO!vX!0S(aj|#77Tw5j|}ApuFP8kPv=(LH`?(m z#H|_q%FgaIBtI;j5?>4JiH)|5+E927BpQ0<#AURDq}Oqtx<6MzYPEk0wd?;5Qgip# zZPlqFWTlLC2s{@JFJ2B`V(97!FV0s?TRlJvF9OTGDL11ef$@0#UaSsTm8TX|E2IewAuGF9M{70z1z+|?dJ=oTU}4szitSo z2G4FB)vktv`X@80?V1AThfhnX*0UHKUR(6#gK~qxbi7kW%=ge(|A+|YWuUqO>^XGDq-D*L*N&}8VPNGZp0>7D%=hmV1gP8u1S7PR-3f=u7 z)3vRCt#h*=qs6Tw4==|;`n%4jFCP2^8N)iA)3{EAj2qd;;}4x7^I?N~qe7QL=FDIB zci7$-vOHhk`MUv*=l!Pc@21@h*`1eODVwnr>(aTC9woNJd}8^~_<$mi?Em|89~Vz} zcH~7~x%smoX~TC{li$C9XCBoa9#LB#)`-`MQ4+q^8Foocd-eq&zd# zPVN&6X-hZ6>Kna;jJhdxF8g1HtiIf#UL`TlXqu6_>5)I=-YPLZsJt`e^vt;BIRf*L z$fZ}F&EE~VKMiWX+Bg_;`wcEU>96CEd*zu&?8dqf^&zv>cOBE<-th7v^_yT_WpjCl ziTyvqRkxc-^J+YYODlH;*GQ}hk<0e4G#x$yQ4@xL={9@@L^&Q9Ug-D*h}^I(ZNgex zNdNR#OZcleq*r=0u)-J2Gq;s}@4d$dk}9?Avg^=gNZNAcTDirpkh1Yg&9`ba2;s{_x-)YL6G40?}jRg((a&;LF1edm1`-a8+t<&n8N~NH z74oEiHY9|#x%Fmw4M^~VVgCrC_sH}dEQoHxCT|KL{19+E=RGyYyz9^!I- zdfBPucJ$}cpVkcXg}9NOTjp)s4G%~4NL}$v15X;3zdfuc*5k*w=rW0Og4m1ArhUoF z;I8(Yvhzst5$?|2HS?QRTfsdEtTXXrz2e;M#m(}C+?_=gKffCi$UU0WIqur{n%vzvfBdp#aBuGVheGA977ypP z`1D@)_X|(%WZyIM!r!jsPCBmsRI5=0H@|oDs;4%*gD1bwOmDu*8y-zv>{@+nM|gPa z(8*n;F2Lim759aX!*SWS#fTcS=0eiPBTq{%c7)Vl-Z$!4s~5z0&pz0EWCp}6U-mSx zxeGkJ7q!s#{zQnW+kV=JU&}$vy2%|%?f(^GMsLdb_m)3Ay!^akVyh&0ym30WqQWDH z`RKg3Lr!zJcmLY#m0{cAe*YoQ;C?4~aG}j3*H;I)XlQUF?8i$G{`=)l;eYIf-(1q} zg{*St&L4Dpa&MKEdu*Iu=)3v!S8 zeDGAsyzW(tP?r#rf4ZeIsc;7x!nKEWdR|?h==M``*DXaCyy* zJ}zE&Id@;%N=<(;aQ8w_IlTPkG^9=4IBcb6E2Ouczi{3?56E~}{&dH%I*{J?tZ$VS z>ml9Cd4DI{>5$$Hj-Tna3eskOK6yQ4E~LzAGh=?Yg^==sJKpzwTS&R_KkbIAOCfF3 zwX6#_Z6JMW?PgBZzHo0nDy?qhIFNgp@UF^(uyWj|&W<;=Kc46EIxTrJt6Uc@ZQ7d8 zk*C*knbH0yb+s#Ue=I$BXv*>HaHm)0%8U91Kvb8J4VwC_fTJme<~4;^+?}p3f9`V- zxadWVznJdN;Qn1%ct^$$q1>*lWc%xPFTwpY#jB2(P!1ketX4i~tuI7>oSmiFeFl!5 zxSCO`Tvf;(S9!|D3OEjy$gNlDw-S&!_IJmM%U43qjLwN={^^19w<^Q5v*tk7(n6CV zt_EcM{3Y^Su@;bWEaATPm_1}TT>ks_%uSFxqe;sHC9qCVCdrsr2lIqruelfhm;l+M zxo4w$?S?FP`FqnFb09NPd*a`|n;>Us>t1(a`$6X0_}dGA*#WuLYy%wIU_AaMBsutY zf5@>LHGN-~Y7lv4vPYG{d*E)nH-!wr+u`1aSD6k)alWwrhb0Fl6$Mkd#~w2hm*aZP zlzOFb9sl~6g{7{Vu&xSp^Va&M3SdZ+5}GhE83FWGScRk@g7PWJt>y)<`!^VsL7bPu?sfpw z%`kM=&*^Zl<+A2m){TT{C!6NaTU3Mx_h+A|*yRR9*|=};8b1IIk1ad!mZLZPdv$E^ zo07HR#>st~j^4QokN0$*Yx`3KJU!T}+>d@&;prgPHGMbq0GzkipLpsKq}w`Gy6N{1 zZi*PR-tQF7KeBh_ML$Y`XKfvZ)xNSH;>+9J$$rrY5{wrnryO_>DP`7Wr(&HjdB>lz z!Bw%}S3G;)?Ra0v8XE9q_8Wlg7ai7y559-<^xe@Hmtej1kAasj>90f1@bIa>I~Rj= zyL1=N86)74=Z1e`-!_M*2~}6@4nGI6X|ADZ?HnQDVZ*5Nq>g+&WXw#59Ee#my55R4 zxE}g<_`TzWUqkevPa)68wKbJC_1U??f1|0){?V;+BgUJ`MQt~%D&lS`w{%xon=*N( z3fEtJIr39A?(HuvbM1ronu?biXZu&r9j3xr`&JiweZf@XbIE&yJKCGd+_t-y{@}2w z^oSmdL$~LcN-g?vRrT3mH9u4&O4Cmw+-V~b_$tM zgk(iaqPojUq9G$CiAt12_@N{vqa-6En>2(-l7#0V8QEFKKFhI=z32P9f1Q7FobmO2 z?)$nv*A<6a0<>}8x1&CM0v!{l7uEUj94T7kGWEzBh)Tiy5#z_9-J$7F`omCYA;_jp zRbPkJ_A>U(w_ZU5Yh!Nb7gMNQVk=tA3WEmIi8$eHPw?l#BAWCQ`(<@3o2hPXSVw=F zl6Ma4kLg#ObXLRhdFo&qOS%pN59RhOzsLsC>b|rV(NG}m`}g1*nH^~RZujPGV*uTh za|hwh6b$p*TX^L3!x(=_U7O!67<1y35pVZ^v9CK%jbEYQeb)Nco3GN)vrV=_?`Iiw zjmen2D~^U9bHC=%2M$1d!=FhXvw&J2-9|0L_fXsV{AqCJBWTuRllHaHhlZ(+sWXRud(I8`GIHHZ0%x9rh|dP%3T8nPr*tP=K#$?SqMS*ixL^*0pnm@HHh zu!V1hb6W?UQh|Uj%(}_YAun1l^&#j1f%C}B&5TGGFSL=|)F}dE*K4ahb;Myp%kQY5 z#v+WbuKr*nhr{Gmvl;#4(J*Abemy>B3(yKA-$)28!Jx~Bt@7s)jCpRhh``s~ICt*? zUy&QunY~Ocx%y!I-kHhyxsNdVZm+33Ki<3k`L>u4m$ARBK^wL|2DGwy5bweql_=`v zmJ9*%d7UDG8+JgO65$ZhvH}_#U6oq048tpvy{Zo#{eZB|7rJc;4h) zN;(FEEbo?9)|_BWZs3ub?-~#YGq0)=x$#{1{`V&%JjXp!oS^-!glU6Vr3xW4m_F;2 zc{uGOkWa>5u+qRf$qF}(uwo1)9ZTv9S2v(F=lf>kzD-cS497L{zw|8 zysj!AYj1+dGu09a#k+v=<8;YI7csnN5v-l&mVm()Yvb03^)~Vk^EVFIXLmpHN&lfU zjOiX#ysb6|qrL}HH{!!#-1q#7(TpC9KdtL&58DEhKRds~@7o8H#E)am%waHDFdI$# zlz``D#m4x!KA0@t8k?LF0t}n?-cR*!07E6{=dPFv%sUxh3_G?Aqx9sRq+cPIn8-6f z?`!A-V+l^q@kf5ZNT-)g;+{t^Wcql|L^mr;Z0>5*yXFG)mynozAAsf}p1`EM0fUyF zLEjZSVECQB#_|J0U~t40FX&x^;Y-qYXRlep@Kd-YeuWqBr@M6RGPCi1K5`~D)f?zv z-%_g1;``uY!k3i`{6K99efZ1nD$pu8mCg2Y0=Zu0XW`%DK&lg3*!XV-dMZ9;J^EP) zz01p{FT?#|pm-0_MU(-=!lN&SWqv`2*}2!-;xnL&toS(h^fO%l}yYC5~ugnDhDYAGVLRIC+hd;S|S`@syvN8&1v zRUcvhH*Uga=OF4>?fRO1I2DR*3HJwH9)RBoy9N9P%b;M{+HqH^5)@^BuiAcs6RQ3k zww9k(g<`GXWu=RfK=n6d_tB1l;oJaIs;Mmu##df6XL1BeMfmk$zkNUrU{cA)dJ|14 zK=P-3G*G?yJ?ZrgFjN^3_;8sC1~24KJ3dzjdZzmZbKVo6e-^B959|io#h=~Fw~T9~JlT(9ia!qpyxz3Rm+(QR|?)BSj?@{kZ-3nD38f)J5?8 za35jccH6of^_Mbqsozas8~O!33X_9S=MUYvmxZU;^r8EU^)H`>9niW{mO1y`G3XN5 zePD&@B6Ri#vYp@O16@)_A13^wKv$GKgZ^WlF0Wnu zvCb)G^|J3a40I)ho=*0FKCRhvb!y_!cdMhg)C%jL1on1y{Jr!?2C6k2`URxF{&O96 zwfMTzl283}1iDN+OQC8UdU@+JX}_=!`29O8-KmZR#?KM%g!wN%VQZBO|dktqO_Ez|#LC9|T)rq<_q z!h50bon6n-by;|KRlg(V#$h1yez?mnvmf7A>xAr59D#A%S#LuG>lQK}g%_0TV7Tm^ zu!ievnBdyuF{^}ixI+oNmUBWd>h`Jpz~vkmH7Y%{8nGXSZSGP6*s+gP!TLUJQ#1@( zTSeC8SO7)g(-tvuKMa!I4>23#dD3j*US!=teBacb>00dv`iOx#KZh?2`Vbkzq>nIE zU7xG_iUGruNtxkIHZYuTVk0nn9!8Q{`S+%m!;qfS=R=kPFrx7`BlYee49{CT58vg4 zVY|en{ObxZWE;CMC*}mhlAiM!2M@!b!sc5&>p5uj$BNU|Q)OuI`v6N9{S#_5VtNr2 zau!jG+imu?GGormAh@GN0Fgb~9ZMYnH5LkfvwG@-dQEw%s_R71;LE24@7u{}=$B7$ zSez#sW-VFBa^^$}71~!13rwKZS>Lfkuc&CX<4ak;s0Uik$~sl5o{bn&K38l9=y-1r z4d1<|4La8LFjTp-pe4F_YD6I&x;gFqA4TLro4kwCN~;)jHG4gieO>{*etO~t^)=WJ zzIEx)WjsIo84(7$@tipBD)CbZ@0FIO6@hPG0Cmvi_y@f_>@WC+iR{EW!T1Yq+l@IO z@ew&*_56U*R?)}+nNRrV@2iJ|=KzB@<$oxh3C z@d2+_gZ9lZZk10u`tuhs(pl4p-%eDVDDCN>!3da@jN0do!+hx%)tU|-Lml_%8r z8;q)AUiMiuKEH|T4oY|*J1f*Y;){I=4yAVj(``WfWTZcpYzOT;9(7LpEPxpF?6;5; zHw=8$O#dCE59Bb#bAR|h0oAKXPCaic3|L$apLp{hkdwJq#XZCE`y|$^pTXDB$#Bhg zyx}m&Y2+A9SA`+p27Q@S%<0@-`ymjAfPBr&?Ne+eklf^6-`1w%>yG^sTO9+s?Jm6E zD0PL7Ee889UJZc8f5F#PWjLVtj}-B_rUA-`HnohGyMz8TkF#8M-+~4ui&Olq3J`hW zLsEfYEP?0oXvw)_R%q#ZrbztFD72v$a`xJfLd4MN*V$B5h-mI=vlI^-M7o?fJsmMNBGq-(~&jkZUBRh2dM&K3y(1mrMdYoJMSD14a z=OTs)gv!xW7%sFvcJXNg{+>>sKUM02`6#6XNmU1|_phauC}Y1(@3Ft*B|0!XIF)R< zC4dq3!?*Qx01U5AXM8ryg1&BY`7+xr7@3=ji`$8HS%>1q87iKu)2^-V&hLf^juFLo zajn2Ox|tjHwpBk#S!*ioe&@=NBZ7`s>H&;5#6b8(OdVXF|Ah0g{ z=8&iFM(Yh`3+X$82&^YhOWn`2MO|+Shrj-EN0Sl(rp5m-r#6+KH>+@-z{a~09YxG1 zaPZ6RI-P7y;3B^&Nuc->nA9ffcLrZ1a5CNcbW)3-!0xO(zxcBWDqUA5I!BXW;LuB< zm6PdE6Ybi1VmmJo*T2}%?Kq%4)I;Gx@hbd_5~2Cv>$zk1?Uk-RBWQgUV3|CCIneJS zKBu&_pvF|~li=?u?C)L6zFWlv&4&Ej24s0)Bun~Q?g`8VzGZQ?IkgMV$t`Q0=7hRz z28=vWwowi*f|2=;mQg#fF0&SGa?a5bhEmu#iILccy?FY)S;7sRClS!Ukv;;GTSFA3 zN%vu5i8*$%#24!ql2b8MDHxD^js#y|E{&0)S@KK}`p1mT_7}g04#E{zy(b@`_mqgS z3ExE+NO)9rovMWMK~kdA&qrZg#-=rgj`dTK8<uy{ z*rafJ2ZAZ7#}o3_K`>?ZNI>LXI!p@Rvf-&;f-%PgDP9x{6fXC0l!~CV_6w_ z81T*Ir21b$MVXE&?CCkE)KS8GrOgUPsk8R}L39|psC=&~mkvE?mzd~5#?a0DYb+#z z0^JW*uAp#h#OP#kEgvpGbk5sWLI+0h{N|=uAXJUWX3o;>&nnQ+H;yN4H(nxA>}QcL zehDxtfvj)>@9j8qwLVtDW|eg2`hsVK z&5sCMIzH48`23H~i5S-sc;mgPF?f$|yAuBOh@m&;3%vK6muo=NL;p`**pF_JEK`j> z#|v$|<8o5NnBO}2afyQYhrt$So{LNVK;s|3zsGDEXhelhmoO^Oqc=9Q*Sv=s+k!7u zZ}OnJJ+@X|Jq`YdrJgD`ehI&aOFm1*SwPjvXeaR1;nT23%*k;4yyFZL|lG97lJz=c- zK_%P1voIVRX`suMfq7>q&9D+y7@9a@w^p7HLqC1a{xu}S(Bn%2>O)xXo8u|ANQ{I5 z;}hRK3l9V7qAU|{aXF9;m)V_jv?s4>}3_{ssbCUUcGdW%pa5KwjDKq53$8o6%UOj7XIx<7J zfgEHY-O<4hCKAL}OMqz}gBt35#8xz#4aQ4I4MpIOu%wE)@d9pi&W z2vBa@7HT%d09BZ{zsTevQ2bA$y|wqCx2n;4?K^{ID=)$U^+ueE zSyh%oBs;6-*eI;uHfgNB`GL7832WsSe$Sw5v1qyKU^Ea*I?Bj1?m+zeM_OL;H4r~b zD9lgv0Y$cOn{ENlRlLs=v*_Li6t18zahjMTEMwjw=cxt}V05kT-`%JT zj9?rfZNR!|b@Gc!4$OHdcrD!Di|4VhquJsHMVR+HQ$d-+T;7Dl>Fb|0V8}R4ZR?jk z`1@~G3@FCe2XGqge_ap5&lsHHIudw3;r3tIl!GRpQw(_(1={rI>gw+unTGD zK_j^;%a^?L@O>gcnH%KL7)}1jG}jfJr?m2;;rznD1H!egTcObVxG}58d~7%1{AZ|aR8&2_AD+9VuIPaEOBapq>xd=pR=Qu8MM>wK^kUdRXd>v7jeBpLJZf{grCSI53Y6eu* znClvNj->3itn;qN{7X;Yu?8nAGJ-gRj9UQ8F}@uiyQhKjxkJb>Rt~83;U{!d3}H}O!j`ow z8wOv|=EuEozT&ClLdtKv7Zxe*ExJ?-j33G_pEpKeY;B#7=~^wKrP7=PTL%y+?&baE zcS5N5KSxC-7H&j3JhxdrnCm0d;?`xr`!|><4 z6`z=FsW#ym7@I{Cj1@+uSQ>i@!vbAL)wgByk7ZXt5!2i98kL9>XiWF zC_Qr9ie+EMQ1p0_r}=b@qXCK+8HPkj%{sG!diTs}hD- zuT;D6IYb-UV&}c+YqQX-e5FTu7C}RGW$TsOxzIGdSu@(@3$&Fd2#H4;K&OU{V84eG zbT-{DdiC=TbR4qDI;rChof*eJA3w|oeY$pGm;YRY{-)Pl#BYYs>tfTUMd*Yf!Nruq zG(H$qDqY$uBn32ssi?5_3>XyK{;i*L6o$kjqFO`neOx|VY{~=c_OugXk@h6ylYxTE>m zK$?iU2BIpLAMNd*Ml!Fg} zUFG7(TRrv!*49h1Q6_Q(PJs(4OFVM~&R^M2cyG%SIF-hv_R~iR?7!0J7AH0E@2i$R z(vwZtv?(x0L_mnJsq>Oc-MBD;TPjVw_5OPTXIybOQL2Q%X{_2~OvC!3U**HgK1R@a zQ-bT~X)XA>p0MvkCL1((TF1P?f1gdsU==ef(~pycqVuO?G{F z$dv9{qs%C{=%%7 zOU)5gK8tl*vzr1JZ(tw(r-pR!!?*D7^jUNInG4W%UpATS)&cF2?$PfGqoK8-eD1$M zK4=~-im4cig_cn361 z-!UK~sPwLi-3|Em;&aSRiZbNM&1t+Z3xZ7Rp3whuy;;t3_iEuJyuUq{t+@RFq=|j7 zbn9Y)$A2VhD7HE%x-mSBn4gQ%`Tx8-PNpM2Gmil3868N?$&)OV{Rb_d*Ik_Te?beM z!GeBB2K;+r+evJB25pWF5y4^je!=XxtCgV$|5A5_2&7+u{*eA#n}22kslqi_`wPyG z-4L;skBx#Z|JyeILNVvl@V34&RSNoVPn*t;?7{nIfc34{m>=Ow@Qid*(Tv%m^YARtcgpsM<>J@- z^+M^6;6NCb+H~%Le+>*}{%N5|=ReBT66miTA{Hek;2cd>;&UrLoa?a+WceTuy-6S6B=4L6y7l$> zyJF5TcFIaHZ&+JlHve?WKD^gWID~!=^~1UO z8pWrNxiLR!9ctdVmIE`4=+Y-#Dlp3{KiVnY4l{R47QK#sgc)YX@i;0!%$(c)Jibi? zX2KO}btPP3TB0o?FkT6!8h3wfI=To`Q;joEZ}7sj;LG)BA#IqpzVYAiupvy}Nxy$T zTm%YFy^V>M6NI9#pUwJ^DwK#`^gn}j=5J`vlCyygd`k)|DjR2l{1-oMwn8@Kx1*kr zLIJQH=m-`C3)oq%hYZ!Y$)tCTnn6UA;#a{ujz$#C0> zIu7jH$MD?DW5xdOjmf+nC*3jcu6bX4lnq9o{^zXmRue{(24%Y4BtROB25YyPv#%I&*OlxnRgFUVj_Unz5NFFmSmuX zrkoO3AOKDN^P~F@F&{7%`*t~10BCL}+Um#Vf%Yr#_gWp^TlR`Mt$T~%>$OX);WGA* z?6{iw%%4`DIqwLI|a!Xdf_%;{_BT;jug`;=h5l^z%N!&88{H7NroU+pJWF*m^E z7p~9emBOlMnbv_+l0>X9Bv@gcZKsyy$b_JDezdQvkGQOl)vL5D2CvG~cUW8!-;l&f0 znlMD9pRZ6`!}@r*VXntFpoPD)o-!>1THS8v3tuot^1`t_t3(|J8$K$^h?D|7BPy*` z&JyU|cO$h-@p-j7M7KWE3t!h+B0Zk?yn;K1)tQNSFS=D!yJP?)-P?i^=U9LgC)DY* zDGBGv%3q9jVZTiwQe@{G=2r+dx1Fm_0{Owz!Mn1WKsMqqh`(C^q+9VyqSE-^3#&b8 zx{dd#fXF%PaCIQ9OL8Y@$OAPjJD#FH3UosbW9I$(KxZ&*Zm+k(kNb+3ERF+}v#7OG z3;Vs2UqZXr$3U9Gw6Lj_4?x_59k@vxcO-xzOQaAXD=sUUB;Ks_WMbEPReK= z(Xsu6>aXp)&+9minjKFh%3N7REjg)gUu{lB9ck9LpSpfRO`g>k_3Lucym0{G*h^=$ zX#KN^+u9nfNDllhUzJ5G+=n-!{1Va9As%00qqnGe;)r!i~^fGgmE61Vdjl`W*cHHYSL)=cbqeGt*Z8BGBm# zL6`3;!%&_6bxVzl(8a8)y4acpUF;cI`ZG9BE~m)8m3tOmCHDC5z$#E1wy@$HE_nFr31W0CEjLek?By5`&v1gj9OnbCLTqMplv%gwp~IK zoX66(+*(FWT;E8%K1L``Gy9A@>oJt8?)*x??=I@RJ^Hxx#0aA7){za9D?xqS8yDDF z?9s~kDz#p$)2}O9p9ZB_0`uq#elPPt0`qaTaOeGjXnoYvA!5i9ty;SJl>DcOxg(}j z%c3-#Q#kdVP=W7HR?h_D4H8g~vZgRAzc1>0#gW#YaS!|IT#J|E?NNF39@*!joe&P#eC7(sBujXwW3kT7>%8;zfJr^{ox4W!(^bLA*d4z`# zpTob^m1VY8-hfIA2SU$t5y*)A5!iF<6CxOGTjVNBJx?{F;d)K+gV($UP?(!w zD&4aRtruPxo_!+?ot;~qcD(X~wup-bYqzW6H)q(PFNxT%c%CqGc`P3$GF)rLmy=+8 zE5-BGFYM?!5{9Pymw&TEY?kuERv^8E4JT z5}5Q5jY)U>0xhI-oc;<9&~)TRam~6PRQ>HJ{3vY<)klA*<(}4uM)8a9XDs!hIZd?l zxel zCZ+ZdFn-FRNu^4u<(-mfux7o*N8>yq?a)6|X~K*KII`voEi|BBnRza8l@ppf660JL z^3ZzrLz3D=0{j*KVExjK69`@+MsS;m=o_nfhRH0qa*EMQi zgZYZyH8#C%ZVk|->l^6uU>RuNcC~W+kp{Yp=wzh*6&TX@IIgwX4(Q%b=|iz(par+T zc6-W;dw4=W4rPY}ZTncwLy|ktp65Jr!}ApN>c0JbYpPhU%VuHYum#fPUM{tIRv@qc zDR4Nx5C6RcWWDpa2qWp2&x>y0=da4^WFNqJx{M!5y%%x5Kj@LiRNEdHohw`H8+rl^ zs#)FRgh60j+oTXY+yjjMGnV;#xnVq6uU9?a4bOWgsF#AVFSz9u?OAOKjEV4PGvP7? z2Cva6u);b<>DQmNYql`9q>%2q{0r}K?H@`ca6Vp%se2n+A@nWOYiDi~f&R|C9b!Yq z(8qmSKKMol3?w^z{`wB{f#-}akjVG&c_!5wXs8OEA@9F)FCBx<_Yr3~<*q@ee5FyS zKF*19=g7Rvu!HX1XB&C$OF`FvDH*Hsbp&34dH<=nLc(UfUsmO-cLaqkGzmQa zr0@A00l)ibReB?>q?{cAonchMEXGe@s`OCVLP#y1#6Au}Kox zx9mv}rynD*cW!1J%)Lb5I;48~9bJdOquwM*obe`byEKM;$!#WV<_y@_V?ImZl_k|$ ziRTh{l$g5?jS~qx2QBvBQxPNZa)qB%*Jx$Js|OKe6^JTI!iTOJhJZqu_`0knAH}D zLq+cB~R+z-JDPW~|upi%9*o2B48*-tAc%1!}U2 zUei9+QterLMTotG1=vEjkW}m3>#+S}{j<>&{Oi z?IqM(KB)_qvV#Ui-#k*f5i})c2iYByfubZ#Si{u^8bH?jH2otqhyme2 z?M*51HG}Q>ZV_ zn^n6zzr%U_1%u6uFPM`F4EumKcEiX(s&>X;35*^bX`M2Ug3&Wi1;|X|Fmi1FHHx1p z?ibSS(Dyz7lY5`V>C!}jadoTXx3yKQzq?rk+vB_oq}yjxmSH?*bob*!hJ2L8=gksfu&|cv+`@jKtA5f;9FT)y1)f3P z6x<^ae^_knIPM|)5NaX#9?$)i4SYP$%z*rRG1u>$K2Xz5UVSkL1)87jk*C^^fqwS~ z3%ge)_OqXq$`s-KH#PTMDD5oHQw~SjU%)y*$g#;AORX?86J$qv3p()PsEn*&T7$j^gWcJTj1jJPQ5g_t4J$nb7*A zS-|hiB$Qgv7SnmGVMK0wNCTc{M^#$|d0SF|;Tcu^{CfdRmE9ClJDCU5Ik$5SGO-`) z-6CSK!xZypyDkeI_kf|78)Yu;w}7a?aNpvGdCjFd*%)!$w|4I8>HN$zsOqj)XirFi z=J~*Oojtg3sZ=&ua4iU`=CA%Iw_FC*8EJ_h?|i~OkZnVfbrK9ErbxXacS4U&u*j(srJLDQ)A0G3_rfRrksKWgQEQZ@RhFE+hp;|C15qet`YQ zov*Z_o@1W+hUYoc+chxuzMPlo<0Z_8X%aSn?#^Q+!<5PGhR;WBV6xo*)!wrfFma>R^VSURpGdhE zwRIflQg!#r{wlZN+zS}D zCxuFA$if)?cALt9R-9XEFiCub_1k$=awQwagv&Z_WgLUi3q8SK^RO;a^>)|y8LXF`sxBNk z5C~(Ml)SJQFJKh7w978a0pom;ehTiRrK3X0*w9} z?8Y3{1<0yuX|BV#$A`-zG2tQ%IgLC0xKRW{Qgp^38`j%Sm)I+Dy@k<)T|CKlSkJL5 zwb1*H&&$&O?4Vi9`Stx`=DC3NL0-E(CQavIFyOQ1dEy12IUjo@;SdYd1xw!Tl@UO# zrcWKv!g(2Kj%2cU1=z6~9>~`j7l8rNO*PhLXBfD4>*0x|Rp|d_=V*iTZ9Tc1OgcL-m%tga+%Q=H zosT|KJ99&!Gps@5=HMU9DJ(=x3u8W5=GHT5mvLxcZ7*3(E`@f^=e6-4&I6H8;cqj8 z2YSRcXj2tup~pXnD;@W15|=)G70t)Lw`kAS{kPVz-_+p=VR}Hxi(hu=?*NLy_f^TN z+d%q(=x>X&@Vpsm$r;rLO>l@~%;_HdVLI#a&fOf!pZ71erSrkxvGj|~6&;AeTVH+H zXFD1mC+#^=WQ`^T^s~$>B?zo}A6jh|b|YF2Sw^f_1ODvY_vCA{C5m~tP0z0{7k=JN zL%jmRP{<}`s$$^}#V23&)ZW(sf}&!V+?qF3IM>^b(0M)qnL{`vOphwzUCq0aV zp+oVG5%{{KUA7z}zZw9Fe$21)%e!%2*kJz-T~nZ*e%wd2)5Q6EpYq1L*MZU;!N&V# z2j>0xm&#W^0!1w15!pQ*C}XkFns0C(&7O_taF8|(h51TO#J-22gQ}0o5)&|(^`NE5 z5$C|qG3^}k8w1);ziRGHwLn|G$#%}^Io7vYEsHiMz@Vc!)7w`#zmTCDK|f#zRC_VH zVKC;iuJ@76CwYOqWxesvt7NQ4P3)k)xDKSD;v%n3+{Y|LdM=#&5TAGIxBj~`4dh+_ zxWuCKa36?W`#yHuht~8q?Byr?y~dh+;?c$Zrk@o)_cW#f_4gqji*_%dD>BQb_oo3l zUm~f%EfnV#=6Ad@$Ng3>{R~G;W`Vqu_&MAJKkp%<_A7F%m~Ysp-p{H52%*D_MJOb_Uy*zm{einR#E(ZeEvTAa4-s}Gn&54uP@*}B-ZD$H~WFC{Lz%* zu^;zA+XPiCD)%D zkhX>1b>DW{d)(J_>eAfWe!P$N@V7T};C`M1|6cV8;C{+4C|u0m8Hm^9ho>(g+$$(< zwPK5N2G98drnln$l6Xe3X<^`Zs>sgV3H+kn*sXsLRTyz%o;W7 zdHe9}+J$0l*tzQcFG1N~lj13@LqIrEK0RTJxi`Vvx^~sBDDB&W)W?;zQ26efn}IwJ zG^j7hIPFS=0XadAuqUTrDEUcT4qq)$4R^N))=;6tV9VKMab>g;P&?it$b?ou401U& z7^69^TheLTiD>Quheg0023njv{nF2`718`|N?q?6MEzrrMPHm;M8uEhXk=YG)UjwA zaIAg~k<|B?yi@i=JvqcDj(K}(0oncCrO3|9R+jBX25d%v$v`yrGJkaYOA5o`dM`heN5ImAT`F+}aGpE(d`#cX6+-*G!TYzY`GM93;Ot)dO*=tTOEh?iEnCo>z6v z0Aj$QPKu=ubX1+&G&+F!%DuTq+ctYbn|XxYNYn>tuV9%!d>7}f6n^}tIEJsc|NbcK zPUeT!ZExK4cg{nr7Qbe=ttxcH%1}5r8Q{G~JmbH^5txH7a5_Az1?^?UHpK58(68Ai zx~S>|eTT~y?=53}b?31&oS{#k-p4uLOabdh)~|LWQ_P)wOcASY0#c(pi|GZ-MLjiXVZCt+=SOXJM(B(~zrQ!XNMb7H zsV{8sjzmF!;yk7J1Ro5vQk8Vwd0?R9HT%HXT%0f6PE(k11@i2GmUjDVpe)VaG&X4f ziqOwXoA=}W)w^XawcZs-xeXhe8nKQuEb^Tv^di>vZMv(dGB6++)ua^6b_>_$shVQI9ej@_Mzo#NX@O_|O$icMkDtD*cij}NGmD

Vk$_fDaOb4(&*_aC9@*XJ`Q{c-P{te=3xPcyXg(|^Y$(lQzkP|^q}>qaBl z`ti%#&!WM5?~4t%=Fo`e%lw@VLTEDCC3Q2o0!`*x@ASHthWhO$oE;uTAnJcXKOJKP z(Wt!QY(@CV0?gN zQ4O`Ge}2{S*#k+mVeBx*t|rLAQUjyR(y|K-oC69x zoUv(dB+ftkyxmh$0gPhxr7K1H*uPuWtY^VJByI7Z?g=`;Oqxl|zK6CjO=&Gr=yri2 z%AMft3FmQsmpt%J3is%qeJo$8g!9l>A0_q&UIeP*#DVw+&w$F6*X{pH1LxW0c{|Ph zU{EklOk0&5_rJ`snY;S{{lJt7YvvuGALZZwiNOqm^c;Y;eqsO5fW3In-NqOH zI~<06iM}CkGI3vJNWlp$7Z?ssWVCPVhhc|InrCXLXW)1d)k#3CuKBXcvWb@ z^7sK59{Kbza4HK%ayPY+F1>}3m**|gqaWc%Kebn%q$4VQVya>fiN|m|R3&Wl1@7Mh6l3q70t( z$)kp2UUFAl#W9z-zbf--0wOI$g|eKoL1dL@RF_(W)=;+Gz{u{?2zaRyP#72~Mutp9@0|twr*oKoj)+ zG0W5VNQC}_Cyo!koQB?<0;zvzd|~XIVTAxCAI7HSWgil;u1!;4S17~1mV}TOLTB;+ zKOku^K&bwQ^^}~*G0`Sq+r*Y49j`yI0Xb+4&$SiqfjrT`|ffHJkHk?C@ z+ULRM54|mO8O|K_(7W#&uPk!_bS^D~&Gq3qOpb*$h-(enXa2H#zU;vH4GjuZrUAwA z-rA1L0id4KdOv0C43uhX-MlZD|C7Ahq-=2pNX-G22fmHtb8eiTaB3c?`DdPmuVC)I z>Q3~_O%$NiJ4%o(GlBXik;OMG31}bNpB%(I8Z9C0id>Hr3}!T}oV$SYj(WM3LvqJ#$BAE6ypFJyd0pH2~^&AzgIl3Q#7a#Fbn>0XfvmuAxZ~ z$Si6xc{g6*p1u6tot=2TygVcRbVn%=TcQPb*=>RDgQpo)mn5)X(UP81wT62`pR!-P zZU)^e!h8Ny3P9(I1vfWGA9R`=oGY(Bj&*Ch)?|xrsJ^MzFW`ek)NMA$3Brfqi{7lw z0ZmqDTr9Ca)7y_4FNRmWK0knnySB-mAqOGSTUMc@JMyUabtCas<}=j5|M0h#;t2Zt zME_+!O#;o-U4HPUF9XdmeUfUQd`)1Y=P5efo<~zDMYQ6NV^<_{tT)(hCmTbNj+m@3O%n+ z8?|I`Lr?#+*q(n5(07M3MK`$_`V#hwCM)CqrFPMCL*{p&=jpXAq;1{MqZF(%7=wTA z72(_&6)N;*mrE*R?ygU1dQDq_7kaIKYtWu!K4J4UfBq*}HyG>V?$5>CL%OE4S5pNH zsOM82sqKRP^H<^??2H2cn`E1(CV<-PDEe&SX{g0X%68mw0U9UT1PF9D=*T&6G4jbG zw76}tJbPjl_pC22^9PwgQJ=5#K)ElZKj9a3$WwuD4Kg{gQLIoEyf^a=>k>4-w7*bm zJ%Cztn0fA-OroFZN7Js7vQV}8|0p`|c&ht1jN3aIrHE2eW+X+SJBf^nP?DKPsYF&8 z5tRlF5h_uLkYt90@3Ck0-W(1G$KFxD`}fy*^*o-_2@PVl;Nf+rG2;2L%sE`V^#Vs$1sm& zb6IgZzLw5RJ^cF~=K(6Mrt;b_F|KhY@!tE;N0=O(6LB_HLOnQJLbmz_&M{^C_O%(oMDU%y1?IOf!80L{#B>BE z6{Oaut~vtQs3FKnY82<-pA1fJnE(oX{?(n$I9J~k^0Ydv1jgQbZed)m1)X5rkor(*?6A87Anvtb3FLH z#)0-H&3B6ho}=+mhg#{j0xgx7U+EC);RKQ{MD%L`E#qKPlBgTZbl7~9{}_(^?sZyH zWtzKq+M9oMF5+DD+xFp>69i25Ik^bbE#Q5#mA3=uK9h}Ae#i2V*FSV%DbB|d_xaJG zWrE0I|GTcKQL2V>`_L=-VaYK0*Lb@Z9o|0=y7H&Fkc+JL;aj&Y)(vU$vOPzB6J(24 zEBDi(L?2t;nP~eZ^he(Gsy~H&!1gyh)66f3H2wD*RqwJOgYs?Tk@z1dNj>UxS*;PW z#(GnnQIDA|RBsfphm$Be8a>gnZUt>7_oTl4p@)v~35`@sV}pAt!StrQ-ATsfP7|)MsLf>&mt3^D4w> z-hym@w+->H{jln}R8eA0f)7OlhLT^B5&|LCa-!ztW99x$zmjN(LI_#OXeuaMVxQKWr`=XuPT zD(KsB^a#wPG4{%ryhGhYvQeCvC(Puw-=|OKfmx%xua&B7FeA+6{JxJ1rc3(kix@nR zi@`M60SzxzvK>&`bF$Jy!!YqKK6o% z?Xo-H44c9D@>i@0&29x=Sf_N6f(*Ie+f^=_cmehFwmDq#t zd)ukw&$nk-&#RoZm&5+SVZP{{19DZ`;wTkIJ%Fm;FCR38I>PkQyFdP69-Q-KKdBw) zdwRIzrt*d?jK)D7J?fyw6b^6w>x=#uvqYJcl0DG&cGrONEDN-&IcHCb&_TEDo28GF z=b+b+{)W9!Ec9@?h<+gFL8l1o^~aIf&~?R3xa7hy%=I8I?bmFEf!z(qWM)y1aqVG7 z`cwoA+|>NddIvNzfApK!|P#iS;+c>0;eO&EQnklzZ5Y%oOQaaID3=NMP z6gi*PK~sHu+RXeBC=Yf1wT8NrnwTx+PB|P<@t9R6)aMD1n%1jci*F!TCJZ({BTsZt zENR#DD`*)TeVc0&25k%aQOkdtp;eiia?=m{(YAY$GSxFM^x_Mrq2yznyM_#iAF+kO zJ1+tci_OEJ=eg{Vm!as(dRC^l-wK8-dPBQqH^GozOwFM)CNSVs5~$%JRJUz)e?rcu9rXi>IY<(!1j9& z^@054>YOHbF$}wFD_fVXz;L|y3n~TksUFA&kWVTD`NSWsKaT%!?t10gbX0OE~em@vKw5i!ttOABsTKgZGnPUHb_D6?r91I@o$eA-rfqns(=r~K%O)fm+ z*zT$h0~fVRWw(Su&rkbI!yT8P=L~z-mS17ekyt?a^u-_j&fQK?o+KY1vZ=cV8RiSwH9 zI%{eXiL*NFH+yIZi9_G7WJFk;#BP2oQFqT<65Bt%4+80KB$hg|>hO(d5|hijLa$hB zVtt@4w6oC~8bj^R{zN@=(>T3t?1AghxbJ$B_P-Tq3F$BAQr-z&NnaM0&N3pWO}Bdd zlP>fXd63z(P|tZ?uSGlxc`bbc4$tZ%U{-9;kKBLFKt8YYiQISuhMjdPw(I`I?@O|( zBaIjEm)7NZI{;nn(vROa9f6*tJ3anwQ_y!rXJ2&6S?JXt-*2s!0}Vxd3HFj*P%AMf zsC*y_YE(P7kp;Fvt*5_2y_7T5&9JJlIxy-Y62U?9b=_RJxBBIoGOUqt=+}oQZa9aEaE$vlBQ7@GNJrC}iLVTcU z?@U5LnIQ7@mKE042B0}!=$}u^3bZ>WIuF;ZLVIh6sey3@wEfQV3T-E#b?3)FN~$>L z@(GtOV5W!G^dr|pL;RrA{{Fn7*lp;l+1asUpA7U2kJKMU9dqxVb;|27Vd$=H*idmvpe|Q3IO)`T_~9mJ zDOvi4C{8;6hQ&gdXy^;9lxllTGzi@qXrs6gkL+%IvE;FVk`Hl*WIarY&tJcIw#t?h znH0>nViqKd{|aG5LE9ZGC;aE?JmV}aIzVNsU}4fg-+`fl{MOBqI1fDgdiIhjOoYWIq%5Pa?^0@5 zp&I(4N<%VK94cWfqcnnEB@lJ^_qtqsb6^6APp=n-U}Ce`8KM;R0J}H~&geV>+D7#V zRjUA|_Eqndwnd*x9evH85S&N6(7L5wi9Y!oM@srV+|YN~*cqL78)#Fdt{sfOp?^rC zv&}jS2LG6K=V3iQBG&M+@Ei8s3Q5`bRj}_~H@ym)g)po~>bkauJYr8RQ%$44I47Uo z(vr^vY+gkb9G|aIBmgYCjt|?vW3JrmbIfh0e%B z`F|9dz=|Xy@VgLQugehed559|{k0C{NrP0ch|>xmHm-0(!p@D=^pa0d0(qAilMJ?pGT?~S1R(NT+~G)b8&xuP~-$X8w{U+ zzT1({9;gKG<}T)F^fl;zId%6E&KrN}RNhMk%0s0XH3?3jT<8_e?6AS_g)*~Eu_92H zvT3S^P-o`UvM=`=>ODr{Cs%gwgh``!TVCTiHDLsfc4wkc=lM(NV*5CZYs{TGcJeHY zS3R3d+lxN*e^NVsyGy|M@P`J8qo{8#O6bVWJ_O@Bo)X8_UO^9yF=>`P1$yMN?2XU+ zLT_6MTQgGz^yxL_UR8CTY}gG0UYeylznDUs+f$KdncdJnzAp6epd;4RE+eyP=I9gF;t@tp zMeo%P$6_JW!(a3CBUtI7y+tU@xhN7k&TYtCk^B!jq&5{!c7>zPnR$5O;4E~PsO{>A zM-Jbd$n4M*)@%Fr{T(V8hvwC*dz|H4p}GD*#1ZFm=vof(e(1mj-N{aU(ORj{VJ@j~ zVVIvNQ@iJzp`Qge?bZyo&6yL4J9r%@WH^bm8*F6ja4n)Nzh>BH!JB9?e3+Ouhb@i?+_S?J7RXl0#&@*tMyO!G?`tOD~hL854?@7v1=EEZT zCaLpppJL9%rMVj(?Nrn;USo@y{0sdfH!{t#uzq~}xRkD<37TYoTM$c(&@_7n3MFcx zMXF9OdkDEF!sc6F4F^KAl-(EQ^SRJwX)jZlRt6oHS6LnGDA1*4eoj3P=d?#__$l}H zqJK6a;Sh4+T7SJiIndn)U78m|6%zL2{b$hC`X>aswuL7ce(#2^-(|6fT;p*L3-Se3 z*2vxNAgS&~|6nEew^Z!=n|yiNhJ<%QgUJJbI&S0woIc}md~_=`%8$!8AKC`Z(U;R2 zR6j%ePJ;_ahGlS0b0l>6z+KGcT+i6M2YD$*34_~yJ3w>XjJ7T2`L%lG_T^;=L(W5U zJ?|xB$oKSDJhguPr!%iNHF~JqT*qqsL7*$9y%_B z%=umKhjuEbw9(j8Ko-W~k;B)Z$DYqyQ5?^+_|4(wv%b(lW}L`0mWK9r`L>B&6li-G zM#op-0c``)x4sorL3@ZP-uB<=Tp}3BGffnp1(e` zi2bN=M$iRrv!$|&Ee=C)}CURjAlyH z6~=r8_AAd|L>#6_ySSDC^8n?7z3&{BgPC31xjp)k`ysbe<6Rc!FsgYt%p`7xsbSSN zjcXY&{d?*GTSXzvhy=uE9@Ie}K3AQCi7s-tvbC3dHo;6%^wk0z4dmUN+^4r6@A;Z7 zse~)?6Y3(Qs-A3vsS>v5SFWz3kLGQi76o(4ea`j1GcW~OM9z1c34A}|RKk9&2WA!% z|FNRJcc%H_K7mE7$J4eF3agJu%u10I_FWFdzbcclUv}Q1giO2H?JaZy3 zT0i1#xrOm(fDi?`aWwS-^;8hZ%&T@Dd zF-~IHVJ66>F-l@y^DuR~vQA=lv^jOaOPj<#!GBiDK$^svsm@kc!%bpMRUzFsOG*VTH4f=ESr}{@y1uiNr>^yxiCh zD`L4lgGc)1DzU~m|Na3Z=C7Ek*ghHjL}D_0v(&pIpF~G0EPP_8PHg0{O8-~8L88;B z@Xl1RBGI1!uVC3vB)X(~^r9C@#6Q)kDiU8gv3|?C+TFyCL@%M)&Tl$M{88)^yk{ar zVs+pRNb7huGD>El$@3!oTWZH{v1g;6Wl zk+zo(=yO*aB^^Spy>Z{ub3(^p^n9@YUOD9GUYQ)+zxW77bzD7lOA1i0xPHC17k!*M z;Y=p?Dlx~1-|yNdKbSb`{PvodIqC+Ldbk+fU~)@mV3;f&?v1?^b^fpa+BlZcz`hm6 zo=u+C!|y+p)!%j}J3mm1Hh1m@oDc0f$Mmfb_uEx1v+SFdkRL6fY}ylq_053%2jrPj zZQi=uTA@yVgC%z+$Q~#;djDCfqJDB%O}HqM6=?7OT{RI$eRa)Bso+lh-kyzF z^w;yo#0g(Uo`w25gL7*4@c9S`J1iUuGq7fNmChgatbdri*#5$F?U)R6Ci<*7fAPxs zeupXb1A4&|xL4CYz~t(Je{cVR*1*YNpsjI^oYJp`X)&|sWXx%qqBMy1{{Q*ZwsAl3 z9b5LgCnb&t@j2RvDG6}20vb1`x5YEu3m#u@^}i|!Qz`dIA~vWu-1lN?!0QfD>j^I8*<Yi~Fqrbw z=V0jo3@x>_={(|vq4%j7w%$0eJep%Y|Jw@&M2o6Ccc(zFadl{tX%EgNwg?7VV;-XG zG2{DnI?#W@;#vfsGv<4!9dvw(yz7=5jdC{+V_kCQi*_mQS$$WtZ`H>@2h|(6*XNLH zVXaYhOap(;NslKG`HyP!*FIecKu$;3kJPIKkS%M59b8eD!Wd=z$P3Tg3vtBV2gv7Q zd?7yX_7S?i7I}mi&_SoJw#W@#F6cShmhp2c5q+qhR)n zv-@~etmZaQM{d5oiF`#W5BW4DG6VOz=WY96>jITNQla+Y8KA23>uHgVU`F?l(Se!E zcrH>#c|+0HES>%6rU;&snlBFALjTdUqPLjwKNg(R|Gjj^WhYGW4gY*RmIgEkD!Gn) zg2|OMK{Z!V?vqjPT^_CLe-GxUIZG+VGcdm?_S0tf z$Ebh)tnKG01hcPqsO+^L0@^!+(_wsxF!ih|A|hi7raE(_3?*h^`WE$N?*Z(mHoo%T zT%^NXAJHalRxz9Dk@mKw}Ix)N5^{{rS_$G&@wGQynl?eN}jDKMv+)8+GJ1Qs6q z<m;V}Qx!QPR>ok$Smh<$$e3=tJv!}?SH z7ktg*iSXSRh4$;`Jc>Qh=e8t$n^k5GA}{v8)5=SPVxd>xKdn56l3@8bzMdxd)jhuF zDsonHMdn}iWBpffym^Wvoq(Aed?R)mB{1`0*Ww=udWp<~RrY87adzXq!htYH2Mwl&QEV4l6~$UK7q%>BI`9VoO5=GD31 zkzap;c~{{FCw}(9{8fI@3c0T^abj23sN*Bt4@GfaJc|36%LBJu1BYNHG}-uRH2NR= zT88(czi{f9wW6HfR;bv0U|o;NpNLkBm5rNu067}#gHp$GpyWrn+)A-HRMdub(+?#= z<#dG0gk&I;*fN&tk<6hW?r8sVnkeKwv5P26EhEzRkVB*oFcG8+O$xr-FAyCm>KTr4 z8pMEY zBTbH~dN74KgH^Xj%dqbm?hhESF~R)YTP??)x*^Bx4a0;EDHGM2@jg%dM_}kgHT#P# zTVTkovv){LAM-zC8eMooVc;Zluu=(fJVzp!3Dg-3#z?d7c>EED!EbCEHx=_NMW628 z)CxnRi#(eW9}!)D?wzP&mnMdS9z4mt^nzGed9P~lIu*I&e{!VcZW0aEwwunSCKDS; zod2k*4+vtEQ1RLDC5opddh&#HYn z3-=FkcbP)3qz?ZV2~p^cF@9Z^a|CnZifl{!`O!yoB2w8O=c;AYJhqdb(0S|SJ=GD+ z_fy`(@XRs;2^z6}D#4aLx-6Yg6dzz4lwqV{f+ zLEeqGXOR=?A-gB4otxF)LH*tgTGnR!Ws{Pf()bB4km+!qLCX_n%xyMk6(ImsY z57h1uqxvsW8>y1SXdPFfg_Q&`8k|Ju7*tG93RpN^uPGAb)-!od)BlK(ZKCyM9;w8r zB5zX25lMpj?y{UzbSFXU9TQqQpG-`vR`g|Bh!V7d{L|&@Pl<8Q_b-KR-X=QRb*j5% zYl*IAO~U=kd!m^)*z{QNBcdoGe`>_7kSN;e{wO00=lU;b!yNl@uh-+m<#FUDOkCn{ zQ}AwviPC%Ki&t~84(k)S{gMW>ODmUJwq&C}%VQVK9G~krk=`S7OUSpq5^_k|9LA6Q zh~#BN9bM$*=X8QYFrG6s(m08^$+6;}zQ;uqx-?h=sn?WVIYY){6|d+-XDf zv<_OzX=Ml5mV+UOPb!|JiHM%Z8l2i@7}~U5JriDFNb#-H36s8r4hs zTEuwpz0oRBKBDsGM&TX7RHEEai(}KVCy-93z)mz&L5=iO#~ z+O#M3VWtnrx=S-KNtg8{`r9_-1qiV)G3yTGx z<8^SM18CRpfAb1LodF%oV^MlV_?fb=?mYW7$k26pGu4?yq$@Um+0cJRREB8mjQ_ib zs1S0P*teaZh^${u$YU0Fvm)-N%xWL_n$ClU;)!i9&0Rx#vk_B7IKS`{=okkYRg#PgUmyD4p7# z`|WHBL1IWW_}tJ>H154Pn9ImWH2Tf@eAV<;K%6_$q zZBRd!SlRO22Rc~d72QVfKzB&3@+oQ*v;}W|^v3oXG`a@ynhB$B)%c)pXS)zg{{FB& zOppBCVb?Ip+&wU^dgbEt%RWFoD7AEx?Kn`@2M=&DV-BWVRnHO`^ZCv z?{N~ht1$Ds zqry}?)%}# z>@IKooUfaF{AY-L(<^UrLJzqZ4#q|{_?(RSlv;VzbD}@9B)aGZ@=#gh7>0K(!tkOn z!{-_vAZxA;NXR1}-YKYIV8>n{|K05+FN(P%sshJ~81#XXHk%dEcLcgMRM(grgQ2HS z=EIADXsG)6TG3as4r;20(!8E>!|$A5>p2eoP;;av+4rsn)Yh@RH&9)Js&9RVGWG4C zqC<)2evU6xIBC^1Vg5_W(<@i?UX4S^!~1nj+slD8>GHveMH`BqXWf13T?VCBj`v)p z3r3!MYuNK|!%!vod-p!eVVHQzE7yEC2lGO{pf0lc*LtL!GK|N@#CU8e#yW@3M5;d?Mk`W= zKHg@5F}oX=Had`xAHXAc>W)9Y{&RCb`vk_Ezuz%d2!qkF&n3^Ve}r-VM|b=siDDnj z|16b(p&w?2O*p?@N1x_}(LYCfD`8qTygS8k7Urxn{l@mFz-*r7@nqWzFnd0y?6~+x zn7#9Uc2T+!X3`Dvx0G4pyeGbYyJI$tdbSkY(n^Bqkp5cD1Yw}9%1YXGCc|{aYqGEW z|NHZZOXE@WF!@F7mHFyT)J<`bQd*H)c{%JzUkUc{iP#1Eh@cMDcPn2%`r7?pK6F+Y zM;$8LX1nuYFe!JX);MhmbtSIdI@gx4zvfc1>A}z0_=AtI4(gwt>MZmOq0YnY2A_W~ z)*l;7Kc*$HZ?ku8^i7XKel5o%E#ziVDWy`C=xZ3~B6Pp(ME!Tci<2w)GN_y1;ziNf z3=@YxtNK!LE|K>%IFa`aj5S=V@yl*TzI4RF%gBivFOFUowm^Q1a>UrVl|UHvXn~Rd<``wP?D~KlGuqY|3tc-HYm2CFKZ`!h4n*|)^o60hP>1=# zbLcONvAY_Ly!ET92NnGXai265mMp#(hSh9jNb}ODGoZJcR>Hgvy594@4o3nxJffh# z`v>v|lw|F0+vEH)O5#WAvR5-HGN8{c%w+8!E(jzqky{|Ie%&S#Pt8li(y zF|Mdz;n@(UDh?Ixf)(xnH$z!#i%G!N)$*(7+K& z^hMUBZcRa%ds%66*%=_+53avd`wdEN`Yg9`F+fGVEHSuf36+w2pTD z$vnyK)TV6;WP>`!Q)lOaYE3T+w}N?2Motv zyLTV?1HJbwC9ZKaK=19qhdBZ&Fp$Y2MfTo;`_xapDU;#Q&vMLb^h+N#2qv9FDj+BeHVw7-OZ zaXP+4S83>(OZ=up-~8`{fy?KJma3Nn!NSo*%gdvCZl{P4UFUxM*5sEaI_h`aXDI9@ zIy&EfFl`tj2GT?iq(A5+hGrA*yjUnFdS#=NjH+-SB^te@Vl@Lg@8sS~R*{D;?pE^u zeKMU2OA8wTQRu&Uc>Ic65ppkTG9S;Q&Pt^0;GaNl==QpA@I$g2x(iBg9zBu)-Ip3v z-FM-BvAAXT*34hfRkAO{=_~ddFO$pG#aW>1X2>PJyCTpf%o!4yCWm>hiJv}f!M&W7 z?%iBz%pu^{7yWMsE6%B!1@z5uKQgWnw0+$Gx=fP$F1)0`z-PjvbmBGi#3izRj+cPJ zP@8{Q@1Fx0YYm?Xd;EUC%8?n|21CueCu8&S(dWt^dm`5j28~+&zI|H@ zLoDO8(wSHoI=ztFz*!6AeVdoRM&WZ3Qq^Je6ZhuqMBk5?!$9`tibyPOA!hZ;chb|> z64S4}*ZJc16VnZ~Nw2+ah-E&lf4axW#PU)_W8^ZG#CUZ4v+ee15+ir;=Fz4)68$c# z_G{`mr#5M(Hy=(RF?Mu*-0p2oqGP(U*DLiIvE((HETJ1oEQ!gUqm@e%bB~odSff{n zndeRi4c)nk+4w5ToFW4;bt`r?<|^us5A5Ku`eq1|j#s}sDo^2gn>qaW+&YY9iq@nb zAAoTW1h5sM-(p{Nl|auhP+vB@VP(G!36j@5`Tu>GxK2`E$=;n&a=X8_y!rd z)%n8gj+DLb!oDyTD&m*Oa|p(2wsM}of_`{crTuT{_5$^uCf!E4I_eL5Gj8$L!nlbq zy=&x7^bbi=2X&@_dW!kqb)8P29@yET{8J6kBfOoyaUFGQyx!IObz$_=@N*~kZWyE6 z?&$b39wmA@qCrf0x2F$@v!Rabr;~@Y zJuyZ|3slE&6GQ9Xucs_b61KIpk3(e1Va`7`9)y3}Ia@4jaX-~T!abq;c|p$_;e^u&rxTZOJ>V}H?dmR3G(9mY|LZK?^RZESBI7{& zz8VuQq7JlH@u+i=3 z`zlOOOByHE?h6nUhF4}o2g8WD`(sC6G6WHnzq;1Nr?wFdV~C|tX(5W+mgx;opN4|- zg^QsjmQZ!hykG4O?$-~!8I$I-g@G@{FO{=5pzjVt$e^kt42*97`|_a-^fwg>P+f3d zW8+W%L$MC}hEy4+sWvb$#m90zb%B_m=B9nJP$Qp{v`uiH>gO zOM55kh@r5Hqs7;x35qte=2sOiV#GSkUHrvcV%pwtXn3)Tm^>SDj&!4em>*ib9o@W* zm>c)jFDQNwWcAbav*~xS{w?`_+3`N=RsV_yI7PvbLR3dijyVh+_kQS z_Wd}oeDT3S5SW0P8G5Ph5#~UUQ&nqibzs;=EUQ8XbKG?kD*etxWBo7mD)uh&S$G=T z?(9Op)UXBJt~;|Z5s`l4BZ~{reuJwJJrnu^6fD1n*~3JlT8Kdj;MHZN5 zKPZ(*ABno}j}iNxVm-f_$@;Vr{Run`pxjFas(h)+4>EF2Mz8emJ&Ap};h0T4fjp9| z-KN2q>p1i-?-aeUGEh{r+a%&|pg)E4vDwuE82ue%k`y=qlEhW+R(xyFzvXtD<;bQu;0 zPh!7yK26qcF>X+=rHZ!1kd&s&!z9B8qj5aQscmLynk})7CSAbLsZhlhAk zN0snmHyJsLCRg929TS0?KKHvpb*xbS;_CyhsIyR%&3TkTb~{vgO!dFNf?Pc7@Y9aE zwa~mX#=!YyAe5?Ry z^Mg0J=nJItfK}|<_AK*%)5pG0Yfex5XCMsNB<|QHihI$)Kz6D4_b}*i+B4>ZJW#kk zmxVbi!tkX{xdL=L$T<<%m!OAxRgU~aa*ded7b+f0>%hD(4-WS02hd0G{Sx{5B=#%C z4F2f_>F8Jah$o{LjEqfk6(t+O$iwB8z|soL@qm=BpJ70CF*x{PpCnMPTssn>KMj=6 z$;Sp{e*s<+x!copVWf^EN`KY`MmFX1i9N}K?pK)$H+2kv-1f~(ziJM;Y|VZAtKDGu zKQEEI3%GAyE55N;9M9c}z*qbZxVJu9SSI)pdH4D(TOM3CgQ2jUsX6pFu&zC|etG;n zkYm~6gj$q<9DJ;wQK0~as>p4}SI3~wQzz;mH|ofisBaWA$599PC0AY>>ydr8snD4K zJzDRLy^^GnGknl(Su+P}#wJ(~WS>NTp4IYef7CVi9agHr{HbNdzo{R1kRuR%u5&~5 zABjcgadS`d9`r5GN)#urkv5s#X!?-jOk%p6&FA)llNfG3CFrzaNsL@$vkhh{B3j$& zIQN{gAv!F}IW;IIM047{bLQDq#GnQJTiwxj#7NbrRkdx^#GfgaBXz}g#O&4Rc;~~p zBs#kWFA@wAGnY+k(}!e;xeqm-cZ)ko9CH-Tew#dE-9}JCGx;RuHZXX73Tel@w0-t3 zeQ6|SjU&fBlBp!-H*9}MKDs29^S$f~cfCnWUAx`>)NLm*nIBhNd-4i(>V|KpP6(6O z^EYnlhRFufJ*& zHIl@>C)Ot7xjeDlbVi&OFhrtL=>mlTg2dJmrk3OJjl{+yBNZplP5e=#Mpt*EF2C#D z9kAjhu{XGd&?PsL*zYp?p3OERaV%BDQbL}RIINq8_JYckr{Y_k;&TzM>jjSE! zaoIg@eKZa&rT3z?2{fJJSB?ttg$8Ql4&C7w&{(tRbLxvR zG#&kYS*Q67bj=P4pSYe09aRsbW!+G>#$7`e@5KF7V7~G^4Rw_s^%*9pgYKn#`@U`b z7xcgK{r>pH6Bsa3TNOQs^M-pDPp<^*#Qsy{&2a`L=o2jcDC8{!{TAnRdH*TFz)aOh zPTgtDDbSmp-+Bmo+&^Ch4om3WR2CV0GyytO58IWf*+aL~n8V^y1T;8MOlBX>Ky#?J zYu$&l&^UPZt+3v1sM}+BU}Mn*DtdP4dRdwgB$7cuDb<+>p~tq%Z7N%Z zoVNOhSH?u~sq0CVbo+>?G28DK-8SI+;(D62ST2!s^Za1+{TEPL*8j|rg&XP)<_7+_ zp$-*iJRW%+>p+g^TlNk0%g`Wp#c*C6eT~uHg>GXweOU!g^wyleur!`elz7PzO; z&M$Q;_XFz6>Ddo6n8zVEuP|!c0u$-#bv{=yPyYBX7TaC8_qiIN6}1oqlXq?;vz3sWPEPbq4wzj=;-ez|%x7w3r~V^%4YG@ux6FtM*@0Y!(lJbh^t#)7zCUB~_X zh)=iA>(c~`NQu!MfGZYqA;KycQ;yBFxt3#bLa6KP_{!35>5jn&$BCzpbM&0}HEa(+~!68m!UpF6W( zFgMF!Yg1`;3G~bOXZ#mt1_LU`m>q){F~=-wY=4mg^!zBVq6u?AU&AJoE-@zj{7yYN zZRdmMrO4x_-pD^v4mR2)CX4ysbn_PrnV`k6Kg*ieAB5sS!NmN@8ilG<+gUk7vsx0oFVUl{06 zvg~2>#PjNkBtsPHBAWL6cP2Il25MHG)WyVOo!5NyUxo|n)akcgnYM*~Rr^~ySBjv& zvRyFE?kw~-e&u(+VUPX!h}OAF$P-v+4mjFv1-+rVN?{HOIDdFH{9sEJ^r&u%gXa(IKJlp%T7o*a9Y@Z3E8KE-t4DwQD+5pUnF8p5bk7?a`mrdiV$wyV%ksq3Y;EC&_E=bMI*W8TQP|7bxH8#G5cR9Nz3ZcPcR zUdyAi(46gCI5WZlP4^`K*a*rOk9jOFaVdn}OS zVJaKOkpg)~?6l%fWcuRwH2(!kwK3y?FvskdlPD|`-NKYpo1l(?m9Z`m!dK?Gz8 ziMXz>5g)E;Ii;d4;zvbL)9o2yBHc_`C{_FgQ6zk%pY!nqQM#ICz4U#9NUw_>p+A{O z5DS#G>zf$~okgi}Rr*C}$oAN-x#KO?`|q#kEO$VS=(~N+i^zfROdyh&%i=D5$ z@VX?lH~u|!iq8$2H@4q#J{ybQ7xTI^YHQGB;C-Llc@65%AG)fNhxeuFK&|@;)T28; zKY6oR0lL)vjFk8HL*MQ5yr#$Npxd&K?7u zCn5_CDOs53K$u90p}z9eQ_XR#v)fLJ9;o>11?|05IXy!i=y-K|;MVa3XlvZM(pXUk z&F#AW9^sMDZDf9-7X975sWyAt#TKB?V4>82%LO`S)7<+Oy`evHL)m{a1jx6ARaPd# zaL>{lNy@T9{SsF@i+&7Dh@V^B9*Ugl;HDrYk25got34qddks0qbpwfSGl25p>fywJ zEaZ%Gga=s&!^BCaQxZjVFr28dh4dKtfrTQ$Rqxf1pDD&X^)(&&W9qg{&FG^_RQYUR z&IrT$(Zc_w%)-!e|Ic}z|B!=q+^zmA`jw2dcNjlhgNf}0+*7IlfOh)(yVol#=sRPp zFA&H6v?;IZzg9t*z8o5PS;`Nl`u46H=10Rc<6XLglx&z`DHG58i#a^u;^7VDaWE6q zBJO@@E9ScJ4{@5gqVL_9Jf^*d{MMk1|9Bl?DyT*5wkQ+KI5q$La~HW2mHojZ#W%2T z9`#cE9060h8J~Y=;ywQ9QgR(A!_?)^O?n46U}ovJT=#Vsm~NBNDMeq^tg`E>;QKMm zU+TGg=I#niJf3v4J|u(vypgn+k_U-#TFAaAoR`GGZnP_V+ihaGixv}p$beYo=wQlP zct&En7TP-m6dTx-W@^mV9T=?g$dQ?7KWa(`FL;KgTntU)qqkj#nIxA*+!# z?X*_WQOYDSf4Vfnt|UbKi4X}o(}%viqDC_Vi7p!|^rMN!H#A2Us^P1-l6Hx9= zS|*^rjq)~K{Hz2$jA`n=nP{=Z{cgp)(sP`{-g+t)QG&X1`||`pC49!FO%ULB8lQ{1f*MRo~8EIgfkkfDEm(NshRm{vF8> zg8JT@1zFmCqcDBrX@Gm^N0{;(Z2s_$9;UBzS@VowuE^M0j%r;q|&t-IUwo@5(g~?@~PVR-F{T-h9Ih-(T7C;F#vjz&Qw_E(_|50?_ z@mzg>95*sb*$SbZoxb)y$KHGIO;RZ6XOMUeiDBQP;iX6Pb+3rs+L?T^7W=saVl zKyhmaOscb_))FBf4^!lW%#dafDVDW`}9p&XYS(?^|3bfA{JcC^qOMG@xqKbXhel0sv~yt1Gm^Qb zSQ&A*)jrP`q15wg<584X zIA0g^pbqtX9e-yHsA5Jrov#MJP@mJ51JOnN=MTY_)u{f=hdQub8FW>L{0A6(7W92t z-x3r!_(sv8K7#gpYmqno&~u*w*RuW@fQ^aUTW{7nK>f+T7Tz>ru!a9Tyzc21*k-#l zSig;~tGL2IxqKCD+Yp8252Ej%D9O!LMh3Qze>%R25C%K9JbB!N5MSQz;_39qB`~YE z|KLQ*75w&UTnu}Q4;mjA#uzP=ft|aIt@vHRV0$B@;juaLttV)^Kei7+e)af$rumy- zN9?P>1e+ha{z3~MDH^c#IlnrL_ZryZ=D@WL7lF4W7G>a}mo zh~6W1QnMb1RbcbQHm;ih-DiW7>*w|zz!s^-=EQh5*ihFf|27Z}Hu?8NQgB{iGnjO< z>3Im)bX$zS?COF1|H2{vW$S~@mg5S<9srwa7wp6S-veIKT>2J6ec>0$`hO^}gRQek zp_7pvsArCnDnqdaY-N>9BY+;*O1sT_AStnF#Twm+`!lToXY_H>+f8g+C}&JJ%M+una2w)Xe_U zo&h-KHMgQEq^n97$1v~Kf)cynwaay9uxcjZzr48-AXwqsolL`3P?Pj^Kz-;LsAROT zCg@cJ-GZS`;lup^yTdqdN=*prb?UGeCF)>9ref_n0n)wM$XpsyQ7>$!n&KDnw_xr0 z+1C$P<-yv3)phPAO|a(u?BnmGGO!jx#w8$I1Xjmwv{iS~!D``l(kEs*^mVPmk#k75 zZ)DjNq4ES9KfP-InxW_PWroynd@b0#AM{JbAQ5b`*U3BCse?@$YRbf?@nF+7$Y9|e zx{jrWiXRI{h$COhubzy2T=uGzJ{M7+QOJg=HaE(}oxA$g32_aUuSPb~|3v4%(+}M{ z5r~t=@%PlM0dXY@pI3GrOM|5++V{0Sqn!1%>zWT~)4@`D36b&@l+OSF{-B7y@tX%c7%Ly=XyPn;VPXjAE>KYYDcV87&9kNgvLGx0tG16+3*GmtH`AUZF$NrNJI+~kc zJ=*)N7mqK}|0zEj6Fmg$PyTcZ0hI4ku@#&1o&c+Hw036ac94IoH(*9+6s+`eX={rk zepb2Z*yq?Gu)LL8wb;Q8mL+wr9GM+~IXcn)=<`U|Cy6RL%U})WH7fF=#?ai8@pd>d zGzatNN`=S>XTYqq(8v1`_+aLHcM82E^1CxwH^(IvOF>oS6X)1}x>eMkef}@<52nA$b)ZDt07s3uvxw`re?!VU80p}}z|;LDJD8LF^(GSev*wbo zc&JvRoL8Gq^e*s3zR!LaHLr(Y`4XF^z++Fu_qVc{Z9(}rhrt4)d|~w75I?JV8O`@f z=GXh5@PLKt(pv=RdY2gcYQKhQf+Yo}mn4Z&VClrib}0jK8r7HjnRV`>-UJe58|_zM zRf4BxI8Fwv{J!5kINyubZ|eO|(rAt?WN)X9u5)G0pHdg;CL5IJRvb=4QNG1+kgI(e zY|@$K)Z~|gwcmC2(E^C$$oxvK{{ia#c+I8xeZw8BnU}T~G@m_cd8Eh!$8Q8!n!*vsE?0Y!# zi!gwV3&;FSXnpFV>+x4UKzzQ*8v`xb6`)s~@TP7Z>a*X49w#Ktpr0vKTW>fQ<-NC^ zn0_>XUY;%+@rI{}pP~5Jei88u9-E9l_m2imI=gv$4lI!4NG5`daO8K0$MX-$!fYt3%eH55Wf8`U{YrFFr>cbsHgU z!W|%eN^RmbdjgoHyH3BS&REnIk^GJ- zS=Gp|KxG@n-H&>~UMkK~D8+y|N?(3C;a^~8qVo1f1~V{wdiiZrQWcoLei+Q68H;-7 z8>sFp4uQ#8ql?!{5Es*~D;HM~|0KS4F0>#Y)uk&l zG-%GHcCuibfcTsjEbG4*qr6OwF3-0~R4Q1WMx~=*zzL%&JV}U5rF&#IH^&RqE0Yn1sLvT1%sK& z7rT=A_F(qBiQ}9%>S3@jx=~kd4`!xjMIyOwpzrU_u-_Ytejmj8_wAJshqQ;xmdz1N zcg5!#{yj$5;cn+1v5c-)f<=?^2#i0=gk?hRV0_^N!P&RSuYN6g;4|9iPFPP!KjB7x z4HsgiZw$}CpO%L+8cHo-%^Ci^)c-C`TM)~j`OhLne*qAU#4Q+Uk#iCXs%=3kxLv4 zs!mv+9z7?+%W*8&f!Onw_4dJbcd@A_ zCFfe4u3;-PZ@bPldtwKBgE1p#K4AyXw90s{T*Tqcoaz+@2V+O3O%g zc^uxIT$(S4pZf1#LD=?|G0Q z&Z(vrL)?Hw+Db;Ow-?!(1wW%4%B{#wKYOgxNQ@-9UJ`5U@TUGK_Y-R(W6;z)dyLgA z72c+FImW8J?+mpl`(g!0=N=VM4Pi-3Dw5{5*Rc|^=XkEPY1q#vUkoyGldy_J^0={# zw^#*#nXER?5LQz4_-d+vCssTsOTWF=ise`xz($T#%+K-DM*ERA;?xw09HCym(c>$h zyG^6PxKe5;Wd!;?|1V(P!2NE3Yfsu1xGR>7u!RR5=41FHzhgf$CxfOT-#`7qYf?RjO!tVfwZ(c2k zr$_YV`~x4f&IoPujG}zG(3Fy7)(Myo&AT^GjJRy}738XnL}31wt}js)30S~MvO3iw zAN;0IhEg8N@v@1Yyhb_MAuP)W@Bh6o131?Yi)gNXJ)5@;BL+jygQc?dE}@=*&Cbj2 znP8aZJ=v4?5aiGN_nG5v6&Q)0y7VP!6pY%jlF5y%qh7lemBpK#U}&vPe>l$+3~mjj zu{9zeZRpFDxRh8h6w>^6^^+U&k6zgM&+rx)7JBxBJ=hWqz58r3d>o4MXXV;t3{i-C zqYzaRaRf%ZD4uI`<%6Lfxcnu)8w`&<{kU-654^|4 zVAS|>-s}^^y^MN!&F+CG82G6y+OC5*RmSqR3h}Kd*Z60JzXG85B8QjKcrEHls1+8x zeG73cBsF&mG{JyvXZcCM3F1+BP2xgOZiXYOhIUzWobhGACe)LA zB6O6o$@V=*PaPbVA(lg0??} z{=vt}pu9eKqGep(42yiRaNV9FBo-Acyb{$9r+c#?ns0f zVJ8gnjLXJ`I6@h>pjbl0lQTDeYsj#NBNX0YjioEaPEv9|)ct0}_J0}Q`P8|L9fWGW zv%H0R5S|I{xCR_z%iqjGNP}y!#l&~tgvi;k<;keu`%yQsg`(%?nupTZIt`s0S7@CEWb`u*9qI|JAs&P;6Q3 zAa;E28s6m}X*j(7^Q50A$#DduUFW7=vEqo7ym?fnd~k%XnmKDvdJ@+*mlqPEvv2$ zbiQd8`duOn)*oKsy>kZfR64Z-Fa7pHx=W(XIixqONxjXi1_)g?pX<%Uv%Dp;o0p`C?H(~dB4Pt|XR^N|S%dr08Tld3y?}7&T9dZ5e3M}mwhyE=oG=EaCZdJVa5%m4BYkigz z0p3-)1aCig2Az8qyDz@vfggSqm8G0Fv8MX9=Sqv!*dLa<0E>FmUu>X@7p^xCmhiq( zm9ShxIk%>bdGaOXS5_nm-D(Akg|U4H_nA>1yGvt{ln^ZCV0)@prqNvUC(q!|Rj{0r z682d?8gV_I{muD<2bOQAf0h1?_SeIgUsFw^9zwH$OZH=*z*3&Us}-9ll)LLox>tFC zbVG{|^TTLA-XF!#%Z_+;J9X@VCg{&%Y3ku=02ZE$>J>bA36}H+b{qQjz|vLqOU0K4 z5FeyR?%3}kn8&LYVZOHq<`)IRd{NKxylRnO3NOlmE0w>fwD(3n>V`9F)NF`PvR<+s zlZ@v4B`ZIi?}LRLmvfyZ0bt>WToNT?F}e<8QT#{9pUGn*%5dNWmY!BSuaF>JHRy8t z4}1gc;FA#-(a|)v=P^BdXv~al;l$QDyuErFi_ORTd4xP8 z!&b|`-aQ>3!j=?>js?gnKpjas-k0hsP?zcWK_%({YyCDRb1)Q(HOq>(=iSQ#zuB12 z-e;8o{lTt$6ycx1?@x1Pn@D#bkPZLE01#Jk?wQm4fGTK~mAvHJ5e!<=uXd;T*kaj? zj45ZRuVLQ`Ouui}?_wR(!z5=rQC?!kKUh722kSkK+@rj)iVb;ODW)+@$0qD(*ZT84 zu%3Qlipy&FSS`06Poa(;mODxMRs3Bk*7+6}Ktt<}{VKYbG8GmI5-5O{`bBck?6J8w zp!NuKoE}|WPeGifj$}ofA~7(Ob-jwR?+F-+GZ(}XkQHlVvy1B79-3$2OO_*k)UW`d zw)V9S&`gZ`y+LXs^=rOtjvC4e5PKLtWH6 z9eI)UmK@66^6eP0dgOvt^~X$=vq{LuxMQv5yN2>$K@A-mkzl2bd-3`t>N6}BVZJ|w z`ZR~UeckuW=NWlm?dm#CMG&2nEq~;n5WfKH@2n)& zyW+s=h43pc2+(@rwWYG?c@ZI#3!)&_i;FXm0WNj0{UNShEtlHAjs6 zzD(7%mhN)s>p7XDhmbG+^~#NMHsmXg6dtAgs|i-O7mFg9*ukot+;-ms66yMI;#n5$!IlLaVQU9XMG7)%WfSPJmvvwW-996Wd*^SyH&gl zfhyQw)#oo4=LQ>3Sq94tN5T3OF%ABr8rWC`<>#Vk(0y&te7uGDk0k-i4wo6wIi6*h zCK~l{cNJ}J&P9N>(%5VL>6W15A0mT{cZ0r@Wviv1r(mEh;@1b#^{%YU}9 z18pzEc+`HP+;`Un8@bonpfhK*z6R;`UCF#mm`xetMT~l++UI~?dj=;~rAW}jQ}g}q zj5p|W_3P;R%!`NDh&*88jJ*H)c7_9y-J`+D6mtfy!q#@a&%YpmVqz2oDC{Rz~u>F*@N z=GB~Q+C4h3c~y!#laKtdP5GLKHsn9CLxLrVKCxhIqqqCo_2@*D4@r9&UWxwwx2S?j zc#6$v%rCaZjA4^2BU2IYh_U|HJ4?IMi1#4q!=Y?KjWw`tgw&rm$2tnA=xSv8u(i$e zSNxigpD&&Jz_Wx6hZldPyk{^DJJP+F9k8l~owB^>SgVo8_Ol}|EUU+28?meT)h*TJ*8D2x& zIJxd`ipijVtMPLq=PNKcgkvf=g9n-<9to@1>|&`?c&=x^lY`cX^4G*oMIehUc69hX z6KLbn__k@z4tgoMDHZU~A|F~}RYpz{$ntr~gu07BcWk9~)pt5Dpz*Go(iHV~unVp6 z$XrByUASEx8Fc>ESuFha%^gf!c%2c~_yvrIPMDZ97=ZE1qoNM~62Lg^w|9ytPded# zRq%Ct9T*Ec7wdL`6ZB}=a219gpxi}<)|u%vu%tX))a!l-7RB$-W=S=J#iUD7b`2

otx?e9h?ZWmoL$CsDpY>GC`q%5#q%pYhf;e+&M2hz(Z# zhw>ghT_trFa=|pCM&GXgA{fX{>Abb-3kJw@68;@(f&PYpri%JH92wz%V$o0d5pUU% z?5Xt}?%Z0shlf2Yj{Jn0!NPDEM|qEtR#9LGNBN?j;j-%l4)5COd%I>g93g9Z(jr#{ zj_6`kte9>;?%bdfGj{?7j?Ad5{ziu|?z~x=T(*TN=uj~pUAwjll=#f7Zf7FQUF=+mx+QTKG2HLBg{~Oe<2FoY@oeBQLV6iv*iR+uM zVA;x*k?|esnHec{R8wO7f4^yq0SD3v?~H`4=&Fm#V;|G9%%_u@RVzP9=AU z&jE9@{i1?45@1gH-EG~NG%%mqoAR9xt@8$q(;ajUC=Y%4jaeSz<+3nq?JS0ap*xs< zfX@do`0K6h0^*mC@Vabhr6GR2RYHP!H{ue1Rm_eJT?7rb{hog}LP4wN>FMkKV9-!G zb$h>E8FZTxS-I`$fnVO`+=Xav@Jl>2B3G0RwA;PI>%5=|S_4C7m`2G!%g_RW-;pK2 z&55;Uel7#GakYd#@u{G?syoMxPy}RmqLDk^`B`)+Desmy3QguSUF-}ltf(Z<$`^s z`cBkur^~c6`;!&SvQzJJ=F)-b?jg1>20>stI-dT)!)`ErkUSaCGY)1Qe+ZXL{Q}EX zw;j`jQV~zNT6i`v9IU7@DR3DlfjQiy-ci;=u zS)h;ab84s|ns+98PT?M(1=|`GUwVX9!S?-uphi&^u>Iu0RKkHZ*e2pT*4jez$-GN2 zA|2&Ta9x%E{Hwr5-}`foH6OtGs^7f$IW*5|-;kN8LmV>s{OK~nQn2wZ+mW7I9xR*f zgiXu-1j|jfVC*B>rytNduHAP>z2X4R^SU2c^WW6|Cx!TRJlNyl=UHH*?WMoD!z$v7 z)8oc(w1Z8-G-~IkeqdduqWN@Y8LaaqZPuFzgH_2C8prxYuuSpezmgR~u$=Af(5;F5 zE9RO$UXIA$G4|rPH^v_zT_YDjs(H!SF*YwF68Cbn>Dtspr&B-?3QCto|eRkcCBi~k{J||Tl&)s+0VD2Hl zL{zdbn5Pzcw7g{m=A1A1k^+uwN@_8dq3+@mEE^%EDDK>y^Y#S+xVJQ(aD#ZCVZaWy)tZ8#BM z0Xi+{qdfMAr<(YVNe>vKeLnVCya6=++ZYkOfab0ic-%}37eVvgYe!GqQb50OzA8QC z2CV0RM$qgW$H&Sa3u+}5j&ixaf--S>PMuIRPc`q8(r3E{O8;i9=;Nc@=$#^| zSdST`k98a_LbU#S$`|@)pkDXh^m?9{HKYTZ$vmY)x;N9PaF!>!f6mOC^@x`^GynZ# z2~P$3`EBF*6_6jAPdwL2h8xUR|H_NyNBk_EBUCza0%mSZ9#|}zfEg<%8CItX#G{G` zjNrNirXM8nU)7KUQw{QVx*SztI#lvL!FwVwbH`H6Nc$A&&Kt6M){bCCc6?yv?<$z` zkhlp5v*2C>L5?Gsv#d3RVB-Ys4g~v)GhLsHGudXJl6Q2E(+Wy4Zn81J64_t6X(YP#9P)Q&3pT>5lJw3qA!SU2|wZi=hbZU*jIbiB< zu=jV;K2*mMG49QeeLlwF8%bH?Nt4wYZiWJFv? z4~v*vhG2~zv)DEbL~~tZ*!KdRPxIhPluQ~}{jQUD=Q`^BlMMS^GdhZLPa^t>x#3_= zG@JWhKgtX96w7jWA%4VAD&vMS^3%Cxw)y2ygIPNtk7UbgFk5@)Sy&^=ldn{M$+gZz zdU}kT&&fDgP|BQ;l~)BzykBs&DZXIwcLS@b{TNts6W@v$eT%NQZFD<&5G)4in+>z= zf<@h<$`8RiD0jcfO6-j|KailVQ}j7lOi>afer$rRyteu>-rkKZ;r-^6Sbu^o4Jwx@ z5t3kC@>#?ygL~MY71JH_G)`>P(EU$VF&j4eeUjNO(iEGx;!`0`aTgo2zHsq;?j>yD z%8iR{Mkpt2H8Ig9Gl(r(?1?)}uw(lfWbFjAV%Q;Ps$C6b4|W);QhB3G4Tm@I&qcLc z9eti@%G91CUsA8ZKk7onn^qS+BDYEfz1Qu_qWXHk;BC@qdOY;+2nDk*qIu?EO+jT8 z;?xXz)et-u^arCq<3%an@SyzdO58-8DOjTz_}23p@dcLpMwhg_!BqT+R`)XE_FZ*j z$|gg(nu8(A2a);6Um@3R-jB}HUvc+CSy3M3;(TK;J<3zM=v(|n0{tp)X_JT_%Hh5g zH~c7)h5V@|LjDx|V4Xqdml9bj%IoUuI<>?ie&YkS)O-2J@9~j6iU#=xBD}lwB9Ncp zFQMl36r{J2zuV%ti+m=DWy=k+=zXU_T=5du2L@LJ3ZC7j0Rtto6{Y_ULI1lerVSa6 z;19pT5A_@y@aNClKi4&rz=Z!{J0Z<`F!lOjvj!8|pGFT~C_;T2(-}*ATHmw4>|@8d zicI9g2u)^ti}Lkzmky@Z#8IAE_t~7dZZnuaNZ61eLY&=zQMISD?I?d>#Su!c2_}DJ z_)XR~qIsgqRqvxXFnI5;Grf)?;_YiT>i_k?-i0llRsJ~-K95xY&ZfPIRZz^9*cv^@ zmTi;HY1=zsGjmrnUd_s2>(jj@g`}5oXD;W3uoD9ufz2;{`+E>ObbEMd_suVC{+V{_ zxTYvJKT?uZyv&D9@*2F7*BZvkjc(}Bz9j_#nfua4iVUE{ML18jehiGH@lrCxvVqYd zg^mtYCB)S*yrb@r4n}h|E5D}Bfj_?4!DpYL{6L~}hbQuFO`NF?y!SO58(Y0AP67ee zp``R)rhyOZ35Z+Jl{5mq?{$v_E}wuF=kSO#_RgSj$d&JT1@bpAO5wQQnu7+ZAQtY& zT-fV*u|4DDI&6~YZ7>&a4mN&lIelUNJ~nO0L~`rf2W%&^A#qKQ7~B2yl{Vw!KkVNk zVcij-8+LN*;tQR+aO@zDmflam!pEE*e$>7t%_MG51LN4==W;R-Oky9<^q?>|1AK>X#X1fJgx z?qIdsK%qwreGcs;EFu$%VOcG{bS&0Mn_!gaVv7wtib!NW=)pP^?p1PDlYpMWBH#5k zE6{PHlrnebD(E4*o$5{onT_cLRNnTQUy=cZA_@{t+)>*SMuV@wPDTB5TotLsEP9mzYsR{}tv z=l0YTW(_v#EdRJ?rRo96{)UdRsmSN{GhCf#qS7IVy^`V6_+D=F;I; zuoy+HCwv?Ekzal~U&fRO7L|LSsDFwBeLP393+Ta$TyMmbozt444CN% z4Cv-^027-^OD&w)IKmZ$9eYuH9KnZI*L(bWa0C|aPo7^0!$#1I^;!HN_U9kB46n8c zHu-+EAWBFQM>H(4Vs+CWcisUg3^KjNo$dPf)i%BzcSg5GJCQ#GM^yUwFmYfQM|zI7 z$)c1LG)+92zx}8M3^pjvlNX?M$HQL#O;H>e@Z~6D9Y#EV87o!Q!UL2S`=RymC=Cpf zOB5&xj)A@+`9tnyS4{ekc~(D!~bN#{NWmedJ5FOHyj z0#9#OW)1Q)H%c9jq(_6b7aF_@wGLo4%wmMX0r}HhELC;zxWO3x;m&oG6P&iVTu7WW zgzn$Q6aU+&mq1=zMvHm^^wa;TIqu^IBcIfTyB?uFod5XgG{SzN+#j8IhaK|sw!XLW zK)i%;4m}*c3@I4fx%%RoSu>cR5VRM+zzYV-D$e9t2!bIcG0rmN2OP@Ry`|=a=Cg0U z)%_Dl0qry6Ii-nfpy%$5`arHEFknfSANf%V^-Tn3NUA4*z8^O~ORS>(nUK9U8ik|0 zg=i*$>Hz3F*tw9H{u#^SHNHs9T88DR!nq)%*Co5Qj3TEZ_%0)8)c4pKy!d2G`Ly~8 zD1q`?k@1UQ&`NS9FQx?ygrxc>S?Yp*e7xVKnt@<+ILh@_Fb((+#%f^{e2I_kqv9FgG3WofvDJCn`)Ey?mPj)-%E zK-O6R-3yvcvy^K%;tFh>daoFFM#=7-o#Pq~-(BtMjaY<%blD#m?Q8*aHDnS&_Gw`D zrKGQ_R3PJG)zigJ`Ddu28H55dwgO-w6VZSJME^p}qu*6jP=Chp) zSgzgw{9NQ3$(V<-26ZX0~$2rjLoSb?8))@Hp&DLa-74_(iEt(7^vV-X__r93t z1fo9DvvL{-goqc$6mMrfh5g(MePrRdj+K_MOz{>cfkmg6+n&+r+@F=N=l^#R`4?QO zg(o_}s0ZI`?U#tJ^Q`W5@o_h{d{(5m*e@B)YxD8kmI^WSnp*qD_z9cr`7K#Davhs} zTZ`wcABxTX))nVuLVi_y(}jufGHfI_?Ty&@Pi!jx(aA+dQfy|*W4XB>C?)iO@;!Wp=lw09>@gnoCW{Z!;}tc8yN&@)$ceNy#u}u!KXeh> zvc+6}5Ck_32tb*e-sHjWCZW03_*oJ%254{|??LgkN6=vR++JbD78LL~F}%h{2o2g; z6xn8&Ag)P#bgzK0TU(piA@eDzz3=tXpRo2x5hL`eOGkU3~?4UM%ZMaZ1A* zS%X$#H2BacIg+rIssQS#?pbRFnnHn(DYUBIT2TMwIqCdN0o2r0i7hQ%g@)D<*ZS`T zLYWS(kL*0*P;2>ej-H<%G)?L8P$%7lGX1$X%%smi-AZPkR68T6-DLTN)QAdlXT}VU zaCAbWd=u=bGaBkFDHQi8U}(F;1+^b-PQM6Ph58TV zBXVZ>pu9@qUCrbQXodfYST3g*O5*u-N~*R)#Yy{uSR*fZmm=oor5P`%UDx(P4L<<# zxKMj|{78d(j!IVTI47v{-}Jo2#(k(3$5PmEG6?mQMZ4q-Dxk>|j?){i3{W|Ul<2oz zEYx%Lo|1~(gO=6jUtRFcfCjYdBkk9Cp;{g0F}{Ki4ea{rxZkQlIf+O8a#d7NI(;fdjk)a0a`Q8dBQxk=1Pk)sLhvh**s*t5;0(sCzr8MW&LMt?Va>6rAeF`-w zIE0loKR{SaPj55m1dZ8QqTKP);H?OX3-Y^#(0IU&<5yqj=AvK}X;{eY0Qzf^TO5z6l`bFx(jK?7ECPF7_@D4^5+KAyr7Y7(kW z-aVd&x;dW%zqIi$3Rb}T<1sO{VLQ-Hy6Kvu=Q7k1OXWzRUV)nLKN7TPkVBE}Pt5$Z#L%Q$ zOX&4R6*O)aYWRR%g-S=BiWN;mP`e@RY)bK6Bug23*H#?N=`(8EFZ~EEvM}`|p zhto=g+Xq0+k!^x3?oh~2^`*H&DIZF=Ua-D9`UgtSzfCBSdjN$@EoZ*q%R_!vgIRvt zpHMqBO+25U7n+KwIZ5KOpx%@@N3;eLG;q9ed1);L>SZ+^28QgS=YZRRe7Fo6rd%hX zeNhWe?TV+a4D}15vm2u?KWeb?UrWsvm&b zCYKec58p%0M-lyYe!0--DDC@)r9f!-q=tT@K^ZFZ=g>};NB$(Y3n=YVi`gqr*Iuq5D_GzCZ|NOYMC5nirwsY)yL! zh=AsX#<>jXy->Hyi|r@b5tOg%RozamhQj(44f!_>pz5s1XVQsIsC4g${2mn#yp><| zUqn_Olsxz1M!9PpysCf7!6$kEWe*2_5}C3?9t-^!tfACU$Y)7}UpO4zy+Q6kyln#S zB)wY89Ce2>G1v6DUdBUH>Q8ZNW%r>$@CnWBt1VE+%|j~kU>RzhdpB~SCksma4R?_U zSAtqnpwh9Y7%HDiD%~keh1!Y4#1v8P(6-)2$-`_2`g*S?JGA*ha9020??M^KXYtph zN%219OPdk2U{;1o%VHA$oRXn(@U0M$2486Ew8=gdSOIlcOAl;sr9=H+IknewF{sP> z%}wX|d1yH5x5g+p0}VcI<=@(7h88X&)6_aFP)?l(V@F+6w3t&>dZm0b*F9r6Z>Hf}?i zcBTWBo~KapVZEJ*KoPo6luONdR8Ze=q}tpXty4P>E(}>chWa-zy9_gTLOuAczv0_e zXuzAYZ=W;-%?DYM)fw(WrLk#wKOcXn#v@eGJi!jtzL=l7Rin?bTbUPqbO_Y49psbY zPKB~Lc2iftDb$`w60Z+5hr-LCbzF)I+BOQV{eV%>`mgWQ+fTF5=2KAb;-`5ijmPe4 zlo0}r9`)}vti6I-R`1KtJDoy9vT(l~;uNU+{o-9hN>!*kCveqkVHfHb?OjQ~Q2=!d z9r%PBv!LO#lSj`grXc+O1jMH|L$#}4Dqb+7{l?%e;(w}4P_Fc-p_N7l%B>8#G*auHe(LNOL;lKZqKWs%p%X$3spYGy8%lL>H=7$%cR!mWiHWfS6B=4>Jyf_M#JR)7A z_S2yXAK77CHy4!Nj}fj|8HV!Riy^DpdeHO_ed=4*RexO zjw$7#-(R7W=dm4qaR*wDcJi%{u0eIwCx>Tt3yNJAQhWWa74l7*dkg&3f&3rst;8llv;W?*n6Xkp(}tUL+oAzb zm6PgfPtQ1%aX0@MR~`m6yDqtRPmn-;;u;Osh-j#{epmHg|95Cw741lM6}`82yRst4 zc+m4_>s};D2W<{6s#!{lLBn2;=R&Q4Zc+$=`X&o1mVWB!bD3~I zcjhIO(IklO2xWnqZMBb|1f4(4=Bnfq&N#z8*b%F*mlu4BE1Zpzl zoZ01upjMcQV$8l9RJUUC{~4nL#iWPy2@6A@{6xbdu0scE{#U>^7Oex7&0e_q`J?v~ zPR7nGy%5U1;loRhPlA$$6qkwX`XKLm#CbN3P$>Pvce_kf9?Df@<2Q3&hlXLUz9Vi_ z(DvL?j?4FHD42bF$r?SkMptrz%h=HWBkF|h5iGRB!#u!rS8nweQu55$gs*l}STm&t@@bKI%1G zxuy%XPh2M!s;!~nim4$rkU{$<-XvWWcc^_FGw>(I6KZw2ya~+lgW6~NTSCZNq0zTb zXGRwHpm8LZER(!N&|>VNY1Cih|o>c^ci{hUk=P2lS6DX$FVt&nB8l%Wp!wUyqu z%g{l7qA#T#QtD9j;J*tcH2LsW{PNMOfmL|3?}}lQJcQR%gnLC;UPHE-UVfTaJ5UR+ zBJ_^a8>skWLokW>2&!I?T2ra4hK9vAI=!A>gSuQCnY6#zp|-j9dV-%TG!`7`EaVJ= zM(r{Yv8tI+zB)3-w>1E2fnzQTLsqD&9TCQl_BT?O5={J@Y@w2W`)8S}xzNC(nw|QG z8&sN~Ef)TCAIk5ksa?CP4y6+=({Q#BLI(4Kg!8srP-EOQTjO*FDz4TV`J|3QHG`qA zr|%b`L1Bdi<**id9&5k9UI~Tzg2Bn^OJva4jUaodj|E!#haCQ({RgdUh=={l-$84$ z(m?3m38f9nb7IobdNre?t#wfv-uJ8-b?O&|w%YtZj-Tv9`yh`jrt%c11$8gJn0f#e zTss;*Ih}zHZ*Bt~!2+}n7=QJ?9SLpt9K3C>=0nR!?H?hA?a2f<59((V2%g#b0QHT{+SgugLPKs_0S5LTP+!IC#-KI&yVUrj3TG;K zXOc4G2hAl2lX*(NHikp!BX7=Q8VH5%yx%#Ur-Hm94rhjaL?FL+xlO>ouh8J~GvYJB z-cawO48C+z9W)5J^I)ci1nNb4rAc0BhlbvZ?1ToFpxASoNS;M?C|{n@O!`p>a`=^) z*lh1YHhyxM)Q?q=>&ttltTW5-zu0E0SkXQ7yocU#@i#^1k}DUk7H~qXV!|GJJsYUe zRMNFm5D2vrtj!f&g`vK6&7_mCDpcKR_UjFxf`*@U&U)-GLcLR-#~zZRP>N*p%CJi@ z)MosdRuQ!Yb(lHxxaBIL&U=a7&h%GM`plC2D8mn^(0NfH)?^GS9zMMmeP7Am?% zDi(!!LB2Si9DWaTD6jF2(?N|6Lc>)O+5gty6;X-oW*liF7+E;Ym!Xsm;4Te z&ngfF*%QM5?C)2qe@KP`&*8xQr%)(DrJtl-%?m{mlS?MG3>2Lw;q50%f^dOD@^a@kgn6XY zQNzjbzcuqlce75YEG#4$h0Yr$Z)6B$ixbg(IQvPTfer1meyImt=Y={vzV}{}La68Q z^`8bhFB?M6Cvt{yP{)(BZUmiQw2q_hz5oAvCTBbD#ey@`SPn|PD6a^uIYsiM`Jd~o)azHNOw3~@B8(25E}Yx@zDl< zg6M!DM&+6l!ZH`6zGAso} z*`W2~>m8h1kDz&Z5tl`~JGAWi-CG}*2Gx2rvX-J;pd#yN<8S3wXmBYu{6yyzTD-_q zmehF#&EJ5?VDuieg5deE~s%O zYth3l8R|ogk%fm&P?rL4n=srJ>a7gBz5V3`_0JIzA5@|BG=EBhqu&bZ>@ny*DrAQD z&N1lA=-z}X%BZsQHz8EC6@WCqnxRsNX09)tJG2ViFWy^Lhun24XXs?pp=8a#sDWc2 z)KC@o8YS~ZI)G)nn0+id&slo)wCO-&&*dq{^$*a_ieLC3UCX zIH7j!^CNk8W~k?ae?=~v5AB28>otHA(n}7DkCRNHzE#qeXH^K)6Mr8OcP9->6{g%9 zvtWY{~Ps!!b`B_>1SPZF8Zl>P-+3i z^kU@?39BIAMyF5a+$|`Q_KYKjj~VK#QVRtTIYE=?CF9{}E~pvwev?dH4Qh50)zgev zLoI_jd*ix~NKZTe)2A!~>d$Tm`~Pi)I_m{WPdSyK&ScUdDZ>WT<=t@EAs~mkzhj5n zioBujy|MyN?N+FUeZ?bT9fWcV22LJSK~VWW>FcE5=b+4R@yvkv|8*9L(TU~@P%5Zv zSo0a*x#v2ftKlK=QGx-U1i?y62nRy}K zb15gu3;_9aHiBf|2SY)V5(lljkDyqo*Ex-dK`6$5PMLJZ2J$OU9cK3Zg?H8dsQ+@F zg9?$YIwz%`P%TaGlATErlzH(TepJVx;3DlK4mo0YH}f9VbxZ)>jlc7kZmkLa=dtD4 zLc9b;W&2I@@VFuU%c2naGDS$U>wvRgQij&y0&U=b6rFcC)&CpDX(<#^M97Tny~k~D zj&YoG>@87JMyODV5J^%(kwVe1BZNqWipp16X(-a5NGZSf@2{?_>r#At-p~7a?)!B= zCn^lyZyg=iD6zt>V`@-M@*xa4O?FpA1IBLx`YveM!p-~MaO=%O@DW*mGy32XEFVTb z5_sVYkC{6-exe=@ckd0{`!Y@X=O<|&-y6cp_Q{9Wd+LFai+bnQ)PQj(Mb3TGZqV8t zj`!Dpf}`oy^Usx^k$FISb@;P>s2a02);S0Q$@iBo|Ncbo0k&Vg;+mjHRqkB#Z5mb| zwuK+c(ty?Qkc3XkE?70B3ZD7L4LiYW=hC=kL2VBYzfW`~YD69-VM-KEPkM9tGReH} zIBeCqQ3}rNtY%~PYv96mB}vum+{JGN zM`PjlbB@PB)r;M!``Zl8InUxdxrB*ss=TAKnJyG_>E1j9%$k)j=Jax z@9kgqJp9%H*ZNb9BTYQ;NMG-6nerDN>V4~)mW$z?)6B=SI0m1>ZMPWt*FoPXefdbr zC(y6#p5XkP59-a_iTZcs|Iw`PInd*k0rjzhdcU72XzJP8>@pqX{O`J# z$W{WE=YJnqNoIp~{=Yj)MMalvvnFiw>@2y%}OSY36Lf!xyz z6Y0LBKjqU>;ooQrm#M;X>DT;l+2qsK%gh5+%k4VR`cGk<@M$z_+z__XXPYzTC!zmx zCm&_E9&9qyoMsQC!=&20^8H8!jEDIrZVT|jdRjy77RMqSpW6gAwXcKYrD*n!$El!r zy*1xS^g+|3Do>u8iNn%wq~ME#2#ii0XgamG96BpXzof2Yf?|F9kB2SfgBsff_1FKB zg`uzqYmCtzC^0Xu*uc*P-3wK{B~!Mr|Ka@Mz}jY@p>^!wFDqzi&_0h!2*Nn|Q~rOP z*Z%+f_~MuA$a4?nzj~D$p1bwr)4z(tkIjBPZ;TJL)|BoZ_;wvimsi_-a{dP8IMus{ ziYK7GE`PLpne_9S6{FQ{T=2}k@b(rbH++S@_T2wA0e2Vcx}4NLctlh0)$9C*t59n} zw`UFLd!=iBt{;NyX_i(R(UvA>@Dce()LVt`h)Rq|Cyn`q(4q*kKa(@4STha z&kz0t!ESK#(`+X;*oz%pxv(l7c8yE%>m^cQ-)vIr9Q=;_{&aFCN&oB?e-Wo{gg`E> zR3=53jhwSn9`Xf8q50IFqd(|6jLG$L^>!PaIo*0*=I(>Tm7cH^;w!i?I|@)L-@%#n zT|+lhAzZ2+94pq?2uk9UVqpa<7^ZuPO_b2FJ!)@6a?A(Fee@Wzl{pGmmKu!)x8HE1 z8q}5M7=a$;zsFFP%z^wVLhr8`gMKeMsJJ*Bj4NSeNl+PR%!8+fJ`laIU(CK^suXTh z^RG>azE11!w7azBE1X?_sD+*R2I}BV$MXuS;qs{T(eKbExI_uvbaA{IS3 zH?3<~)nEr|uYgEE%qY>}JA!s9*^pgd_oUWTCBm)zR{qe@w{UHK{jx>G7mRDSeTrWb z-OT4vU7`OlTudD$tmlcY`uJz_&-x^|WMTb3-M?^o*IUr4V+R^d{s_U6K~o(5su8^i z=cmm<=dR>K$Q6UHeG32n=I;Jhx3B z2HxK{Jkq!gGJ?-Kw>3<`TH0epb3y`C?GMQve>Dxc3s3VmxBP(P!=s(r?PT72ET-j^ za|XJ=BsYp;D7 zS1$qm*Q}CuD-XFxhqnD0JP$LLQwm{hGM(bhx1+Uj|Ji)PT{`~*-@D(jWKc16*WPM&G_i=cva`ar?L3I4Y+`<%$!;v$* zLS60w9Pc!&yvP*-dyDWtp^*x3y*9d9*3b(kzDCuvdCdWAdEp>)zFG2KC&=(T@eBt{BWNtrPeH8)16d zdj-;O+E;L#Z5##TanAFAcZ<+vwsg?nlMh1^Gs~J`(x>dWeyCEt7Z&;l*Dr0Rf$L91 z^WWiDP)rlK#w48ubGsjIvO6tdWH841g4}CrM@heM47&TOr5o2J;j(vg+r=B1aByJ~*|g#TY_mtx5(9q0!L*dq znRyn@rqOpcCN{v?*448{qYaLmMCxkaG=nhAgD10y4;h_f`L{O#PKoIk1k#t_DpK&h zzMS+iZS!$o`N@42yZkw7Y8PCas*R1DxZ$yJ#SiL23tR;>MuN5*!ReI-qdCG8PPaB* zxhnkw<~a}kzWi+qZ&uF>5)Wvw(2O2Vd7%lnua|#VFWrQ@j^LiiZhqK$%j!D&v%sH8 z_l#q^H+;6J3)Hdt5&hQ1ptocgek=d=A96ec@6B!}-W0dOPubZfr~-VTji%OpOi zcWYPlG&7vkZ0Bp^iQcw;ZI**p3Y<)NPRkt1CqB$RPN9&0kV`0(T>X*(N6nQ_o)>X| zvhFj>P_Gw^kF2midD9Yhci;1!v5|q#UHdkt>$>piiz(fweFE<71r4R+%y8pg&;9YU zEj&|SaccyZ!{eQym)+(Z=nZi6K2GTcHtyW85S0YT);pf(H z_V-*Wd~OatnOXV=w^tSi)3&z3bN|m5amTn2rrdnt$KfzW{+Wm11S zl|H5v=s`X3arEWpSlCaA9A@1~e3V&*=V9%`uv;Y-!2hre_K|rGb#bk5n5v96+{*^X zA~C<)@2a3L7TPS5X9&3rvwMv?hamdo>%(m^oKX9t3Y? zM)_;y)T(@Vtfst~xgZONZqC};XYRxwQ*pl^p-=8v$E@`{Qn0iRIcurL3oFir2giD< zL3#DOc&vYPbT;}2yk4!9TU_wNu70zKy?LAA>H552 z+D`?Zk9vFz?o;6Yb!FyC4JObxOgXA~H-dJy)$0bimpv|SS+V8{7t9?mr=C*chRs$* zU4O4>P!=0hgj)bJA$RMc!Fo7vYs`r2>VPH7-LdR%eZY|j-N4NcVW4_aso_o~4AW>m zD!!~R&2@E%a2kT8taAVPPc%4+{2DgTJP%7F>gZG{nGZKy)zH6S42v)mzq=#7(0H{Z zHD9I&T`9(&{dHqd`fE8^UD5;no$_|)teByb=66|HCj>GrVJc=Tt06MK@#&O=9TaEm z{aM5s;p?~EMJqcDZX;(_|95a2p21;B<_-IZukh8h(#9B``&MX<9bE;+Th&*=7brxR zjov$IPx_&-V_fDJVnJ`3bnMUXCi=3x_cfDpxYUKo{Tt4J`-yX&H6`V6FcE!w(R~QE z)Ng~gZV151C%@!zVK1nk8fAp-Pr&6=OV3Iy!$r6zGM=0Cxe2eQMVa~GEPOMpPcZi%NgHve+aq^|e3m@I)78l-;vfg5OJdHuqY5}>cY;J47a0raj-IyIde zK{t-jdls4ksyF|UkL6i#JjC<%^kFie3e?%UG@XG1-PP<;1nFZpCkBM(dBWmts@IBZ z+%P+JT&UjXHz?2VkMg}d1*dh^OWW0FpmdI>MSXB5tS`0R|FwS@Dt9H6&tA)cx~V|g zMfX)OoVSbjrbxrE>(ZCg`E@WF%FF8B5d`C*)iq@!?Xdoql-2fX3FL!$^|z{+!cMI( zj_YY zQO?ot#gI!{zb}8x8y=gzI*i&+!%dhHEE`66C==7!)k~k?{+aCEWF`Ik;D*-+50Uxh z@$$|+pTglHBEyM$yWkj+Tv4_52wYP2-^U*O1(&3L-v&Ql;zx!%^Y?3kN}pDe`RfF# z*=(l!vkAC-xcpOg1M!DbcJW#^5kK6V?*Z5I2r_r)+OmBnzX#Tt%89ZN&;>c`4;bA9 zW0mn5ZbNs-B=67a&GCb|>?xOtEeVj?^;h=iW<{ut4yx#V2!>kgGuanz5s;N&Q|UNQ zf#REgwD^0G(2AJr5IpV+Y&s(3@{e#C#fJwfYjR;~>t=ODmOTHtmyzRY#-Q${Gv7*~ zfb#OR;v+2;DB^QMPro;0d>7&ypYcP|N{aQe(jdS`Kd65?A8JE4UAoP-!8Gxi=!H2S z7)oq8dbn8@GF}76`L`w$ojNktw_FJ7YV=vZ(_i4&>k;(Y^FC;qZzqrZ^M-AGgP*nL z9@x$Ay+W0;h56Rw|H+4Y!HMHF$8$6C-cHAy*-r@uC1&j0Zat!toKrqgv8jvvJHMB` zFK>mTMbo?A3CF?Uz9*rgM*6)G?g^GhvZVe>Q;n7l;rK|pJDXP#j-Tr{B?WeX@~=bL zB;yJw@}?>($~vIFk~>6uV+SXm+am#!`#>9JH~Hyi1XqrYiW_vb;hJ`+rSESVTodNr zoCqoey|_;7mNo@c6U|KR1TuH1?8(>3`2n}LYQ=*aNnKi(p~X?d1)E1=f+yD}!(q+7 zpGwI|usgrhC%a(@)bJc{aFrRzpCmZ+)lp4E#TgpvgQ6^D#qV5^Y!?kY?pR%i677(Dhy|hI1BSe%KP!fzcA*1c>mt!OR!Jqil1Md1`D0MrvXKsuw&J~eqxaL z=PpC`oj0ySU+ZgMu9XuEn|`q#wyGjOkH4!*u>~mMLxK6nh>y=r>1Q?Wfv$dTUHgus zP#*gp&9t8#ifz5iEP=b>Z(CIM&t@6U1_{Msh2?OSSDFpW+#m(y&gj-ThZ;Cl$ z3b)@%3=a!d=qw7*t!{OZxkBsAE*){$R|XlZ5}JnL!Or)}w-3O2TgN=tg&>%;p7|+M zRSBD{h2*2E%%Hp8jQ%k6)_t`AAPZB>)xhmM*3D%YIRa^sf7->Xl$z>jc6+;>IXx!TN zdQI9v$clbjHFU8Lsx!wWeO7*j;;3tON1Ynf?tlD{>*I@^nO~H$p3)I4#l86L1`kvm z0zMor-v|F&8g4rmg5h;)eHv9o1$%3@|8=|a8{58imM!Y{!tTM*+n+isAiR!+#(p6k z^5by_>zET^HnvSx+HM)CQ^WKpU27wZjJTbWlyr#I4yDlM`={kmcA$lgdOAE?dg^Zx|h?wbvdZ|DIkmkwY3 z`<&GKXQeTh@?afa$3G*^215DIiW5H1x+8s*aaayktBus8LL6XoyJrP|+IQIGKg*3K z{Tt&={nM8;2e$ z;t3xk%JVcZ_&I3O7rU9-NnPhzA+(r7h0E5ol(WN?#K%dSk99cw!dH&eUz{hX!^`~PU@ZND}AZfV;eurc``gY|ac-39o$!T@$d@=N`GL!H# z8oQa?{paAv%n>%B#R`|w{Lml%Ysr1YDqUj943E-`_=(Wt@Mcb=7f*hL`*nZCki2%d z9j@53=@=dK20ep!Cx=1R)<08!V2;d365I^JMbV^QKKyp54o;^Z^HSXHV1IPrlw!6b zoPU3B_F^J^;+vMuHmgbfRC9PD7q}5L4HK3qt2UU3wD`uSw*eK>+azOTU}k%5LAQYDz~S&Tp`>{m1aPM zH%uq5{WsIQq!gWK%ZuJ!>b(5P4Ii?ov9(J9uq$iW1U7pBq8 z2F&mt>7CwU%?mdjo{X6HH{r8-mqXZhO?Y_B?W~{X1O5KvG)WH9&vWNr=C8LSbFP(i z7iK}dv$w16NEX~0A`iJWM}q2+?rim~4z6zTtQOm1V17-Gp&Cs5^>~&K3rY3FH{H^u zSH29K+f>L~L^$shmN;kL15g~%Df#}NDvVZ4buFC!3?u3IkyjZiP}{2WCMi0VaO;g3 zZPaO4r-_epmk~dpSaX|&HJL-l=&|#pFVf4}pIMOA0=>|PPr56bV7Y6rnv!cE(e+27 zRSr`@vvhSU9AbfM)UxG^`tj~rL7MPlZceqD4ur2jWX$gvE_hX} z*i-t(farP8SB`C258L6h&W4@Zuy=T0o?Chx=FfyC7>-47+%@DICPMUOw~Q6@ANXOH z?ZZ*h=nab8{qgg@4C2$?*OL~}N1)H)CJG<<`k>%GuR<%{MncAD4|z(+y4|GJY}WS`}qHe?tk)R z-B=E(zkj56T_APBZ;D$9Fz?_&%{N7BqzVMb8aBMmA z!9R}l-H}Xksys9}?5jTPphxQPrX68NMal2c!2S!%D#C3#$hBpk+y(k>p{BT##OE?D ziOtC!8#2l+&9{1o8zNPP98p!OCd-_fNC0u(ofrw%Tn+IMs&Gu{&fw zi5=Zg`GN4fqo>x{eLM)a7p6k{|F*-k^;DW|RW-uwPla^bNy2+qV5otq2STf3?Gh(F z;hvt_JZpXhemtIf0zVsxu3#Lb=&lD(XYYQN05dQ=&sc|j(uU2z=Ynfu9kAuJWWQR- z2j_i%zJG|X1-0{pW9Pvc*nb@Pp>IR{&$DL_**wgK>WX@=ZCyDA=*S|)cp zW7|l+<51g=f?SeoaNXC^TL5FVBb(1?50k#2FP=Vsi|D%_N8;v*&X*t~C3%x@lBR7< zj|<9RQCqO1QDZZlUY}GNY$IF&WtY3!z5=)yRkO{wTf)A*i9PmkHM~ze{<~%i4OV#z zQyV6Jz+m`hk%X=UtTarvFfWNhGdJF1lU5^?5@ajZFjqtQmPw|ZqAD=Hj&0Io@_+;%0GP2)cS+KJ2As-hUY}t->n7YGC z;n$1y_Z3jU^Q(761fUSk`RB!vUa0p!KVnp80c)rGyDYrh;h3Ya;*yXCTvp%beLG3! zjdLIRnAr2+GtZ;FwU6XQ)LWufn-ku&QN?D%WmOo9-O$%DBAm#EQxjcZx#85LS4O{B z3&)N7vkxZx1J%#p^QE~S+z(gRGFQ^!QkWwx$g2Z4k?4Kl#OJlFdD=jGdp1Or`0nU-L3-WHn=V)BJM_`>5oPC)1!+v_h^V$$)%T61jA94z^$V41 zW>)=%YHK8mHFFM>qu+J!&r65SCb9HwZsfkI)Zga)v=weQnxz{mc;P!ljj{Ve?#cC6 z3mWqY_nKMkCs^nOTGiU?Hus4Cux7eZ_|Gn)uLtfr!cBCN!345%oy?z-Z&;?NkLKE7maCAf^+6TxRRN3-`BX5To}QW^b;euy zMbxn-^4!m#NLloW0KNBI+0S!kgiqYObWvUibm2*s`G;%ad`{`kw@4{$nLRJV{MZ-L zv)A@iZ#)av#H+l_W14Wc?bP?$Lv)48_03Z;;&Avi6z<*hj67GN+X@Nsplde!pIO}i zM}$YlN43G>?1`YY!VgIO6D&`CO6ufiNqPP2<-|Yxk9N=30xms)!qGd)_v0I-T=SF( zj6}9WclH{=MWX%dkJVjJRyj2{<#7W_kN5Qig}4Eu)Vi;rbDx2shXHT47ebSKl0ACc6))<50__S~Sm=K)JiY7lw zvq2>yWA)6Ld(hhaBsQ_`ILt0vRoFI}!lwVVY|{f%I3yblezKW{g-Kpec5pRRg$pt_ z5&ufEhOhMRwPo;lsVXjM+Cu*BxN*OmB1~@{n7L;AhvaeQKJ3gS{F$Zag<-(f?s4Z};pcR`l)P2Mq*dM&jR z@c6!EW!i0WF1jxah8eqoak}4K=LGR>n2s4!^uNO8)e8x#Vi}y-nr~LRYm$80&;jLF zs-Rs9wcH%$1(!FpvX!yq{45M=%a@CQmVfW-d7HI_&kM8n5w-xW(`@6wm=u&-3a+bO z-%Ru*gTgCgHPF%hp!hrB5j0G51`gPDLnSLbtZIfqc!DZF@2EqdAD5`LcT59~|NM91 zZZaROExjP#-$VTFzxKURo1wxcH~!*BIyCnpm6-FCK2uq3?MjgS7R>&xJ9dSpw_7y}MR zxw}j@dBd)oZ}82L0yrFEA7Ll{g_FRV*13&D4`;odt$i^aw)#m=CjCiXr0VNTeh1;{ z%NIZBwrqus8mE`T4#Hu(hbq_5SCZU86URT&Cz$7*z4gXC1=b>WXkrb&U?H^Cv+nsm z*d3V@oEx8lRZm5d%G+!>>Di0K^fQP*MB98`oa8E2`}!XU5(e&7+_dPq4Ed7-eU@Q- z(0*heee>KE;KRcDjKw-A3g7NNDA@s}CuA8AR~2?x2`sWlMnXQw4lC;k~4VMk$+O8 z3tp@jrrJlo!Ylv!I^Rrvc#h{xFS9ZsB53(%=J6AVxIN92Nb(&%wLfDcc6Y;}nPK;Q zhK3YYx96#`SD+c6ocmVfHw^u2QtodcSf$qH5ZZZBsFa>Lcl<~d5OchUP2Uj)Wf5UC zmS(u{n-mw_B7Ny}f$a+o!d*pwI>ohpKhc?;uCG_r2mRXnsk}{RK|9TKdeeU-|4^Fs z^oCm@@p%@+XMJ-(Y5Bg&ReCol9X~Z2=LiRAC!-KkHcoivEtF?r^Q12C8x{CG1xBH< z-TB`KNL`{2q)!m8bm88U;-{ying<29!t4mwIc2;Je;1#6LTi@Xx!I&j!9Fd6t~M%iEt4E@XS`)&Ae` zOTT8W)EWoVJK0ke(@C&Mi}&*l*bT#1XMHYNr%YbPfa&LWHIbq2j~N(xoX9(e|*!h7q}zPW)~x2;HZp7bRw^U3Qj6CGFVeU(0{ z;Qi=ASy8SZoReY$Dzypk7;vt9C1*2iW&M1vh*rYkw!VjdN)B8P@1NLtYz@Su+kYF$ zU4jI2@yfYFyx{krsJz@lbhmBxI*&d~k)Km`{29BMuts zW*vX;?1FY+#{unWQ|KA%|F=@Tg7Bpm%S7)Hf7@^`^XDsaq_5y^)i)(`-;E~czi)y- z;b>hS`e+0;Uga_?rTs}B`pc|}mN?Nl3lq&#zrxX6>dBp7S#XYkd+Px|xL?`h+P&um z7$q-ji@P-l=LNLc z;wR=RolMh5z{|Rff7>?^UV!boMdA$nSFccOBHXlV>=yBhlgCN_HS=nme-+eipKLux z+Xb};jn`O3+hDloc5nHoSr~d=-Y2b92#u%fb|L2x)PA5mnM*+ij04>>Ju%z%RLK*g&A`Y`hl z?HFKcCw1OadiNp1U+ILpSL;;5DKI+6eVA~2kE~5~hl##N&u(Wdj>GLz+vg)BZ)cNg zV^>fX2=j*KC~?8r21^7aO~_NNja zVxe(W@mrAf*)+FJk+2icoS%^z0%iB+4{txMCVGBGjZZ1z!g#7HW0c5yo&EUs4JV@O znGBz>J3j_$f63YKX5w$gjTCsuOOSKh9-Wd%e72>J)B#QnF!W?M9RBGAkK+%oELWa} z_k7UbJ-=VWwM z(aPRS`fB>UQx;2bxp{Yj zW|!QFg}GLuM;og$*-s#RHtgI!7@CDgY#sdv{R?+==7YNkzu9tssB{A?yd4J=zL|om zy4Gimz6OT!lH8{kNS@U4UWEPV2f{C`x*X>r1RG;R`Bl2VVWhu&@OiBjOwa6>NV=p* z{EjExJ2my-Fkv8;pHJ??a~pdKSuaDA!$Cpfnhosj@|10qhvCfig1X@&4>Z-Pn+88E zLs?YHU-bAORP6t7zI=EcjzY5yj@twgFz-N7jDLjyn^hONstaMS_j4lGv=advOm~_j zzK6fc`BQe4&2T#}p1~6RPtOaO*>jaBP(xoK06)2tg-1z@9Ie-)3QvmcVFp5mrrH67s-#);zjf>>kORSx>b|=F1 zR;UJbfe)@5!!qQDe!iOJW$KrOXqup;35}t>psabQWyIr!Ys)>+_3uh6L!K| zYY#V0+Y`OgNv@XVco<}r7t@|j*FiZwR$R4@4sHAHi9MGUpqeHbUb)x}!%K|YD?0(X zKm`WZk{Qvb)pqGHh!1;d_Q&L*G0=KNuN>wl`#5GUzDnKxh;SO06xvzJV94D3{OCX< zjGO0PYR*4`wfDC}s+TiCDLL41oa~D*ud>w~W^j<)>QT49*ZAN$b=7%UgXq!KuhUI3 z31>R_Z^ST{%wdZorddxt2``&4SlCZ=BH^>r{AnNIe1_w-0Cj@+D>lZWU})juu7gaFO#`u}$QeDk$oT%l(SeaO4v`uQbpMdzF%6 zmnT6m$oO@_W?>0ta%RbGcRFFpX1D#j@gW$`3aETMM)DbkX#$+o2$+WW?bA-<10~|k zk3?BMm<`A7=*)43(cNMGFX?$Owir1P_)sakR;Cy+7ER*go zI1l_~`9}PImr6Z~lGY;0BeVwB+V28G@MntjZNix(>T4gS_EdRE(Ue<@2=jwR9E-gU`&d7n;!-+H<$wL_UgZhY?JsXl zKLGu!`hD-ZiU0n7mw-^}2{@OOtE+9i1Y=F3LbZf_Fk-tD_(!q|M(>q=$o?4uBEQTe zcTYiYgJem>R2j4jg=Pk(2$#t#_sqhl3MNmrZjQSWKD1$cfmw#=6UX+?Y-|yS_Wttr zf8U=%QHi_qS3)|hZSyM}wQ`6K7TP{a+OGtXS9xw+Tipi>!$YD2$Jv3RbdP%>X>iuCyUEKcM|gd~eS!0(fB<#N zsS~l#7ngk8F>(~D_b--uD^urBzn6s36ha4ihHHZ04W7i<)W!6W#x9k93{gb$RQyxlrN^HzGQ(Iwg13s%W&3p_@Y+#`7xy%X|GnIH zMT_`-)oRqQT{FaAdbcQecN9)9mrS(MCqZM1wlcb71?mf>%%f>sWPb9n(rq_|^I&|u z_2##r=${^DC?14e`(q*Mcq?pPui%<%vw*j(Q|MUf5%`En9AJ)F2~VFXsX696c!)n% zGxaHfyJqR6Sry4Eb%~`tb=U*jM;(4^Rwcq*n2C3bwKvR;uf40tJ_d@(zEcVQgr|M3 zaA7pT5*FHuzX~-ELUnlP#)I}WqBrb*6Y^v`RC0q=8FQgf)zLmHa7hVTrkNM-E-pj& zeVwGKbQ-Ma(-)5r{?qJ~=9@jGny~Y;V4b@&3EPtwd>r#6$azr+mhUGy%q#n>X*=8y zQj`3Kw#6Mg4{bRXZW)iAUQxM&gCz*~=C@^Q0ULa?WFiNDUPnl?tIT!Bx7c~6<#&a6 z7yMs{I%O4IhVRkn^1c5Nz5Bej@~bN1TW^t?mX@A`-%sb!vP;a6i+ge>KrSBC!>6Ye z3V7ildnq8&_bwcM_-Tv%~l35 zqu!9`zo^L^Hd+mb&Tl$h%M57C8(paw?1bvLm~w&i1E?R_yrb~$Z)j3AUE)?sK&3+Q zmQ(`Scf-zdDsGb_(IW)|ZjgOJuCw!kw|TTcq|<-!crDYJ>w5_9V{)oq)-nR#wbGl<`NPj#_nAL&;lm$kSJz-VGtjz}bXpu{4C9)-Sx`&vr#OJ)h! z+Sy3%CH2laR)fojI~dj!f~v9?!z?+R>C_~d?{w)32Vcs;zM^Sw(^d^Q>~zi+NoWFP zq9)+kWEJsC!oR&YCHo65KJKd9-$V9xcxK8B5dAAPu#rOa8OAxY3ChOja9U5j`ROh3 ztMnz$dA(x5d#+?$F;ow9K9Of;LJjad{hHNz`*nD(zIRLEelOhrd-ChTwJf+xUOG}y zqyV?OyX!qi1_?hZ?VH{285WW!(Q};hUHbKWop5EEq(x8p(Us}6! zn&@EWS80Olo&Un{dFJLZ89kVoukMKEt%ilLxwtxS6xlB_lvSFw8}{cE>+f#Uhq-mP zR4og+Z?~|wu~i>{;eTd3N_LVxGs3iZ&2&TPZ2z8Suzd)c{k1vqk z$p=7^2fi%Y})<>aI zP_d0>=G=b>n-e8Wxlc}EV|$p4%Zjt`+>r10w5tg2PG23pe3yuiSf!x+K8fgZ2lCwO zqu^;^ZtgbB2e(xvM=zE~!N(oK2bprgShU+ip|}%$`drr9%p$nmH&pyYiGcUUjw}J8 z1^6D{JoeJ@Hay|g#-*MH&wJiy(<0*G#(L$PRbC&N3mz^H&V3+r+jgn695SCPzaH)T zL-;(3``dRU|K)lq{rb6WZ{c>b`0+HmA>0>xXIhus;l6J9%3bDOcnj`GW=Q0c-12YV zfRqSwuHEutL{Gx=;-x&@cpf-pXB^_?+6T&ujIs}b!*KB1%du=o`qK8%Q}H&0=lt6L zR@C4;92xZaOCFm+yBm3A=bR;I;?|#kuiHa(eqL{>umhl31Z@4rR6*{ak37#?mqEMD zZ1!I|>6-`6D7omWWB06AR^7cYD=%&8{y>5Cisfs&<_NcIk)W8|T?mV0eZ9ZVv#@K> zf4uln3iby_jWy2s!@6uL> z(pJ3R@*v@f-@Z?Mu#Mz5HcvANKQRX5UjIz}TH=qD_kBMc7(?_gt(1onMr58FEJ#rz zy6Sq5^p@tIU}%ZcLbSEv{6^ZXIf3x3FI8?FDmJ8>-0x`uSB)_^+MQ+no zLpa?(`K!@8i0B|cubxTV0cY(CnlTT_Tv}t!IH;1K}`@ zMpZY66~X8;mqMbfJq)Lt;`NS_oFj9jP5Iz07=0h<=AzfYSb}B${-3MKzPPJg(>KW1 zJ#UMxRzD9T$*Fgu8NZ>ko}aQ}pbY3`S*p-~MsnQyhKHpYQ08-e;!5%`s*NE%n@gsk z^}LsL*EHF$p>%PrL*6AQ-ey=8CwoI>b-+mC2PbHGSVX#r=o8rcxb z0XR>7&)Tj^<_&w@@yU$ z(u3JV?Q>x8KKfg3Q86HP=g+yFSexXgT5L~O77uPXvM9#_s2O5`twD-C3Y3q zVYzL+uRYP_d3u6gF8@KW?SXI3xn%F6eL>2XeZtVludkdmVTR(R<;f>v+)&%%Up>W5 zd}lMS9!~|*$4*x%tmGsd?z4-E)20m&JrR4W)RzjW)mwD0{_BFgU;DG8riDk*cyvri%WA#<+&uMFhdqbIcHyrAmdthlC|JgyPNhjKr+K+#7_CcWkqWIl;n zX|xhQnfne&cyq(v$e{2G$$L7q4yn3Cle%wpPNFEso%nFUeH)cY9?h1$rI{xJ)Ci9t8Jf}(}UBSn)+Ch6QPKocX(Ss_{iN#&-Yt>BRS#7yZgF-lKm4`rndG8 z5S^lSQ^;R-Q1&h~NNpE`h3tFzyjRaj{+yYc;>-?f-aCP;`$fQTFy)Z=bRKk}cO197 zh(Dc|clvKm0$kH|M7A9dhU-#D$6j;7Yo@n>_wenukbdu*(uE=m4A@^rNUCz4Ws-WM^zA*WN_*^1aO9!`w!Tmr$cvh)D+1F># zc-XfK_J=zY1CNtEM%G_<{(B=1O23BfnwO)n(_2(x@$iDB%y+N*;|-*5x_rTz)Okl1 zk6l|PH^Y(LO+t68I;`V<6}x}WfNemSajGhrQ!_H37gPnn+Dyyc@4|IhKE3lydb2QW z58l_Wc}<1g(!H=Z8%a)g{G8+s<-SiBGOr3HkCexrlSoWQVeK*Wp?ymT2vk0@MR_X)YCYT%FU$LF+eKae*7H&Z5 zu1N-m#3I!%JyVRF{ZGypr(;TLO zzhLnD?}O{A8H9Ti-;^v`O!$TkcjqEskmt~GMCg|?D6^+q%74Ycv1F@5{h&4++M|D} zr2d6DYoF%@yFnN|uo#&q`z6h~N3yfk|tJpgT6I z85=>k*ZYQhmxbI&J~*qru=6HN0~wJTq5&ldiKNQ3?Y~(_38DH z{lNCN&MQv5&w#Et%bMI!;xBr~xLy7u0>ic1>@k6*(Ee96RK37N_J?{ptrAs)eOX3u zjFdhcWBdj`+`9qCHI?kO!=%1!7`^__ni9gzieUS!r}pc$aab}0)N-CbBXd=` zjFZ4UP|kAPRCyr+%ay#FzNW1CA4TUKj&pfRYoa$lfBnv?|I+$-g_3wV^lH{ zk(q{FC?Z5CLIW9zsLZ595>iRxz23i`qobo9-Q)MYzSnu4pA+%FCp=21ADPg*_B`U|3P; z>tZeq`bTIB6i|QA6yBBD9r*?t0*xHmWq;rV@6Y&OQwgA;pE;G&HULU{Ay^!X+;2Gt}U0qFqmX(gvjkneq>#;t?*93ASF38`w}wLL_Uy@mRO*8IKRwkIGH zuQS*kLjXCs1OD3hxm1+k$RH3uf+~ELu$v122`7X8J>p?F{{Ah62=0}Qb`Gi62K@mU zDhaLnf0$#6{fWkT^Z^dINUaJ^g2?Fly$2Q)AoZc;zKD9dHi6oU^3(Y^ zXDgoLQ+d0=1?p#?%k@5)2lwIY`KSKd0MA#k3i5TxpFHX0(81#c0g`*Vb@zTj*sl>$ zE0%4ruE}@2J#Gp_p%S(n!EJD}d0%AgKnt!+hm8M3B>>m?w4D7PyTO3U>*cArOMplc zg_~?cph+iGwlg9F%43RJqjbpMwyhg@PN59OS5wGZjwgbSfIaut(GJiK_f2~1iX1J) z$($i=Rw5bwz%1nz53LGat0mb36A=&aH6R@3hT&!_HR%&wzfH1<)8mdG-= zR}4t$O1FZcQ+D*e!hLw3`DEEetq0MWRC6ZCE57{g0r6tEG8o9%$hPNBfcBp#ihkrW zXj)cl`{rwcW8}8kw45@yRmRE}DdL_zGu!*`n`zLSu+vLN-NCqy&EF~wxf%cM*GLk^ z98azAZf`XO*hRLk@%=&WR^;W1e#IdOA9o?Vh_;64*%nGNQuJ%(OPaVQ=R@4hHy#xG zC&6Q!dYL=g9byEp^r?4_LfBSAn$%@ei1{q>N8DW*f}EvmmZHTV>TU7_d382~@4jR4 zNVfnVKN+*JpQIpfXToUu`3fjHC6`d2ZUc=8wbYqV{2twDn8~BO4w|K8BUhxELDj{C zk?TbjNY~Ao{byx@`U0!$Vn{kD2*05o5=K3Z;n`|!*I`h6InBiUhYIAb1cpoqWq=}! zwkt!-5m3CORr*{F}*H^y6LAZ+#;ThCS96xgnEa z)OgWOzncenrUrYyGniY+6=pAL?8TgoctV2?J3CPkc{nZCz${v{ki0>A=FD2&4!;dVcw)CpkS^Qc`#2G72k($ zfzyfi-<()>z>(q_WJ%rx2b&*OhwybHdhZzRG~?W?pVRT&9_Q?D?zZXF6v+Fs`0=3` zeb~(IuQtw~03wOtwk_uUh`feVr&7^>vhiQTKsoML)s;8atI&^FQmlI*qYP~HU9JSE zh@;Mvv+ol<^0PYD-^=cdfNk^;&C?3Zw=zr^J1mC)k+4X5gM4;yToqI^&t;{Pp#u`vNV_^J}BBVL4D5Fy>96+@;H=k*xdMY7fjcp zqQ5Ku1e0CGan-$LFhA}eD885g#$k*jhbbR|5!*z#EN3{*H%v?ggPmYCLDO{j44yB; zVaGRBzhKV&6y^GS4tR|O_Gn6^gU4n zSMR4M?b?cKz^#264SozGJHRR|W(y#{{_mw>I(u5b~>7}y-VC!R!tI#r%P zcCs=F5IcYD&s##S+0^56R&Ex^dD*HPS>FZi*50}Ou?--g2oBn{o4be=eS0`jJ^x)T#AU^V;4Yc*}KGtF9)$8Qv zTDevJ?6c_m*1NW$ubgcMCLFlyo1Ma|JSxY%pP-@E+%9UM;W`UBCC7ED?--BMQFkq92H| ziLNdYb9N~@ErBNJ*P*YzE92z^mM1@CHe;u#nfDs4`a(FE45~8C1R_r^?sJm4F#1t` z7C+=~OhI4N^q#K}_D8Hne63=~{KmRBM@&sD7(6CQTy_rueVV4UHN2l1{mA}vp)mj) z|E!<(lO=R-k4XmD8A%QMg->vbjxq?=M?Wy$#ImY2TM)eY5lb{ zAlR-<&FkTQ=b^&V+Fjglbobhyco_w@2Y+7kd2J);bzyTp1*%h@c`KsMf`Z~NwIz;O(5$zUJX0_U+6(lbm3Ll) zZd4nk!GSo?`KWgK-IM*GCHq+2&g&ZJ%#~JlUqIcUVLotk1^qs^E0-T^1cJ8Er?1to zX+W2(>-mRq^wZ>iPm0F5UjI|+L8tpBU=Wsibng*8=tmL|<-djcSL(y#3YXDm6LU3l z-%rrrWLxI^xCMqRv+_=v3-~#CZS(2@`i-xesoExUgN=<<$v87|eOQihWJ_NG+w&jj z97rfo*VK_>!#%i7bm57|)FfbYVBhmC4&=lZSp4L*L>+l0>Wdp^3E1$)kSt5#K9=N7 zS=^&uu--KyyZ>kcInBZAOZO;i5yuaQ{7b(n59axfCoW2aUZ@SO zSd9}z4erNeul#-$3f9zR{4TS|y?vE69cP7pO=}57*9S`Auz!ourw?Q~u)y(j7uHUJ`shNX$+=6CXDcN?gK1vn;R|WHDTDj44 z1mtkJae9RMVlPM2BbwH;zrZ5$=ajq#@`P)bi}=a3kiRwhQ|BrP82;{~CT#5kLuoIo zFV+U2)g%=2h@uZa|F)Z65$T}+aj1}87XQ4m$-D3TjUazgS8g5eQC2pL&4r}M`O@cn z-GMq2A-i9{*M|zMV(CQ&g&BYt#D9G$FdZyjOy(W?i#;Au-QtEPNs+TCSy}p)09u9< z8S=HvphR|Qzo2Xrh%>8Q7SePCH$Dr3eCs}NU%NASLXr}FT+`hWq2Iw*qAX?dsXzE` z$ox2PYyrHIi3Gw`7@u(WKF0AFLB`MU-d;1T>=Y2~dxc$$>8C`F)t z>cgoe_!D)Qf484mzu5pU?o)OzT1LV1^~tK=*k3*S>mdP^I&$jBLle?wKrs(zzC#dkzmRMqmzLRF3RR zQ6T6!%>AW`O#%Jw)SsX4ppJjC)kuxnAFP8j<9eG!(C=h?vuzCd1LN6_N}VdWAG^N8 z>pTG#5BEt$iM+&|ALY1jFY5fo8V<%J(a4c>e_V^XRmYZ-Q#^bBFjwo!$}ZT2d$c6h zW1f3pU1~#m`78Rk{jXW2s1<_s1<}o4XT@+&7#84>EewPNk7FvOm@5p<)M4`2K)s}K zi}N6UFIgNPgu9CZ@ymnr1LQcbFg31>bf6x>wEx$)EzH&ZJICQ_kKgkfj#CmXsMpBt z8-NdeVAHNAErT2~Vsuu_5XU4CZ5_t;xNzSsYUye29||^stzUGwksmRU;bY_93Rc%L zA{Z(@VQ!}UEA;{VzWPlEy;{M%o{mp*zIzkq_w@X(Wc~&FN4wT$-mzfsME&a<_UG8C z^67rzL(T#Z-M+r_=tCR0m9{1Q2JHBM99W>+0`ZiHkjfQOP^2iO9Kjr<#uG;~9oYrY zW++y*o5y> zqaGZd8H-^-o*l_Jt*$tj4ZImDJN*pwwGa~FiN22xLZ64@F)*I%-HQvn3Hpv!A4U9e zZ`#@Syz%NO%!NHH;A#*B$Pg_WQ^^ADBuP^1(s%2c0r~-!U5WkEJGbhyBL<#ihKmMw>?5_q}QnJUay@%8!5EDQQM7OsWeH ze-&81W0gNtaSTkV^9B2ba6kIz?EZ2~4KN$`5eh~wq6H(jZ#C*~R)Q^G5{H_>VwaCE z=0psH4*2?=b{&JTH9r<$V1O{6P=PyP;SeS$R-q-|1U@CJx29ujAVkASPuS%exIWJ{ zW2VOYgwVI`spvUydF(E|!CwR(hYq$m#fd|J=_setoDq0`<8)53SOlM)O2x)OdT^`t zYL#msLH-pnIUMt|Zpq%t#N99@LC|7JcbdRGt6ur-*IaC-z#`V_`s zzSHb^qsa*M&EWz60_^WP)j828H3vG^e<%E9Tm#MMwuhO`ilBL&(LH1p=h!snv|gVH6 z_7nr5wtHie4fmtMIZ?Z)YnW+PO}#?jr@@I^gMHsWgNmzNZ(JW-*mFQl`w~0)5HSqK@S`pZs`KTxfGA9;-O#} z=u=*0Q~;J9SAI2+CV=T{TjuHaIH$}-UwC_377P_RkMeZkyw=B*$+lDj#_MsUJ~*eC zhLIm+?Mx;9dYJ1NtI@2U!D&nxJ_*+8i#Rzb&7o+kW{U^3e6)N~g0R zKZm~M-tlxG*2j~EVb73pR4v!)H+jrSr5NP%aDx7^C-r>^y<~KFJ;>J zfX(2=1lKR9x1~)#6rS7$!Y-S3m&P;@RBj(LQTPVdXE|l^KB3?CvmoE;d#J1XaKHS9 zdpsNFdUcALZm@4rr;7XW2khf*w~b6D!L9iE^lQ^u@aetK?)LR2_)1AE5FtxijjT*}Nl_cE7-gapTxQ^;odba%s97wE*J#AAX}N>Ichc z$FS*+v&g}bp}gde_aJ%pL*vF~pmHi=j{^Ct8V(h=%^%}^K~(XY&Oa~YL@F7^79lTj zRX(SV7kO}%@87olx&_J+f4=SKF#|=#@je;xGq{J1Pc;iU1cpCs)52$qz_@1n_e3@& za(2#nn`6$$f=YmIDzYBTb1QGmKVk&a zPx~ftzTaF8r#EZ{nc&9aVD2j*{@Ce@c$yiAow{{mQM2mjqwy#s`bVs?KWa;!ZAMlMO&USSixD|J zkfgbZKE!5`;xmyToAtfr^7%pB|I2$mS62hs-0xwG?WhMl8B$^sZvdA>VZN*;+>7kf z+t3(_1A94{nJ0{xC$9PTU;o{8?3bgm8r&(u^W;~?<;Xg4$!Ig+^6&(`vq#A11coq| zLrfX283Hp3J^39`|;1p>B8!XT-}^wlwLlcQKx?p@$4(|V4|b%fBcsY zQjcPY(b7Gj-36!wL+(-b7E-J01N$3UM~lk>RS z5*Rexs&JJN1|yDV@#x3}oko_Vqq5QHAB?#Wx~&D;p?+gseb@sPE@oONhI5R^OX~0> z9=zYFGoLz#y*ZVrk=aHbH4EY_QTLv5lI15w z|8km#@A^CBir1LvoI$)Uc zZoD4`88D7{&4T?q4*D1oeEm|VV@h>n!1mYCdo1xDc%S2$EHS`6H627%rhda{SyC;X-gJ+N|UL$_38vS)!sRaqm~P!pX!?296rTH$MuYFPA$^ z=6xg|xOAuYu&o>h53*0~Q9(A~8Nie~&y9Y?)4kE5^9`8qX!mSt&j<67@+k)@0+ zcrovqfKhw)&2w+j4{CgPK=Cdsn3|sMXSyQ_Iu$V-?5tIw^>%Wbqv|K9`E%}xZNCMr zV&nJo~Ex zc|B$FR^Gl~EUU)q>w)KsZ}7HkEauLm47s{a;C+~`K+0dK18iQn&zgmY z5$|a+`J27}F@ck9CRNqfWpI3;ec6~6^Q0X2<=RgygCD1@YHisB`0)I_p6!cyE(>?5 zkq39cpJnd+7|(HV_meLYb;3ON(1VKlLreI1tmZGP#~d9Ww}u7>&O@oGQpe1`gQMOl zmae2)a5^KXn*DtrIQ|$L-s2tv2Lk8A3BO>lx!BcXz|D-WuZjUn2JS8FY6YE@&_6VN zc20R95eV)zgv0EZd(+pv`8W;p-$D_Of8zeiwo1L$Y9ANae%jT~|AcvkUlqAonE$cq z6xRA6FA3KFJRYf4YU267t&*XRJRUJu-y>mof4ZR6V!Vj_Es9O6VOc!Kt&jXPlAs6E zg1ACba-3^BqN{=;ijeo5^zdp!4VbuW2vMD9cSv!M^Fbk zHl`T{rIny{DNbB~E*|sCcAPEY?#SD-GqOxK0`tx?-udgB=wCi(&()j{rV)#O)lZ`T z_4&a!1A#0+nBw;%zYqylt;wWi;|^exXJ6wqj&sgMFV;jk{60^zl4~cTUnQo@$l4uy zVeZV7R{z82fPVdd#hA z>AA;n%^1&_yuoxytIh;sxsD3%)5j*Fd3@uT*z)5EKK;7~S*?K+&kSGP8~XG~$S^ zTj^b(WqlxuILrkwSv4n@h#bG_>C5BA1kmgAOTIGb2F8#?tE-WSJ;JdJl9@)J9r63G zn7BOV7K-=smbJk6wzqk0_%pCHTpx1C!}If|RMZsqVObXHFgz__L_OkBK)A+BFgYyq zxN8=D*O6g*+7-ADjq1xV>crm4xibcR2hb1dbTx#VpaQ1b2jCkC_CneBQ;H9vJ}^+q zJ0&j!$_ID*&aC%k|0NF zOH9Dk77RJ|Pj8vjBk%OQCg=W5P@Xg*yP2N}3MXkEg$>^Tm4=M@!bk&<_BqBc#XXO@ z=biEe)SDFrO!)i{j(~LU@c5?pH;|x`v0nOf3v+WCMy!|ZKa>ylig4gLn&&Bk&?UTotLN|D5`ROeK-$ZOfI_3PzHARV>k8xkZ6(!0W= zF}yMO`rT)C>_K0Yh5RzvskdNXT-B()x&#i!%)}P5Yhd@_S>O>PJf9sn!V25|fJ1U- zU%+!)a2ZN*c{q)}b=8u0pF`xqHhG`SXCn5mqOX5{b~brrVwfsvOqU_bcWMULJJ97qdxvdmM# z`2+di=?%>3+V%;qPI7^b=^>vT%Mu_=|CWgvb^zC=i@VK{uL?DsD)yLKo?T|FDjjel>tFkr9bEqfuJujuQWR^apaia%Ek48quP z)MFet2{baGDOnt5eI0od7Exl1g6yE3qc^^|hkM+QW3sh8bolp`LOZtN8rc%h*Us0Hdt~&6Vh% zu)ZDD#BPAP2~Uk$_cvwaY%!jzd-4`+ZjGGkjVS@Ae?ehfn13>_A^D^mkDQ8vB;%UO zWiYvV`!n(F9B2}rGe7sQ0rO;ffzFKQK+qs+em}wm8hsfV_kcs-j{dE@1gtrSn(pBF;ssj!in)3mB!e z>rsHu>%voehcBUzM4ezuau@Y($^rZIpm(^>5PaS`nhu1+9^6ws-Z)p?cC1?!0ju_p zuVQlcz=`ir@_&ENfML1zoxvZsz;-NwhTk<5Oap!II!k(@-|;jHM@}LbPQ0La#+wd~ zE}kk@R}!)B>V$R2Ngv=FKg{b^Sp>q_Tkk{`9D&c0?eDGLd%*KOdyjcT0z{>;Wl`S) zxbiclC6$cm?3GgBjowxv2Yno@#Tz<*VDy|q9hzo(FCVGg7&UYPAs!uyuHYe=B; z9QvI7PIsXn#wPWi6J<2cUoEU@G&wiH?uX+wzcZ-2?X4x-2NEy`@n!3gfFyF7_ULoJ z(SyVGFXNR9KDcjvmPpO52oCoyGuyBQgCkD@pKt*FyAMglCOLKkp+h70`NJ8UQxBYA z`+|Hz&SO!&6zV`68Ov9t#eMbHBZ@|63&4WJ#Ykp&2<%+wO%;wl2HWx@K76-Hut%=6 z>37Tm`tgZn;(yS;DV6Q1yLbclxr6cjH)W6msaoadK7@J971EeINwC~uiCq>e0Sg1| z-7|*qVB`C9K0^fOIx^SRQ?&+QZN>1~itQv2(xU_geK9vTk(hgwwsejl{uG^iTX*z95jH0>s)Dis$R->(3l3e<{ZU z#2=BrE8|_!|3Qdiv5h5BSwc9tt3Uf}L9i;UeacqctjzyRm`X+PG=viTBvg zwU*Dfp$A+?D>9!wQ3JiXe|-G6^FTA1R5_e^0K|Bud5?V*0`a6zVk=JxI9GH~P<&4X z34_CbC5~EymYL_{Vo)+a5hYv|*oOwXd4y#SDFsXKL% z5`AZ5@1Bic1ZiIyEs?rU0P``9PP1=7?6Hqw{lo@HF8^A+bU_wG%oplKrqhr^ZG8D2 z=5Hi+r`LX69R&3l%0W98lP~?(k&peyBxd9htG|MT(y;0X0UuQWNjIb=Ub*4 z`C`r+AgbGzI>g3;&GEIn&O*%CA9T7^<4GAftWMRdk1K!^;}(0~%K@;jKhU4}VixT7 zhPJX((68=VEj8DOz9N|yFB%K>gWceJYdP#8w;PFeRCOo<2lK1+aTdtki#%XrXN&ji zinO)FtbEMz@i@$l8-m`sCP(XksB1YMsTQ!qJ;ixi($stPr9kKfO%5&Q1y|Y?Z{W08q!bh z_W|QYFL90{Nzl-Fn%)rL1R%K(SpK95%%wI5zg(OHf_-b5%+YP+{ypJ-u=^3L&9V&L z{G4!p(7Em&hdc$V#|M8%)`9JZcm;mrL7WTs9?s1!0l~p>==nY5i_o(WMniFrcBv=9 z0{tPnV;VEbJ!e4I@L;NgLNypBKHj);^B_%{3s#(vP6;Kubee^6bB-%D_a1n0vW zJqjww+p1{K2w#xGzE=}bs?Sv*H{9j4Wp@*_uJ7JTyzw3kCpBB?$6|pyyQ4$syA&MZ zKM^Weh5cq<|8NW`v%m>`{{p*9Z6KdG{;_kq0J~D3C`Fo%0*`j!ro>n(m~!(f-bBBG z#SG;scJzCgDv5q4OQpekOddyuAkI(h=kf$jqHpBt{+NU4v)9`fEz`+`IWhBwzv<=Z zkNVj+#d3}h^xvsIs`bD;JNG5(imUUWx1z4%V%3EEggzaq668flNHSMeB7c*a#5!Nq z1I%y8Qqa#_0~6gyL!V7;^#9$tmg;K{25Q_U79ld&3v+FqQx5km?Z3?s*xx{0i3o&nDBP5$u|0x`GFYAsvxB})xm&@ULXTbEY((p1* z517@_2|W-*u1;Kurdtf=T*`Rb>T@yAX!brpQ)mk8ANUHl7zW^8WBN2x73$WlZf!jl zPjS9nJF6d$eY1rF*v{h%?dWH8jI4N5TYL;0KE{pK z=aYc@6l?HBe>QNV+nFB@!E-pJN%q3a8gS#?PKBN-l>NkcHMR?}k4b;oR?GnW{-^~+ zCRcz5*OqPERlGmtn_PTn-3{*i5|(<8)WGe|moMiEv9BpGIdbLW4tO`pgq)d7#vUa~ z9n#b_a63VLV?7Evi=hFoLXWn=jo=YWtxyE+;T5t4rre-)+TOsw+Z0r9g+IC3l?Uqf zzHck94dCA3>~5uk6DSNuJd%1G4LTiRhm2%!uN)PmcQK<5Op>~+Ww`6U( zAzZL1*pe50Y#(@SxBB)Ye_hhJN75U7MDLRZg$jaKJqNdiaxJ)L@+)LzvV&Xp$ki_7 zUHft~hrghH2!WUfG+)O*H&G$K!kzM0QLf}8z;&luFxa1DR&K`1UjAY-PSw zo%~w@<`KHo))|eMS4zIUUkUw%PvsOI7Ds|se#vNq(N&0pC|`GICtK5FX(#cKjVXM9Ag-xjeB3p$!rtGgD>| zL7Z1HT&YJtsntuH&OUIlvXzhxwnl#5k70!_?6ovM#vw1N0nPEH*@X&oiBob+F_N1Kgf%FZ|=6neGJ^*t*@1P z;QrSv#PVNoKiFmVUTdf316S@xM7QIc;36u%YFqjiT%3(N0@XLc!?{m9jez>&m&-a1 z(&+y^wAFcoMji7i?RRD{$K<)TamW8pBKR>jHNVcOwBk=L9r`p5S`j-gZ)@v7bB?{))j}9F zO?5a=w;cn$R^}N!Vh-pf@_R#BH9n^lQn^n8?%lhOh2*{jwI6Ror)5UKasIu%ud6IGb+rZKB~Apy3e9If3Bc3|U~ zE@WvykIz?IH8a{|u=!omNwCD9M?30lCmr^T6n_<98^->ZQjvfohQ(m3W1(2JgSpm( zWsMUwOJMs>t8S*g2khk?SuRzr;`_qfIwo)!R4(LQnmSd`Pig*z=g*Ub ziwi$N*lnicgz^m#PachNXVL|sn0;%8poO1>&?U#~OkOO4O`r%+u7WO1^ zv_9d|w*jluv`%@q(C<+*O?I&Y_XM%VsvK;t*n9rvamjm5ePZ4t9ho1=cs1%RUmsKy8S+ za`L^b1@y7ozLq?ra|(40xx((MyL9|-5%_R%McU@`VsefZNGu(%?@rNR0T4CWIG^oCJS9cT`J-<}TU_D0Up zKSDq)S0KEFt{b#`>VoA?y$9W0XO*Baf6%Tn_l>Zc0mE!Yg)H7%V3_y7>SZNzvF5l* z{vJ{Ry^sAbc?-~A$$2D~@X!-1X#yen_dC$q{u#ng!3gj)f0m|-3UIL*LK3nM415Mg z-jr;DW$a6dGBtcZLZ$rZb=yGib$ETLB+kpM6dr|9!XPI?e9=Nf1Hyv&M&tS>pthWm zmUT1^%oR;FoI^2ZDXXTCn1_BveKz+WbhO~|Kq%jHg9rDsNl{jtIpEYxdf^Q3bL?w* z6Yz(N9vqblCVYB7g9X=cb15nMbT{W2SJ9uUM>h1slJYcY&&fyYUChCAaVWDlJq&bI z*#v$hp`MWW`ah~r8c_4-&vF%t1LZmT$855CU@*y~!2W3)bCm+qN&Lulq*L~xAX!EI zo6}zP6LP5d=Uw{}(?OEg_vqmaYEZ4uG(LyDX38h8@CFN@zoUqWaQ+|OpG8kS$SwCm zzW0kT(S&f2oRwBM^mZ2{KbE)bKP?QB<0M|_rZT4UrpZ0 zb5aKVDa^0$>zxDn>ub|ciW``kN1oMa%2YJWBAW}^hg7! zxGYUIR9*((`vNRC{nU|j?K-QrxCC|zk95Rk)xgGSfJcCUdu&nW~e%_{&W8?E)){KqV5ZBp`04RNwqA0?{`wQkw5oLiDX(rt{Zk zAnJ`_saH=uI9(H5Z5CXHz_FM+7mt^MyTPfOHzl8fXX>LLcC|Qn`4T-}9BG0egK_mp zrc#J5U~deis|Anv%naJoPax2%QZ3Fe0OG{{wHsG*;rXS&Bj$;}pE{?_Wak2&v<&NO zQoZOSrn#?zd?019gb8(gmKa*HQ01y(KKh_*me<91pe$IVJVk8^&_%qy?!*aNn$N}= zBb7m}X1(bCmlf1~Nb8=SGzA?Mrn2zrJkGM_%dY{AU4-s9W}Eb>Mt%{crnwf*=0(p!zwIFU@$* zNVr?RA30VzokF3M=#P{Ckn#F3@>*_=svHFLOUOvO+XsKaJ=nWvOeAN(=5p`zOJnTF zxpg|6Jg|M##L`m9{fE*apyy^{ZuvBWwM;Y@L^xg?l!@}KP@%7bNIw;RRr zaF6Gb6;89m%_3w%j-WwRwj^BL(-YfU7%BSPJb0~s}9C^A9BC?_t z(%axrqn%=w5d$tHF8ZXoxc}d9^4hKW4la?`?&?|vgI(S&@)@&vyuUhIpRrj-AMda? z+cj(SiDbFXd@{%Lka+13X)q8o9tr53+mHVK<=(gXM6j#d7U{_NXh1s{k`Gx!e-qI3qq^B%;XEOo@ObV~rlC&`|;p%9|gFf1ndA|enJfN-6 zHK8A-3R*X=Gmn??flm47wiWkg(9tsFJRXI7LSydk&53T%oo8P&5qb({_6?z%C)X{5Q&t1bMIC&f-ya-ajbH{h4r!_v%k1DTY?Q*L%MMO7m*bj;uy?(JH0bF! z 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 AApigX literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-06-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-06-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..9ffde565bdcf90a8db67c54638a3cec80e404faf GIT binary patch literal 168332 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�mDXD}<5FeF<2vT2 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

sI$>Q)JzdfF) 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

wklRl5K3q_NT(YjZ~@4bx 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�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

mE+ZM#djY9$BMRH!r zQpl%4L|iPR2=9q|<$fTsh4OJqioOBS(C`pXIA2#0T8X?kXpY^2w%fxkN?Z-l=)K-b zPM#sONNlE?aEOJr-Js!p?j2~oruWJu^%peeJ**E~EP|G+k~U7qPobRr&pVAx^-zKJ zQr(U1YfyyindNaW21RismnBPaP#}<+RDrw%a$MYtxHjbtoftZ^bdCI=BN@+HnSC%c zmg?i0cf8R!q?%#rFWOAxYT zYhF&4?uNYXL6<#8svx((kDef{FbG@R`Te(PpdyX^>Nj0KXc2AfEZcGb&FMnF*Jq&T zY}qXAH7_mH%X&bGd}z>Gt<3G}_9JNG)?Py7MGbAZ#;No4NuaF9GueL&r%;n^@p?iL zE7YOh8ef-`8KF0=!hPOuct@>DqOxK5N5>;t@*xB z)<=ARR<=Z*AKTKQuJ25oXyPqs5Jk7|Bwz}Ca6F$zYY(B5vPG($OEl!)QJ9ljsDX4V zGiUQDHz7yIPMh;M9|SVB4<>0ipiDBIkJe!}WVzvzXwQ@lZ)IEDsM&UbmRIHq7tfSI z>n$C_QM^TXH{@nS0gQ(h!x4jLf7-%3ZTl~~0#u)lNts0d1VMs&}e|pvAug^GNkhXi0u>vzC|@%73pX z6(FL725o07j_gz+r@F>L^STO@+8{c|HpmZUWItvYYp_6pU!MCP;w#}zv0)>kXGHMc zmyN!C`V44G{4(&l10S@aBRl(z^bNEsV3o0nw?yy1V5_e83ABDfpVRR3A+(lv5Do6p zh4kS(uSVqQpt8hA=HN?hkp7I?erS{!R4@_v+o}H-vJKs*xLoc4Z+|j;o88zAg>1K5 zXTwt=Q~C`@9cCh^x{)*y$Q}i?ZKI!8Ht9l>+;`<>BB9W9zC~4*hX6eXEKfeNuMSH1LnTr1RR=8S*h?caN+< z*b|ia^f4op_r?>Eohyd7z|j?3=@!WTnkbCIW&pD3%g&3yHus?$giGIdLS_@e#@>QU`Dod3`TS;*!u2X78QY58AW7MA-^;@!EKuj*f+ z7`Rc+zwQEWJX9IDG$;m{n010_E9T%${Fkqr2h*S|u7o(mumkc7UR~cPmWQ;5&&iA8 zBcND$33lo`0)=Q9Klks9K+&eP^F2b#kXMsCuttaviY|V;^+b>hLW=_D2A8W)3V{@; zd03zlTik50i3K#+W|VHcpoE?;$pNOeLFi20o0Om|0xiEkZqnJk0Bv+WShUOPDsc||qxnS3My9a$=7cKsOiL6l1BO8C;#}eB3 z;9E)=xkHm`f%}qTzR)hUsv=J&9=a{iWfc%CLaTtOjGA@_X#P)y1vA5g#u{Hg4twfD zm7S)L!sjPYx0sFgq!0&Hgi9pfzHfu3-4l4P&r(1%l5LL;-GX|iU5bx$)S#WfAHxQh z6zJ$J*iE%K2kk|jCC$FdL7i^W+sCQdQ0LfLqmW7#>ey=5m)QYmw`x-HSUCmSXa1zk zZ$Rtl$Hy*;KZBsdoxQS08R<~{3A_7MdlSgxS1~&rkPdnL&C(u|8A82ZY!}B>Q=!&E zm!t?^6x3wM|9v;c7MlNj$0UGX53Ss8YCU0af)Q3QoYJ1 zf|3M6LbJJ3kjJN);+8NTytzQ1lDS0*Z^=0|yP29mnS_J{MPWCnprA^c%kdoE>&5Sw zOrD0f^tVpz3nieF$KXG+x^vL#>~jwh9ZDz;eir5A3PQbt(ArCjr%>m00JHZQR#ZO? z8-_?OLrX)ob-m*yw12BJ8vbDpZI=JUKljyymYl={9Db+J&S-617?eU=_5I=@R%&RX z#A(!(D+9F&s@$0eB%#q=@ocg!T4?chM5tI&8d_Am$jT%WfUZp9_*=9S(1EFCjl`4$ z+B#;vY(IMgIxsZs9*Zu4DTB4UE83DfmY|Wy*9afq0zIi z*)99t&~he=md3vxnq=7)M&Y$UX#!^k;Z;MZ%;NFm@#hvOHJ}(Ec&`$|!h09jlpUb3 z$4F9aeJJF+bZv~nkQwsGRJc0qn?s%k-Il7FY{;|v%P0RK7i2HNV<{Itg>3$D@>gk{ zAhWQ+&7Q7!C>nCg=S1TPZ7v#<%g1U!C9$g|ksr&Tdlm6YAgwiY_LbEuv6+L8y+5qa z-=lzb8VkK!-m%asUXiq9ei2$zG@E{W^4Po^8WLsLhqJ=68Iq%7n*4%WKkJHZhFQa<9~iLWBrfzAre~a%h5@Yk-_q4KWu)~Ps#^YZ zp-Y*Ea*jy`!dL5{Ipv(te^+$jrS7I{^KUGnnaUOXru7175Zo43qfieG zq#9S0!_dA-YEk?8gA35G3TKeyHx13Z3LS8AU(tOXE~U(~gtqK6dTi}!(AKYpT04Lg z+S|hCU(;=%eCEerbJ}R%VN2S1+A{%d1|L|x(vyNVL`lXSEvwLmKa#^C_W%2}I);r; zl2A$3CkmD-L8r$3CL#Va(6&-7t~u%>^nUT<-?%^+v>w-&d_Z><+6O)R(`zOGUA)6y zR#=Eak!-g))sq6qcQb5g^I9%seV5=Jx@^1*=A18;_o577v zI?d2(2H$ig5bd|)uHX1awF#|neGOLhV1(AkU+&zS@P;?e7@kbt#)ra9m;B2z0wGPG zBM+<37GxD3+H%khhAb&2?;Kq{Ad3qZ`6Y>TXxw18q%9=`waZW1=n{gU=8a-+@l`pf zapvuxV754@0lW?zm8GFU@)Rzy+#Tx3ajmoPdqL9}OSScPz3`4gA%D^f7AP~r6MuCx z4;m3%T&m_aghr2Z^k3PXz}wv)UQpiPfs*kl$UU8z zW5&r0IYN4*_$D_YXN?d;(0yAdz)4h*^k@O{;B-l?a!Vj*w`#heUm_G(6EDrFiif%k z{VA72{(~Z4<=<&qwL!62g?VKPRw!oM;r!}g3o^Z*;h0w-fSP$Uw1gM6;7x)H1gBBP zP?AEDgXyXY+g5sph%kH)8C3_7HJzR3LB5IU^A%~GZhh1OzUNg|cML2E^3`;;61 zLCc!KY#VuYXcti)pcc&tjTQ*?KNxyIW4*Aj4gzy%VAX1;`U*e;kLOf=ZYA)}ckd44 zz%pnqcCoweUOu$1zavyTKn)#PsO4A$jG=8TBjc%n3^ZS{G#CBZ4et`t(A9}{LtF1F zLy<%OpkncUEDc^O)Jh#)uXN~##>NUlXV>3C!@nB093=#yPTJ>I(%3+#i{xrdK7&x# zgv!B~-xHd>iUaww6VSL$R3@4ID|Ae@K1v7*f;tJ(s&6a#pw^F|`VwnY2ZzksK8E>1 z$Hb^-TMTZWeX7q*6;=0lsCN72`I51_S;lJc$UpU@63=gd#FbI_(o zX;$u&19X+jttzyfhc+#blZ(sZpvujWidLCgsM&Qzo#BZVbZFD0@-WGOJT+D)UKZ3T`pBTEu>*CU6H8qXafYg-#}_GvPN7LdmCmcUEO_td zv-GRaz2TkqunWRm-=J~&Yxkzn5@^(8(6)+8ga$Vx#qdNtAosUKDtFXBxjya0zuf2v zS*`?zWW8sEH=hSYH32Pn{pF2;XZyDxcSy-|Dl1gi-d5j8I4yw+ijRth3|63q;*?Gn z>RYKOrfz?x-GOS=)2x)o<4{SBPhg7g8q{L(Q+fWt5^CKh%%^qOg4&ZGjeMy@QJws7 zROHSDm0w<-aL?w4%03rWu1{G)I(JH&o@Wz~k1U;(oP!98Hd2Qed*wli+i8sE7&*MH z;kQcZ>oVSJjuy0DUP?~;85jUroW{vZ{Q>0ZjpMzMZUVU+Yx-U;hCzOtnEuQP z9>`P*E#)6X!RwNtG}Ar`kk^v>m+?e06grF+j`;5tCgA^IabG0_~ z);BJ+PTX16c$5gacNku7zUzlnmcOW%bALkmt8KjB!0v0S!gH zjDFocfCe|ierqxVXcD(jIU|RU`a|uJG;&d>4n2I;eI3<5$mPdHC><+aH3X|50?_@l?NW z7%xhc$jr`4_TGgnd#_{9T`|GB`d(VLzwS^q;^x;#P6*mL* zXGmpd{26$keit`$av9WzEl1S~$B2$#%KFhf3f@~v`ELIC07s#+;}4lh=4XjRDMdCN za(&U;-PS&Z+#qKY%ONfVHMQNou}%j;YrTAa8y*FXwJ4{-Uloc!SDxuk-G@~c{jcA3 zS)i<((Wrg@6y{#qF;)p4FnD7s=hnUq{h36C+w4ow*E%X4p3?*4#m{f&q;lmm(0w}9^h+++SZ?DThA6l=Ec>@d|`Sh&kbUOLJm8H z-+ms-N;;*dDV9(Z%;)+{>I=CqpWhq|bHbnBCn3H`W|{WE0E#DK zy^dI$Kq>wBn-{EUkh=3ox2f;~Lf0Q|NQmJ@;Ko7y|9&hYROrY|lTIZ<@{=6)jT}Z$ z`TS~vM-JSCVy-@Y@D%>xUYoh3SP-aTUFEYPgrM_=)=3Yi5U6s7YrTFF0$!Ov%)N3S zerXnz*wGTW2il&!Og{pb?fW8Low^7o`i7GE4<2yXS9OEFOa?AX%lvaq6u7QmlSsd` z1fK@yY;xlS$Yq}Mb(^>Z^TtSNQTM0Ne5fl{6#oO}ch+^Cy0r|~`%aOq>%(C$)}IuT z>TVVI8!#mNniEx{Ud8+E*=Mai?0(+lS~52TvBh z?I-oKbLzi+s$rmh99XkXDFLopvNdNLI^nX)DH*q}5#E#{vlxRG_@q=kuHvnRmln&J zjx{5sk5Xc-Wv>SHsP|*b5JPy~ve!Dl%^2QO+M!;LYT*4Wmf6y>7d}Z@kc(0Qt!b>a z;4lxl?s%AFkB1PwJ>R#WUIjjk=M0|plh^%0)xft|4piR`zmv8^|LHpvspd5b-+wai z4u&qm$7o~V$dNzrxq3bz_UuPc-_8f`EGFms-^0dvfs*j~I&>|RiLAp=Rw*`DdH8zn zo?kEi625=h3hz0TgC>x-w_cqe8oY})-b%lK!ptK|1&s==P)0d#Hv{Z`f1;pX))jV5 z9bvod=wTGTQj^G230)Nyjz_)5;Pm7^Th8?zyNiVE)`(G|c;<~Ut^YbiZk^_&YiEHR z?RQpgTqU%BH(qMK$p`(*k=xUK-@~w(7%qcvVdy)>T9TiJUByi8!RvoRYe=2W-D?nr zM^2ArC?>(OiW9!+^T5Yl%Yj?Wp?R~IooToo8ac7|EBzg?v-JvB7?&W#g_8u9YZRd1 z=rWaK5CQ3foEhv}Tp%i~*F5{-54L}A*YP^F6a0pvA7#0Fz<%pm&VL&`!67Kd`TFW+ zxUNcHesO~a_X_vqQnDF&Hcm@U8wJ4g$F1dPpCx!^u59JM^#UFuxlxNnqwvV$5-EB= z4*TzXI%0c{!Et@u9&bh}90U0e9eHO0d+9EjtsB0uboO}&z_w1RJ*h6%b8-1S- zPY1*4*uMon8zb0nN_9OqFaeYG%coq7G-1GVY)i%AMc7Ur`Rvfe3qxb`j6Ys3F#4Dj z|4rf-C?lM{gY+~w@J`Gpzs!aSN6F9aqk`n|4tnXMPf6Y3C=q8;kKMde-n%D{!7Oiz zQ*>7^(I;yxtN)C`O2O@G+dmCZz1%w*Lxg=EdI!6JtZK*|^`MZ+r;z4y zy<$@;2!Y41eN*nVKwRY3#ayy4NjhdX@SO>UZtD6yYaCBur_tuPKDIEZx2Ve5MI41z zzjmCoa~$++=&y2ZcffAtj80=WVQ?mGS1nfC3-*3@LH!@y;J%9d$y?&^?u-4babtk^ zHU-S)U&y&?s$O}1v=myXxvql49A8?eGeWUz^>MY7w3#MAUwzuRp77y zgR9wenvzB^;p@(|^n4A~xrXr7m{&0Ae;hyTlmNF%ru7mcFUYyGDdp~561>^@TSAAr z;My6Z@`xD+=$HIy z*KK|eV};L)qDy%YQKqXq0xWa60qJn$E4X*t^D_KMINQT_KbSRL}}%wybctq|*X zm{Byzg;KFv<)~mVB>pq9y}UXFaZ8EZeg3&Hyzz2v_R4?2^zorTy9FOdj&GvdPe3JFzz7RP1F?et!uQ3?_Y?sfJwPuqAB& z>>nIp;)3JcnsF6P59o)-4}WlKgwG2>xgBk6@YS)EXMRU~v$)gye>;c4 z?(4lD!dX*0c8X%Wiya-piS1-8>Tj2VMFInhH6kJ2EnrE!P0hf-vk2w1DdvghBt=BPW5eSm^3akB7Mgz~)q*W1CPP z9CxXQHQ!qWCGPXO(xh*&zq)B>mVgI*-mBA>6`7LH@oJ!y^i5c9bsr!2GYk9U&qH!9 z5WiK^kbbl~0=^czvM#q>MrebUgkZo01RR&-OW)LikmFS^7_zw#DBW08dvySTxV(jo=I0!VBywK+}E|L7Dpm&$pSJ z^%*7e1Le$kVV#MV8%k{{VcV!<!S!TDD9jG$cIlssSw{@qD#c6?_3xZKv3!YxS&!I z`J4uK6@)#6dI5{di|{B2pL)+5XSD?qBAb-PvUQ11D&(+logc)vT<8k3WrRrosarQk zSFz3O+~&WUlaQyJnt1Qr59Q2fj!a>R&@xruagHtzM!IhUg=&97Z}g9S!ZHVpwRuYp zu6vJN+M8b0)Mr4j&(TVbArIn-p^oo;e}Fw_^jwVh1E@ZvSdK53Ls4d*6qD&A;wKFH zwM&ITeqY#_qtY-mws*LDhY^45MQh~=E;;z@G(WFfw*%B}(>GOlji9WRdzyGmhBVjN z2ZXw)aQz_Ftsg53&v*Yimektd{`c8=!GE!EGow5SGDYgAF2RR2HmR!{P2hV^%*;xywpz4k0Z=NH%>CvInhg^s+bgMO6_O}ga z4*NK*)_;Y^{VT86OtQi!XJ^RhDJRhO`)8dYeU4A`UFDx`G}v8!wpZ0H8n*wQI*E1X zgW8->YWw9sc>lb%M{k`2+2=0IOBIm6pV#(k!nO>4&a6RkzPI2z74Q5qxfHaUiS`r3 zU-rEkCBLmG4zz43v5NYGpsiayY%O__Jihheg5X1V{?VzuJ#-P?jvwg!f(_sq==HcE zZ3)ynWh;E$h`5-8v>2Eb;m(cJg|BJnUjkukNIC9&|yMD zotM=8q621)Uzv$75%u=eU47EOh*bYdY9YGYxzkZcH9!k9zm!b$`+)E7RmRz(5ja(; z_~XtUvaSWK)fve97<UA}!COV$ipsD1d%_h=6oKUAd5CrvI=bf#RVel~( z43H@!>s-RF>C0MWau18U7s9`kz}JH_&qI3^w45f%xeUTvoD0c3kdy-2qSB4$OD725 zk#KB16Y2lm0+x*4@Payi-)h)r2<-kPJ3cd1!lYWzmYs4 zjUEJ4aj3WZID|vG)*q=m z57jXJ%^BaFA^75AL!*E!RQESB{V1u2U|5DSrAG&%MYc!F<*T67E^zSR)Jg0d=xjLw zcc@G<^qBO$gLcdiT|D0^R9f#mwoDp@XyC8jGdj!=zo3$rkeq`Zq z*RABq3y+$27u`0J&(kohip6gaJf0e{D(0EP^{e@8%j8kGt~FUTHqax!Oa#jnS${Ys zM?U_mcpr|14%^-;l!0>ARpX|_9T*w8pYIf40L6wkZC&I9={r_G`ng!cdP{>}=$A8a z7(LAvy}1oIXvBSO@&)wICKX>h$pNE{N9^+=>R>=QRF}_ggWX*lfA&7$g_g;9;|i&V zHB`McIjD?~){I);M3)O$*?u0ndTS_dXB=kYtiq1iM)rb-$&iZ5UjD*4PVPYOF!RAC z01^_vhMBVLAng5myzTTp>`1fDydu|&T@i;BoHlNNcx$2i`){RC{QPO}PL^88DE|Fg zE-eJPkd*L%Nb>pq&7N~5y1P(XQwQfQTL@o&bSyZ@3ySNWv%9H10e`D?j^rx^C~ZmI zrpM4rbiscOWmWqjzr=p?nZgICW$&c+b?=6O#{nU>H?r8}9I2HaoCK4%yVsg;^?>vX(wypdhXkFKf?$pW(TPd{{;J7=HhSnX5h*l zZnkHWIqWln8mlbgp~0Me{g>(p)Sk^%q&xM&RJi-i&!uRXYq!WfKc5Dz#;f`*ftjTL zy=YkVr5(FM_1hiGHbGD6;M!HDBxoeIElOV503EGp_OcYhAt+tBms`674pC9h23|(M zSo*=Gie6vXRO~z^bcY=ZM_PIu;sv0+=H8HCg#r{M|Grt=lLhU+#f}w z10t{9WM25M7IIBop?eLkK&$vM)5z;JQ2QqPR;z#k`aeGkbMFd<#^15fuY|8s6m`w7 zE_VU{h5U8>!nqJldFemi7YoG=)GNPBB?&L|xU>K1N$?bDvwplnxQOGQ%eqxHz&Tn{ zJ7DJpxrD8p_r|RuV|MFRlWZC|AN{bU-y;Me6I*At?^MW|^3k3(FF;gdUkbw|76?8` zD2*q)prY}O$@R8F(0cRn*X9$0&^Ud>rdQb-s)eRKDT3!A-Q&Z5>O&(GqnlJEzI=sD zZr0Aob+J$v>|#4Pe+X*oPxwwt@k8a){HDS3F(}%y8_ETXK;E)zx!@4diB|H;cA9O4 zTHTz!5Ak1Af7G{(=61m}Z?<}w)(=De)Co8H1?U}kx$X6zY+zvjg>T)%&{s5mu;-Zo zG;4RgwGyj?ovG6zs{}plp0TR;tJuKF>eX_Gc|07&Y!`p&je&CMeqF=f6*!J$7}6I# zfn)WICoR2;=vo~jCZdjTxX1red@vh+O4}}P#!>jT-OAg*9*Dq@wVB0PyWv}ue`CKs z6KKM`xx(+-Kyz%%Z1qwE)jZ2E;a>~JS_sugWW3 zBHYl^veQn^DX=r%5aLBR6C3*PJLxKyiEcXF(73<{ciJcY^O(A$Vsb4$A3~t_#NV&)KETT_Og7Vg2yUT?g4zF6;aC3Y z_lqaG@QfCEu4rBZw}=?~^}7g<8xi|hGA;|Qqwlp%LQcW8YaxBFtrw^x><^9V>|i~( zsl8->1g!l|-t2yU3O0B5X&VUgfubO!w#n=b?BZ2En+bWqg4TGSqD%Gx&R4B#E<3{P zqUgcODWU@(bqQSRh=t8e;D=Ys^l%(YJ;6=-c&C^i%c^<>cybVj_jWX}GVBrTy8s8L zrIBJ&Q@9=(e{laq7))6xbNYI&Fwb@!sq+nh%iW?stmm{5pkr@1Tpo=8wks-9b_?*v z_fy&P0idNioy)Le1kLG$YR5ww0^}==B<_nKOt>gVlXeRJADjR7j7PwoX`xmx=P%jE zw3O#6vOp6GHF+&f`r31K)*DWF!Be>6v-dXg^VE_MPR(T4pL#d9{f7_&y>x8Y;|Ra= z<=nu=*&m3Worr$_B_Dw=g*n(o^WitBU1iF)557{*cfP4LL-fE`iurgLLU*4tEt%p% z0JVcIDwPkkXCDvE{8Wbbxs&&OTZiEj6X@`|;ye5tv)RO!E`jDs$F=oaBmB;WI6D6Q z3+rTqzP)Q4U?)KzOK)rlbKQt9DqHwqH1Ty>i~lI$H?j#` z;?;+Z8(*)epE&GjRBO$y2AHRJm)>sPO8DA6Di^iC6HZm@#P%6k@;zOwyTx-*RakaE z*+uH-78Ccx&tC`+=b@H#?JCg=S`KV5`Uh%bD5uE}9Z-Abs-4G4eLq-t#ATlos5f6# zYA7tgH;qwqbl3!e<`P`n;(rl6R&&jV9SlUjm9x9l%nX0l^lPQZfDOC4v*yNxGxW7;21m>tgO8r&ea|Jcjj@xc0;eq{Y2tBA2^<3|KtUn z>6=A_6A7PI$Dix_tpJ9u`#dWh3SfS%?76}B0vJV2)s86iVV9#((Q$q`=q*dF3^#DW zl)t=UATt2+C(I`&rTxICZq+MGPjUs+%dCe#E+M?zuvtF)9Kzz?7rwaN3GeG^cC-T{ z2(HxsqDjj~P!3ywQExQD#$L`?#^oZ2iEi78u5QBlUyWH?$O5lT>D^B#=J43H?==_U zg*@r@pQ)EEg~I^rE2~q%L`Uy@pt!dS_CJ)W^q#T7zD&b5nD|HqA zZZaPuyw9zXqEB(~E2Qz3+#=ioWd8D zJy7$DQdJ4*UN)h476a@E*?2Hnn*)+^OM^e6hp@9TCW!BsFjTx;#H&O!fPJ24A5M3{ zw*GoS%#~i4^V*%iDNpJp?gtC<*@UayXnr>S=th{-ZEF3{QUqO==ZO`C`@wUGd_v`78{vLc7qs{9fV_oYrpW06EJv{H&aaq*gTt= z53Sn{O8>3mlq2Gxa(TxdRw4bfDf<=2glhOWypCCzHG#iFmUN>V;VIUXFbG?nga0Ps z7)rxg*slN05X!&~yJ7AvboE4^J*Ylldv^@pw1wY?eq_VF%Ra=$no{`0#%^+-Vz6 z*82-no*Vdb)Sy^~)=Z*D|HYyA4lYcFEg`%ip6YqtYqzi86&eAs>Ic_mYv zEL0B3i=24H2erbjx8=J2kRj$S@A9ScAU0zj%Qp1|3UkpCD(xM_xc zoejk9QgzWv_yy}G-GhvCt1p<0yM4(jWshP;!4@F?E-ydaUB{|D&lhT{s!d7tLD$NC1G9WQjX zAKXs%ndLW=Y?%n8vzBPP9F71Jd^MBmhs#^xe^T#7;3(U>NU7k2NBn=PZ*HoSI`0n8 z%Ni~?A6_|ne)tA7f)ef;1x@|La~R6fJ^9DT(kKZM=kf_>PXal-rhp;4ma2Hc!0B)Tcz zmYtk?t6|Yt{M4z$4?Fc9&aehLLW_UAr0DQglG8Apecg2pdVx7R7??((lNa3giDL#@ z^_0Uq8p*nG7;v+-FoR&c^39OWY4F9IP^jL^M*L7okuh&J;-?yLxt!{Q`#16N#$|8l z_Y`E+WQxFKg=@*hU;w7H%5`_&lRif8ig2CKJ4hDh&bM-f5&cG*SMj|a9Iu?X=yTcx zj+A4z^0$0o-)c9p<^4w}T2yKLm&pM3PyQNBM7QUdW8(GZW`OwOLKk=54cO0A@9n?$ z7mof(w2CpJ&s3B?<9Sc^-9N>J>vjmi>x{#fsNF_nUiGmwrU=BQYRh_E zj)VW)2N{ow%kX<$B!K@$NnO`GB|_dexxAhqi8`w=w6hW)-AZ_g+@CxXNyN_$q)joi ze1R_);jr6DJw8Qo%Gpx`$MN?8&V|5!^{O|sG*?82Z@!Z1D~2dat`ZmB0fZGsYmO&f zLul1sR-1QRh)g_SE}vHo73V|hCuO)Gf8^S~uMISk-{JY&)vWe-= z+K2Fd<^OF&Xf1rWHQ%0Qdj{{tvr!yeguikV?qmx830GD3Yd@0c$^K%cCbXW^br0$9 z{oOkSPoC#Zn*G-B(ldKB>L*0%Beh>s%dViVYD6e@M8HQ|@KxUr8hmO*9{+sO4O+}E zO2Sscd)vpBPuO=st%&CkC)-(QQeygEvzJ4Qb-qHiZ$H$V^yB3(uY=NQ+d2QA2S_~` z6yEtN1hh}&W_$vKvnjAp7rYh?+L`N#PfinkEsgTlmGr^e?cPV!9Up`A70N2zMZ$ZI zQ>Ev3ZH4gpT_)it-$D2fqd<9~BjF=fKNQ|?fY~?359K@W!cy+fnyUk~usg=K%9FGm z_7gXl{crbK$Cg=`a}WE(1Qo!PO`|N+=>XxW-LRpY#BMwl1YO`{P4cee)9T0a>}03 zUnYFV!fBH~Wsqf9`}2jv1xQszrYbIyx_7~#sW%! zKKhp->81br`}uitJ-p_*({KqY+6(DLF$bYBou7SG(HZJ~ff-IECn4=7^|P$72a=34 zxjBn0kQlu-Qdt%Ov2PFFq)7gPc+a-?a=yHfSaeu>mFS7;6Z({{P+urrSm5AV`w6OD zk3>JzSwLebX!G9-YoT>-YW>>VQc!33X4d_z6<|spA=Os%1(Me-*?55A ztQAZ@9}-{YI|?&p>(B50?uTVSAj^B>1MquvBfD7m7-;e@*WG++OGMo8)gRE$x{_BN7G?1E}PooY!1(V3gtrDXArCv zdyEpM2$%D>YZ8@X;do)U}yf&>YS=5tQh=zg(sHb ze3KXwU$o(5k$x=DQyrA_V*c0bnnB^r&>p|B5fs+-b(;m>gA!)6!|LN92(ule&ipZg z(1(Azzs<@Z{w~i}?V=X8Rr09aw`7D^*@>yIEUpmc{A~M$uND>!iy_8L3^27{?ciFy z2IFJz*RoCyll%xL+tcTEF#mjZ{knU_FclGNoll;G)s{e;zL^GCjo2GLoT-JSJFWdr z*)N!Ram*gCRDk)O6~{Mk3SiM4DSBz;9kwUE-L&uF9*F5=OBY^Bfr5(2{vG8iP>rIA zSiBs7>S&$bN&96e&Sg}fv>#GoUGkK07AVfHM9M3YIyb6p;!?UXlP5od28c)=j-MWealXJViQFCf$GQ*njK_2G|#untw8Z>aAvfd5EPzh zR&l%_dFEFvKZ=7Jpx~fvGPSL%~~#jOJ6H(+j~BU&o-wUo411fEN8eFIS1^w zbD9OT%Ru?l8@86KBanAZ$^39z1=6vFJAQD!hQf4Ll|y70w8yi(<>X#qmtfaAfow)7 zP%bCraLhr0NoU(liM+> zI;ky5{k2|%(~z9wJI@T0uT+oKibd#m-%8q2@f${oYooXQrw+~aU($oGlibM`|F|L^ zUKl-k$y4}z100&_ch@J&5ntR;-bIe+Y1|e}EZ>N(zpSaA&shr>x4RRa*}ib{b5^s- zA$p#S1bg##a*nn!&u=@{Lwvf#_GijgpjnlRK7L1Xj_g)m-UUQoaA8cmBbEp16BnIg zlTrBTtNZ+5UP0*b{YQ?FTsX}?qTtaA;WHbKeK)g|gwO7+>s%fSz&TmQ&{tucJdZO* zB_{;nU>DQK?ArpT3<-8gvc6q67b+ayYYdnEfjFwiB~V3Um)8p9ko>ymdD&aO@YX!G zZa>KnQUi=f!c|EB499=5+erN|e_h+}lMwvmKYd@5SAh_7#{-;BYY?1%es0fSq8|l{ z^ZU@u;O}_g?RFQ^-$Z2{(?}t?BJXkm=T9T>8T<3?f?y=M$&dMHI^7r0I^;ApifhR0 zxD)IeI!k!Awl_Q+7jXS-7_=#J0~{!a1>#J3UVU4t!n*x6m(xGJpO4;)WHn z&)-85$0)qtk8qbv?*ujahvNaV&V86vuPfa=4eF^qV}_a}uUW}(RF{#|wfvVVH(ry2 zkTv-W5bfa>0BH^lykLv>cLP|!RYnogbe_b*YP^6_O)1(PZiMl6n=zM~2?mWO5q z3-6$i`0FHh=}xFz^O0?y6ovXn&JcyYTOspauV=7{7xK)XS_OXSLY0}RPsOMc3dgkX z^_VR~iSFaZMMhJoY~3Bc^rI9i`e6gobHsLHZqOhi>O07?0-@v(<^t<O*yNB|5JSE)o#x?K!fqw+ZhR(udHfY=&Ny?(rF^&MsUiGG z4}JH-YY*7!UYNe{Un;!TT5gSvBwT8u(*rh=4|Co(7xnO#GGtU1zHRpnhgq(}g#IiA zJ3Zy)>&A#L!>r^P&&)x1g(s)2gh`)ttA!{32L)dCIVls7?C@GV<9R|w6x7H}>Mi*U z_{cMfbhb&rd(%_*MZSk*9UXf-zmD{e-YmzrA2|fC+v~^5LY(2fje98k{ttMa@VB_{ zPy|{^#ebic%t4E~>@fB$47B^-In|xhNnTKo-Qo_Z+aK<{`YHG@Xw0F52Na3_dooAy z+LkH!tf|r3>7)%Gh11QA>g4~cdiOjZs)Wx}?bhr;!kbPHT%U9ze{X*P--bh^p5DeU zD7E7WXnsrM3JIj{$oLapVzL&rp9z@}e~6FIazXN!$Pm%7)b-MKi$ZNY^PA9vNkGn| zkyl0?>cRFo79BcJA9Pk+GpqnP=QZhpvCiPBzH*`?Bn9#wj}5m=)k5uw!ha*TgjTx1c0ekp^t8Zp=$gc)8);?1AY!YQ%uFB*w}c*QihKk^N?MSW?^d9!;c@`lp-+oH zK=HT_gVP_Me-o&L-mUTy)tB1PaZceI3^@)h&m(80C5Wz)b0s;E)P3R#pLJi+4nnr+ z`G2C>g^;Pr-?p9bLb4%qi~|!jkZ6i&K2P5d3Cr#f`>F`Ae?44jeSq+z*Di`}{c8*N z2Kh!!&E0VO;WR#8^aCDe)DGQIeoC$miyQ6b0ak;;d=Ve$o|Vy zpor}7`F`OO9B%E~SC_*9dnS`3yJB|1frBzTlE?~|%X{W6M7cr9Z}Tax$$;IS%im@t zbYK<7XcII^zA{+^-SE$bq0KPMmQ-Qbaq9kin{pH;sSk`~zqUi!>np{8)H4DNlZ>!SlG zFO12)nfEL+`5~madnf|C-NBI_(tcvK7#!MnPpnCk#g4|5UhAGHDAiqyseZu&g|2y@9CBim!yA7w_q*89D{G2i=<@4IM$!U=^sqU9FG1XwQYScdXSg>T+$puFRk1& z59LE>ZspG{i@n&vf27v)Uk!xAo$9uY8-OQKO>MueAH>%A_cmT4+*7Xl8^MAIlFzBV z`0(xmwmEP4^6_5*xD$#unr|ZerRvR-^8c|y&0X8F|FkvK|CndKdQbe_@69o;C$u5w zzVXw?vM?ywrbPrQEn!Dg%(_ou!H{A1$-2+zPWT(H>Lu4cY+rMXFI9yGL+>W8PlTIC zS4VE&@)VSxbho5O{e=o|ieJLhdFZSJ>H3@@^CY4-Iuz+}!#aE^<@ASe7~XbhqNn7* zwnH~|Qzqd!1THNIC|rPbgh<)87bo1954B4lzj%Y!kV}8 zF(j{hd7s*__DRAYW*fa{7zS;}BVBce%Wz)VS+&G00@Z}&f0xHdotJlct>__PP_8KN z{CYqR_Bn}aJNY-kp7ExZ@KhAxt2kO31S;V8LA%PJ>odvUm)||%XHIf7|3Xu5&BCAO zF#QSgdD3|KWLP)I!~1cz#Vqp(0-3&QO4lh6{^yV0{i847bZfhtk!BAZ(}epqB&l$_ z$JjD$N%H2rL)w1?h|ah3HCoCD z|Niv#!|rNCNtaKkJC`6*goi(mHXcft3}z&%bQdYCHo+xst$ z!FVb_gpJV{`u;gSxixbn7iht2<6jH2rwnhmy6lE=w85BENh8ej&x}4{c7##)Db^FB zLNI)slOKCQ4>q=UqTSK6y{^9O9NE-J1!)*^FfUU@cGg~PA9AS8B06oDD?qV(s55wfP8 z$t;2R%BMa_ZSf()N9-S#eIfZ&pP!4>S7g4y-z78TNY)Yp!e3<^>0?2N7AQNd$`Q)Q z`&-Ml7;z^{9&I*`gIq+za!);}vyZrC#IH++=cS)*M^;(jv%o!Ab2|`jf}*my>$1td zKGt06LV?3vuyCouI=CM0rvL4j1djx>P|gsNUu%=sh+ZI^$(23-J$*Y4lSe0cna0ha zUnu>C&T}3nS<@+k-1*QhE#5Nql^yDrQ(1pre@EsU+>oqej3W8U@sK3qyU`TO#=7|; z5V3(%>sVnZf}VssjFX@H`Z8;`-XVFirR zh;Fwr<(W2Z(q0%pVi61p?3*z)J?ncDA*1TEK994ryX$ee;1MiS+ygXNK6= z|NEpayZNg=8kZxGvgc!yG&2Iu*0&ejXC}U{N#8t21ori7_2mA&fj}v-coXwlgxtET zU;VBb5pC0Z&fif+;Kgm{Za!}yKJ=>Zhu3)|mvl($tmAtG@1I^MKRgbpLDlCTtmaVS zbx3)1bPOsB*&1(44@0Flej=5l9!kP(8#G7a&68Z>n`8`{4n8@x7$(-SI*@j`1lYBv?H;ylkT( zcGx=fEa6Ti6D0lXpD#eBWPxLqtUJ=c{LLiiown9x(GPaqP~Szrq0{^qc5R@&iFf3H z{?l(AIa}DE|7OK~=y3_OR&6Z@YKoyFay8$PPl41s1-#YoYoRYJ@!Z6S?TIaRw@AOTjWQ)``KX@g;a&SDp7udfGx^z%AZPIF|L&9i zHA3>;4(d`fR*>zAT*vbFJ+`<0y%d&y9O@1lmxa?Ez#g$Kuui-PLYdEH8T`~i)n{!< zS0v}X#{t`$Pe~oA_+cGiUJCTCWF`3hE`<-Z*J2=w8(w*Wq8aDa;TJVoab$G>?)yxR zWX=hIMpf#K-Bkv+hxykxuo4dCCezbq4#Ka+6`MS}<_mZE&ExXim*6?d;P;)>&F@+fvM5E?kFQkIve;f6QJGM^u8Ay3X8(OSxuN zZ8@3i!?P0khmFjul4`uyA#4c>Q~A68heXHpz9IfLx(*Igkx;H;1mz;fP3?+KILXl& z|D4i>qaWYQ@OBAMV<#EN;v{|jgw*%;9#X$W$%m#BzTpYo?~iZ$;j^9lpTi^NFlfLeDw;-WtB4^-y$`Q_Beb(gx{Yg;6|dk!9#$RhK}c<`h@Qo%**z!>q;W)qj+Sr`53d*3zpXslJ z|2ca?CHUuBNPj9RXFy$n;jurPVQe& zLe~AJAhy}{L(tvyVVt*O448;!Y_$FWd~N$L<9!TthK^bd>|aCXFeGfWnEL_vr~fUK z`vAR1`@@S%jzY($xm{045WB7}amB1#2e3Jv{}6TuaNW1>)WI82d%-!z(LM+D)eApW zncG=E+Tgrus3 zY#ZU=B#&rKGELB9$7sLegC$=`G%C`pj@$l!eKU?2ut6?+<)1T^e1GxYv+f5U;C(=y zXWgPBypDZ!3g~epc>tdW*<)P@O1L#1YHW%?voUuUoe<*tl*X8S&_ponZlSWAHUyfE zx(Tb!Bgo}i*Xy+;k5YU}Wz8L;Yvt&@et3g$Y0_NH()-fjqvy5%XDJ`ywLbCiq%DA2 z%yK)-u#9j;8AmVB$HS*Q_RrvJocX>KMbTSS(3oaVrKb+WKH(HS2H@t1i%rptw zlheUw=1W8$FBC}aCOr21jJo4p(r3Fq*tTJxGicvmi*Ve}gD-d8%S1_D(3V1-hste9 zUGVfzPO&`kk&B*A%QV5~)pn8k3J1`3etZ4w$Q9B@8#Rv#IznAz#8d3f0dTHcpY>D9 z6k>`45s6cQ;7oL+j|gL{olGsg1d*G08^mJiA^!S3A3Moui8)?33pm{lenqy!Peppb{m76y zQg05PcOsc_|DCdJ}4bKBBwI9k?2fosvdTTLx28O z1aoIIU+X>%-%)Z6Mcsq|pmXsjfn?JYrCc{BL9W1o1h!Vl>OL6(P}U zs>o5|0;R^T-;E2up!`}eUS@I<>YC_py&{XAb1mdf2XzIzT@E<;KLHZBQ#sd{M%s2!WG_cvDZ4{G#esZ_Fk^ z{AR+Ld*d4+p{7rb4pD&c-p9N->y5!Ld(8fVt|^&6@?-C&^BrVvRQXM@BMUIL{4E-J zMFys|7iVsg`rND_aBPI=xn>{UblkJr0rMMoZ0s2?!BV=Rqo$V?w!SuoS9eFlQk3u2 z8mC{dN)-*!_OOPPB4eJ(gC)4Q{BdU>`3~p1*LaTF5I$zle$}n_h2W}Y<*oD54sI?c zQEANza66kh$13<6?v%WHd)Nly9=dl!;lEmVDDP+BBL0I1(%R>rxxmB9C$(sK6z;2= zj4XBx!*1QvC^06o{|7exmre4Eb|vYmBiCDD`&Q*=%)d(5?N#ck9Xk!jJ@+LKf1ZVz zrPWo&-*&K6a5PjZR)yu8Ms2P-4VX8a&2E-oB>7ve;_l16u&DA2{&7B=%tyO@kIh?@ z^sNReBV21?V{^`JbSEoZAFBS0kV=BHtxU5jnX_fDl-k+DnM}|leRJ|k{JE6^xZh{iQC;kT$EE}7L(DyJ*IS%C-;@itM*@lGJyqfUC4jPd z$`>BF>k{tyk$N=J{J4<&J5YrdFTH+XL;8i%no0>W?=W9*LHE)u(VN7YUJfh6R?ztZ zLpKlXYfKEjYBIu5{o1@iS{KZ3HJ($V2Ecm%_(v(42=U!m)#X2T5Bsb4+* zNnF_qEA!UUV2u@6A2|7DK`Ik=;ulrId49w0=wZ=+CwIfj7g#Mw|Rn*4+=Ns+I^P&hZeJalTP$V7nvg&7ky`v{{ zOz*Ju$r}J|ro7%2s=#-vmK%Gfp|_slY%%fW$jpa*$;BNoSb5*BBRoOoNS@8V-Csa> z`zO=CU8f;;+gACM;SDGievf-ep9aP3a`qdktdP#xakk~6D`bK_-}pXghM4%p9)TA# zkT}t5?_uo>iEKI>cOG3xYzb?PqQ8k9b<~@;8FoYb%E2PXV`&gQHxcmQPYy(%e}DU- zmFySUcQ@=Ke(??^ombu`^B_^=op~o>5;9q*I#kb_LGkgOx1l?;p<%{vtMn)Xn#Wi) zg7**|>b~){1vO=I4%ReP8_PhxME=As5pgJAT8e#Q&I*M$|N1^YCG!tbrjMHM+=H#5 zesP13A3{q;_tBh@J`{6RgG%ckfNR(%Vql69?B6DK9H($WVDfRgpza_zG|o)$%XLBe zFmG;G4KJCaH&kEoCIgc91eCm95`X%HvCDG*C&=l_4X#K~9BW6qxwr$xZ0t{ZTsuT$L`=1B&F8*|okD7(D>a6|A ze={(?=MmS@GYyT#`^Um+5(p@r3~Q?bbq8%2@jFD z?S4@~AMw?_9+S){bowIKh8!V!;mOV{&Ij$Vnh?ADKZ?#f9Lv6q;~Ak;R<`WD_Y9}K z_ukyMy$Ml7k*q{W!>UwB2%%I+Lk}stP*$i!h_d26-@hC^$5D^t9@lmK&hzvAe4hqY zf|gp?y&1QApc#44^1P}k$aRq~(Xjl%pGTUtzC;7Bf$Fi)ea0a8UZlEVvL00WCLNCT zk)WUSyii}p7+BMU{NfvWf_vhh0{!+Uz{XT0zZ1D5%ZsYiT@t=v@KD2-oMiw^6xa8a zPSfK&>&ps>VhhNm4RTKPFM{%!VtJ92=OB90%`dZV9)x2W?5!@N?~dH5P?O#oqz|6! zn&n21v(c2mv9~{glXuCciTNu?or`o<V&x}7}0=YS-zjY0XAa^)yQf2uYC|=BGnlDoX z-iVpc3D^37yX=u$R@nyd7DPF4#tMVb_pCECUBV#DeMy&2Vj$ z=uh4cdGy;Cw01SlfB0w%Quf)G_NBZ6=@I7BhbVnO=E-e!Mg3`zd3D~SReuMRYHTwu zTH|%5-+y>`_BAMl=eGQ|asVZ3%}QU23Q%s5(%y*MLT|0P|EFQxZ*R7G<#H^7T)|PB zf&%1FDjQZ_?`(k7#IGOWcaVSja8^lvz8qwHz338%KA=FuE6oOm6-$WBq`t;zXmG*m~~G%<$=~6-^YQN!5KPGeU)tfur5U~(4u4*crS}y=PJ=%b5BrUiqzYwn+3zOO#j^;Wd{A- zgLa=@+(VzVu7}TWI#3g`KdnEj?B7`eVrA(Oho^X6Z+a3K#>x=-jNzfP5QR z&18_=IP(>>&D~BhnTvs1MM+eeixSwz1^h?rPXe}OSq?58LtyJa_NUeY{iI%X}F;M?nY_GD8J1X!et?l-Xo|FR|f zT5Zg`m7lvAAXbSUTZ4;}`9|Pn$sBU$=S}c@wHP5Chdk&?U@if3t)5iD(SO_KfpC*T zo6V2}h+i9oZH16){Ai+l<-`b{69)SpxMHsH;qSX=;%AZfc$RSS^B{Ub33upRnSm(0 z-J*p)EMih%WHWlgJZWZGRQ(2k$jX_L+Jan5Bf0k5UTN@Dllw#Q6+KLAn^P0>_i#R- zuyf&wD)@agrxcaKJ@)oZiP0qm0T2M6I+jQnUtWvn6#@^*A$2& z_lJHw!2R7jLwje>W$;K&a;4EL0GArx`r$eB0F1KE83<)V&=HZ5$H&kkV>nmZ{%sJP zZs=>}j5dI~QjJdp?I3b5ZOlKBk9H(_mE9lYM=r(gkmKP#u+Lln6{d^6fD$Iog&WA} zvrq0T5|0OK7vIvVF7$~`u`Zigk^m;}N^JBEFwYSGZ*ZIfxfd&?CdMeRIwkihoecfb z`;Ty6T?+&oR!#~5>q@X5=&i{QXaM_H)~|(y_rQTgU@l+`_f=Py)V`m02VZAecCj1H z;2TkP`z?A<2y+Yf9*&gbT;qVO+L_n5U-WOPcE$H|CwsjN=Q2d{AMRA>oAs2JO+Tpr z2wWHD5;RBA^Q@3_P)iEu4iEn;R(*r-SK75GK1xyWo6gf&%IC({duv)Q7w3RHx2v8Q z+CX6aa~Ys!0N)3?Qg@S5z|VW*&h?B02raR4Z1hnBznx9#s1id6Qk(hST$_sL$w*?u z5kEXf-eI8F$Z6)J~q;e`KLNJ zO9|vGKN>CknFwTZ{d?hEM-0wU<O`E`Xa=8s2^Dixi#S&& z`<=m80+te4j%8IkU@0uIx~`QCMs)h??}Hh@u!_b#mxy_bhK6_XFUP>-d2n-_&>yg} zX5MDvLm$3{rNV_P>c}T9HvKqE1y-G6R8th_wYPA5lvINp;!w|)ljtwd^B`eg)FlC( zRc;tJ2{0=*7YQGF2Bv>ROoCWk!FhtB&9N#IoaYJz-T$Ba zYU)io^GzN3iv8*4g#zHVRGPdlvD1^XTZm$|9-qr@f)0~t?YPvx5{Z&Syya7Hs?P2DFCg8I_%Kf!> zKX`9Vc5pc2euT@=n5#Do{Bnl+Pun0Lc1dKg|I-B^5Hx)~M!JFMdBJV`DGTPIvm!($ z{K0=VHQ2u|9^#_ygIx!jF)uB&nDZ3*+fUCci=-2fdsa|&Nhtt-ze4+93+X%OZ?}COtt9*`HHSjXr$fR5 zo`w~j{NgyTYkbqO=Uomyiaxh@PKtrwPnE;Bo5{d`kjdh~jS%qD+1+)28V9~+TjfUM z=ts_R;;nvs480g#pE$%sz-Xc*;8h9{%&hH1h7KZ!>qnt^-5?80Olhwf^=^QX41+$X zy#UQ9it~T!leZl&%_b10HA@68=Qls{yE^?ZMkLZkWUuHw`|tStmQLdl)7O|PKu zU8HOSxor1V>tFU(XVLrl&`<`sbkBX)<2*0oo=?1@!v1gx-Y5NDT_rsVUZpSccKJhr zKR*Cmsbzk;Vpx3$JGyq~hUIhAIwfv4W+)z70H z;CXAuB8#sAJOvB8KBPVe&oXi2!o6|y>|HqLk9#Q3SnetpzOUf*GT>Bs+ZGV-steRl zq1XK}OZG8}1mwB1R<5?vfH&cJ+db#Z`PzvDJXiDL`4iAzu%+wf?l6jZs}Gae-~TBF)-!);K83yn4?5;gEv%Qpu2jWB;pqfec{c=e7SJP?n^YoZD}v7* zuN9ZVv#nhwij-t`8TLj#2=*sI7HT`6b+oBi$gQ+K7nLgSxT9cvnx z9ZMnKz0d`Y#TOX*^!32yZ{_zePo&{Wo>nNgW6sX*C(Fmb#t@->QafTCeIBb{JV}%2 zz}=%|>jNqJjYDSPop5!$b?{pO$sLRiZ+}HujqDHG>FT4&=2IUsS646&M_GEfY z966DtriN?(fns>=;=1)G(34^x(4sE_t+gk=eZTsFmclv1Vj&y!G;Cj3o4)}DqY;rB z9dTgD$Fm-J7V~74TQp2K*Rj^QJ-b%x4wl9579-KKC9@Z#yRG{eL`r|L`p7DSSHntF zJ}oUc4kQ%JSRgmSE4Hj~krETSqpLct1iaL0pRV{wJD08dt&Ovv|*_ZT)u9;eZpjnJUy?fAf5-T-Wm~No7=!l zF5z9Me;Sw`N!<22kN~zh!6`kRhT!JNy{O-ZJsE*6Ii{z^!TJnQjiUGxa>fQL7J_*| zxN1^==pW99nXcY%GyDivY!?~R8uh`(wY;(Xoj=&f1sxJcKZ#XzZgk=Pb3mX;T@PhD z3=)0!GK(?K;B$9XA+R02O0!*}Du?DE_)JfwAoeABhi|k_ZG8cvT8%UDg%)^;-TiK; zkNXP3@^nOJ7&M)1tKRDfo+m%8xi{n9)?^PJ z1k;1(V}0{w4gCHl9`8^w!PnzWNWnQfR zQ__RSfPuK+6y}=vr#>p9H`n)>i)GJwWAHYY>waPT5qwUos{EC|1wM__tgFrdzNwaR zx7G@=XNiZ5E|45~MT#ubHY(5?5?z0KHUmtzR$hwxl7s!N_l_J+kzlT|k=ZMboQH41 zSkM1j&XaTkVNapkStk6Tn zpCk8`5mZwhpKb`}f}X=;c2~M0Fy~Qb*a)Kpqwldh@9E;eSbL}Ldfh!R{{5yhy?Gvt ze_VOHn?Q-4S#FAR&U*NMAB_2S^8gs=W!)cog}G73V?%2<*T715S8nr80=RsVvb@Os z6`W;T^;S%g@43$w{H7G2lS%w(l0V+TT;sn?KkFiJk~W+@nM(lc>GG?4;c1vZJ?!6R zs|d~$_9k|)JP5LW_fMaa;I?Jdr#7r=ct16npNrrC4={rLZr$rND zD{l$09UZ?CpHV^hr1U>E+98M?nM;qAiQOO$*NeY@*dNM;@cRFg|@^KwHJ#A|vpqObK<{Ax-V`X75ves(FU0^6!M zRA}RMaK3pzxwRQs4>!vQ*Pq4LVNa-20l69veZ5<(=+nP|F1RO^B>KW|OGj=pV z0(SBK*}OQgnu&gcLG|mO49dVEXc%a@(HAv+$hcS&_or2SN+R_5->Jx&CjAXTpns%J zyqO5XJ*f#yIuAfnlvanUA_Bzke-RUy;|8&Is7J&?^WbUo7@1FE^t59a>D{-PNcfmGil^l^Bz9%p(1 za<*ZY2{rQ|T@`zeB-I4u`~E9>{^&M9Pov#IyIs&C=dEAe-T?g#Re4{-Cty%LCCXCu z6?B#DhJHWp0`2^4nYf!*z^v9ognr+Bu-xuHOKtB4#<4<&=*#Gk1MAMK??gXKPC4}m zaz0jM({c}T^?JC>}hJTrb*r+iF9~yME zXAON640`vz<6h93hu^c{Ao9q!o3FpD=mpdEE2M%r&oO^Jc)FjGsFy=S6_qcz&TBVPr9p-(>TvAi;{ zPzc?3?QsQ;2Mj(-P13-rt^eWcza8LL{;Czfp^1Gdk3MdFNCb{y^`D#PbAg^sEj38K z9O!QCd4{Ex0prWiroIQeATGQ~()I%T!BqYejk1XV$p<%gXpaelY_%;}o4hS@&wel7 z;`587b9c6;ttp6UzMURx2nEpuWyR6^*ozePN2Dwlxj@pYC~>+z^eNse+P?J)Bp>Ef z?s2^UzO~zDCcdR$Zc2me1?F;?1~nvz0K{Z(%0&MVgE=y&^F zT|a%48>C&1Om6Bcfc$K-6ImQP2;S5Y9W@UCwqF;-{NxLOp4{I<6#W~_KUrpBp%MiC zYQLz&zB*Ca{D6gxXCPl^;{ImgKTueW*?XQk4>Fk-&s4UCf$W#v=ymK@lBP6VyjZ<} z``(ND4n5iebEVqTH(4SO|0?@a@dZw*rfEbV=;= z<)CcoV0H5FeNe6~Vi8WF5i37+Iqa@O?=Rn!6a%#Pz4J2wb zj?F1O0Ewr08F#r_LFv(wW5i#4AKt%+3CNTM-H60!hnhH0KK<;;i?IwaR&JqeZpj9l zNk?H)o?4ve8C>c$!<@?!AJ?9s9mu|Hl)m|=2?W`lOPR?ofw%>ejo;npAaFTk=Wu!? zNUk5JCO_2xCZ6-nvB!fz-lgpQdoA>!R!TL0FULX25pXy>rRYe zAo)JJYvtu4h?!B(f1m0AnQM9vC{I@Vs;DqtH$0gyi@E4rBI)Y zS9!lc^nA*}<7_)1<+{qN(TJWSi^=+v%IHNE;T4eTL$9J(-uD2=1Nlp%K?L6CAf@X! z7m8f2e75|{q(kVJH-yB07uCU<)grd(#})8wW4{huF5y-4igFe3t+`R?lQ>JoU%u~6@&H-NWT z@xi=xM<9F{$$4{u6MKw4*nZqH1^*OlLzRRD@OsqkZac6J-uKf6ChC;Izs>LBES^)n z>RqqP(Fy@!=FaJ{I?RcQ^)0*7?|i%mJzHGj>_Xv1)D!c4{N543(IgeM;BCWsNW^Qt|~k@U~A<+7sZ=5q9v}m>xL3`0ifB zMGjun`M;HsmnSIEFf!tEtCzcBZ@XVI_DvXf+zBuPx9Gyp#4lICL*(7rE?&$jZOH0e zQ$y~wek5B>`u}swR}{aH4`URO;XD^WxLbMi;2 z1L%4AZP>TPg}Ftisq+@^-XV9Ss3m-D3%q;oo?}F>4Z&RPB(;?YJ{RV_chLC1FWB;K zS`YHCi;b?%qu8gY{c1komJ)cHNlFURFM;p51n=avYVhTKdz=4?2zYNiQBM9(2z=)h zbGVy)!8h<<^W?%E@L6%LC6v+up*WXmg^eAE`L^^z5;^!Be$GOZ4$pt#r3*^*=OFT# zcQpGG3-C-xKUHJ%2b{m;F`W=i0~hu4uZ*5mfJ3gAKBYY`=6k&SX$oY)*1|lx_N+2E zn8*Gp}|_@u^>JNxtW}t4rjrB02TQnfm_(0ra@x7Spe?89?8&d zQG$EWV1{W+CwQot^cvnC0nf^z$s-xa3x}Os{wq2L?zTtGpZ1|o!7TauaJC<~30kC> zERcZ9X3`6XZ1lht+Xag+NPyc_dA%$`2n2A_B7Kk(iWt}+WSR(Rv z*wq~%@G-)Tb+;faQCh#h1bLcPHlaMX(?I+ZGo4Sm2wpU91)D(!f$-c>5D=d>kuqda7!g4PJ(iOYC8b!{yK;Tw1dggtL2)heBb>PGGGkCwaSQ|jaXj$xeOE)A&$SM}J^l)UYt!T@g_FzoG%0i?4Az5`M}gnP008Lc)hyR8q2EyK2BWPf|$4W*ymq%kPiDTBXrg7#M}h0 zB|V`>Tlax*Yvngzz)K(=n0jc^Z3SL814IW2mEfiQ&G#$o8s_90StAk zAlyi{r}D?&k1{-Qiw3Vp)^80uEH%NoidRjHT>~7)rd`J&66^vq0z$UiurJR*r1$(k zuwSX=rIo%3E-trOXU{Bx8G%tTt)mZ2?KZz%c#M0?_~?-@mPXby!-yPsvbO__|+6r;pbBbw$jt_daX7`G1?afZv3|f5+q&0Wvg%4 z2)P=E=Fa1Tr0U?%wqK=kWDvZHmWpRjp~r@;_tMqSHXy8jmK4-Mu0H)STR(bbiNmK; zw@3a%-pVi8I^737NIqMF1Ni)8E}(~hvW zyPPx+R>TDR2@@gYoKK{t~k$E0)4CL;Cv}#ay zxnTVI8wn`ymKieMrU505KRr&vw?OTd%6NVJIA|1EQ6x}KgQg81ec7oc^eVF7B8p!D z-KX;@ndL!XSh7!cPqYXOqgMy=`^G>&sLa(`(GGM}_gh}uy$R-T?iZ~2aD$rTDqgJ{ zK!N(ayXmMlsJQCf`urSuz#0zTL!AMjUssj;bU*S@YQxX2iZped0}g;p_}s#wtMRlJrJ{0?C4v+hcG5vUYOZ2$Qo47?g% zYEk#qL4y2>xWl(RkTy$8tTfO888uCXBXVmX8ZaW3F-MO1lDH(gyiJg@2+>#@B?mE4 z7XHmT^s&AQ(mrJW0K|j)$^E=DK~hM|Xvh>j0;+x|jai<7FlFm&q6zx@^7<|H% zBKhypD}4Sw?a-qhK?dRpUW*D1^q>`KbE3`D9)!32#y4BKKPg%{SSij&t8w}6n&7VGe1ZFuM_0HWL!$#vIb?=A4Ngut^nk&ioBOr0OF4w zxhPZgQ3bOV-PQI7@3{?u9S!trT%KuvV(|&Qba>f59w-05S534eofci)62Ik`s@Oa?fixz6| z`))Ec8-+Ps|MxV1hLDRl*c`h$uLHp+51b@DKmws8Z{KsFX(3okdZJ`P8G^2-|f5p8HJ{5GZ##D*7GnbK7#~^^LKoW{k#Z)b2C*^EfcRQp$oLd-C9d=x5-2K&5hr zN*RcyG^FYmF^AIRl8`7@3BG41MBm7xKOsKaAwJC$e6JTh4OPqrcb^D0lA=BEFxhQN z3)07t(D zP1{RO=vR2R@q{-OoYOi_d{$U9SnhYXR64d{}2_TLCR; zl{f+605E413yfRA{6dC*hx2YKxK#YrGghhxw+Ibhc0)tt_^9*4@!aQxhh4+v5 z7f)O_X#DU>r{TKdo+MMDSn9}W*L zEq()s$=!yy0KBj18$I69p#pn(hP&Ge*ze+GmQcQo`67{dO2V)fIDT3U_LU^!9Bt^1 zhc*K^5HH4+iJ{k?^U>Qur#*1yoG+d^p9;>0oB~O|MS%;q2=!{CDmWi?u#4Xo0RQ&o ze@FE6!I*N_{f*T}a8@w<>&n6bW^;_++B-aOFDE7R`THNRT$%beLv{~*&UN%^J8EEG z7(rmlV-OU^-%=(%=mGiWzfD=&qagVCAc=ey2k_pIdDz5H2ZGeukIrFERdnX`<cbRiQ%@j1NlglMLDdix>M})TxZ1A42|F=khk#+#0Ru)P4-+rj$*x$U71WXv@>) z@Ok7)ze|q9|L3#ZAwl=ZasP2-R-b_TWwHC=3&OZ(Oz-Yz8Nlb8&5S%o?_1c%w4hLt zsf&I{HJ-)iufYvY9hjQ71kYNX2~X_x^V$fmIc(ej4z#!OuV#2)&txe>dI0WW57r*) ze1W;-k1_`@+Ean;n?FOQ_qD(_h3q)vP4rDJQ_2ssSE83F7p4#BgGa!h?@_EA=o_y0 zUMe=lbKD`%3AHciX}ix#uqp<};|i&-Pji5iXOGe{r7Sp|D0S{umjfr}DB(+=#lY#p z2W$6FPT(Z)EK#?o0oV%ZC2#7 zEi5fUG%*jY*C0xCK~F%(7fIjHVeEUGxOT&f2p-PdotKl9z+L{2W;`Jh`$qzM#7!r0 zAJg$$_t6q~EGGMVd+& zyh!inE9(s5=bYs1qcHsc-C1Dy_s|nOg*Ux&X57Iu=|yVP6!Hp3HYcBZ;_LEO>%TW& z%W;0*71`*A&r5E-w9kIxpB1F#ZT{iEb2R7P%LY7Beik}oIK+y)_IXCWv?Jhu_(YKN ziEQw>;ba*wHVt0C4xAR+s0PnV!i-k}+QDm{y4;!x_im|O#^9j~p7sJ&R+~QHRXZL| zu6Pc-r#s9u$z#Fquhw_|YUD-|4;(XkA_HC~(%b6C^^sp6HvLqCd`xd~mR#`^`j&o< zTn?ea-$Q5p9trLPe~(L2-ujLnMe==zJn%ZHchs=AwHk9^b=kVhZs66IE--D2`?cUo zYiheR@aFBCvO({*H!)A`#N{yXj&mw>c^8j+m?!jC@VVMs#D#5;Ithr+4(8lukq1?- z`I90;M9}N_VP)ER3M@afbj@stfOa~OLZ`nQWQKSyNwuhhzDL`Kp|Mv0=TxrFZcBl| zwUM9mnTnXBO)EO}p#oIiSk{H&+|GzZlynQdt-7h%^ml@0K$+dUpy2Ee&>EGQEq!|& zjQWIAG&68sHDczYbB7uXuKeqL5TlNBqp4xb0Dv}25ne+<> zk}+5Ic@B+s_)t>JSzkrw7HQwFb6zD(GYvvHcfv5G1;6r0NU`$C% z`z>Gz^ut19DJqn}K-oO^*xVo7yW@2gC9dE(CSYPrg9+Ty=(A_Dus_|}kL+3achwNkRnNt{KtPcp2ik{q`?PLN&OZq+iPFTLX`C z3s=>o%JKU6^J!-@4SL`k&7GCmFgLu2@+b6*VcN86_}$ z&wX-ps};=F2LF!zpV6o6bk4-Sm%Xl*615^QUtzm|v0T@E`7Jcmk5uA03bJb%0n=plNwFdbVsgiZ9Fdg1grG zKyf@BcoIH^_#Zii`^CTQ?eG48%e7N0LdieCaf0gVIedPz@qS)%>8K)Do!_}RiGC%^ zJqBO1ni8-+xFyZe{1j}ot>5}Nl!47m=Yj3xlwh^2mj7r9eF{EL@21~IzGlU<^WjG& zu#7b`&3=6pOdLdydj`%*SqvXEWpZnX5RpM2?Ya#>z-PWfvEBOyZOw4z@ncJ!x3;3j+V5FU%GUhmS{P<2m2R-@)969-NcS z>C17BZg0pk9Pf$VnvI5ykp2?Pub&(Kx>*Z0WEO1WN^D@q6JGd;?KW6FptLx9o*k@0 zWySryKY~&8MVtIU{Cl#l8hn@|x4suB^5CZi*elwklqXAr-P*8YCVt)=MelA$;C0E~ zXY{${j~=iIb_#c-sRi5X@#C(W`@!Da^S$($Ch&TruMGR6pV^JNTFeON zCVLuL;RhMe-}xpxq2o0W_#YTW5V;FMWPGKCKpRn)g)C&sCL0KE@Jsrw< zhjS0%k0kMx;4oIJ4(NgOG&=ONCGbADZ&^(z(jEaX@oVerrBmQuv3u^yHs0qb`9qd( z+k)T9Nq=fFa-1uwy^|F00=qbcvYZI?61DMJ@3egc>pQD1txOK!GD~6LPD+8?htq3W zH(umT27?ymagHjwKP+-<5ZqlZm%aLqzrXI!q;f4Q2=dQ!vw50~VDYJ=X zivti4oNIMcL<#(hK1V20-@$X(Jrcn(Ch+C+-N%n}EZu?(&$n^LpwWDp>df~ep#D4m zTBhGBQGNd_w=*!b6IEX{b3{*M&AR` zwDkSoZyDevOZGK+p$&Z0cw8<#JqtdTN;11CVL-TZ&4~Td9Uz?fx3o-a3C3sApR@8Cs{}hJYt~~3`G31TB?{{fnF4`oNAVT)U z2`u8z7ap>@12#fmy>Awdf>n!00AFb{*!nr~dR}w|yVu%NTr}v#zg@edy|4oIOj7@K zIcI_^o9Lh%jXL(bm@zRje8HYYUiO23l)=JBz>WDb@&SHAg(T4rKu<;Hz2E0H(7P-a zxp6oM%v9t3M$b|}SjdMzeX5jj`siZvDpv-CxmiVDd5NEkE57PnGhd<>E@H;!oEFoBbFH?le=wvY!2xUE%) zeud(R&5lkEa0xK4?xOhtf!T-D`09~MRNo!BcGD5UmoCmI?_P%h&bTNK#*7xxt!W%@ZWF9uxR}n{7Ges&Ib>H|B&jD z>O6Ewt0w>C+Cxrvh#|;)R0@1jEHgd6E`gE_dobnaOQ5>x=%knO3>1V2f3)_g4miw5K;Md>$N@h`?bAG7G_@u!8fPgRfw1a?@p(Vb>|Nd{OuWh%5okA zTgg92UB#YM?srcQ$}OO;lJj+S6&uLc`g5t?&4J@hHYN{El(B!nzjG^ZElB`bU@j zn(kvRoR@Gt8FM-g#vu-cz1VZQ5g0xek3D8Q-tSbb&w}GHg<%#0=JMp86?z+ofivZ? zPdV}Xz(Z%L{f;yC?d+Ge_;kA*xjcmt-6{$2h&#n~dg2RsdNq9N*$V}aly^RN4)}qm z=g%NIbvzG!bRGIbH2drrJ{1G%icsle4JeIQs|)r@%_4+O(j8T0m1^gY(97A6V;LHb`>Lx(HAE-94k zA;=d#^_{X=RszD*ughzva3A*Xmw|2nKHx1K_^$Eu5%3*sp*_HhIoQ`79Rp_Dz%y8? zFJ4Fi+)6$V4LO>DFIi^K{m~Z?zc8^^v%?E4gFJ(;)1!c%fpu{6RSU4#r|rak@dkx3 zLDNyZp75P~H`Vyg5cj@!xohlqd&)ua!SNEb%MwsPbf7m%7foGZiXYjLXn#u%KZ{Bqy#Dfr7!m!Wqq$uK=AexT0ZpUX>+r#SYR$uNmO@Lz7ND8 zE%4gf0`AuzM&|YX0=dSX#}Y+H!nDT)&jmyFWysDPXX^avlF}miooAU+f;PC5JV*QnvVBI zgNUr6c-0)vlVl&gXX2y=A;M<4tqA6`PF(r^b!rkhkYIUb-4PIwBT*+5N`ZjRD@vtD z3m|-(eQyc(t0K9Xf8Jak!u*roo1;FGAoanmp60DB7*+Jvi!~6z(tWD_!$n`PY-Q!M zEs+His}boO*<3JewpcMCvSIFe|A(udzrf(M3|V0G3$WVp5cT+i9x8^HbVCD}?`>Fh z{v0X{#%DKe7T^8=^Q6i4>6?4N8QGBVmt7V41v>AVbBHwjDWa12ehAcc5*1$5H znu0|I!1B?LyOZB2Kr!jS#e^Nqng7_4E_w0|#F&$QL@#~^ehMP-%i>$m^!>DKwSN(G z+wXqnVx7b^^6y_Q ztVcj-r=|X>Hs%=hb;o4-e1VVFk=;9O8ieNmdNE)52d1I6jN(ipaGZwnjY47xNcvf< z*<6wXnUsq6T{q5vjCkaPIHx;sMb8Z!@6ZO(1+mlbY|uNy|4!xgQS2ikD{mJ?9z>?J zix_6{n(F%|NvLcdtko}~Q>Cx zTQ1;J%w;;>`?m&I?94NTG(MeR@0)t2sk`GCm zm`7u*z2#;Fnnw4yKA3KRf!IuPA?XlUa%Hcc%Eq711D-20ZG-Xf9_>r{6tH;gDDP$w z1g2f-Id}LQz`SDj^LXn8FtqY`#i$$wwvs9XiuAa*&!lhJSt$m8@@Hu(8rZ|38I?+- z)B%2k+=b9)Rh;u47rpm*8UorC-jA;tf{%*JLfZKiAS$NKRwn;H7vlEpD*90f+yvE} z0rV(vR~!=!eTLV4y(45EvEZe4CYJwtCU|NbtkG;>0MFs>`9~-5e(xRdu`v_x8*ZsO zZ@(FWzq?VwP!H}A3?0al^|`_2z`#Ul-WRYx|A4;T8+(HKjRR_QOTalaw%=C$2sl{h zoZEL(8|;G$Ru4Obfqf!xh0_XNKOZ(8{ZNN<{w6;E9ykp4mw84s#*iN{%=|Cl4E93B z1>~+r=z#sV(fRmq)nNBS`+5`ZU%do+GrTV2dCHVCXWf_=T&>+E+~jdSJ7+%p<~VX3 z`(=;F5ATBanc(jY!}{R6W)nzd_yqz|?>xBkxdeh5PV4@v#&gH|{5JTdGMUzpz9UY0X`$)`Ma0wk?-%!;}z5av;G>^Opz8mR}=O-mZX3sje(N| zT{l=i{rK|D$wOe}eT*KYwR;1U4pDb;P4;ME;l3k5Edr| zk~tf}a%4Kxw|*8Zt8OXj@GgS&V=4-AT|BS56~)5|{P(Ahk(%qHPc&aZiNUiREInU* z_<(y5o8?RA@BJqTmZgMz`wryeUl!W&2sVM$ht_MNgNX>j~B=L$L9o zbrv(A0&D(2#@8;ZU|O1HQ=5bygjfChnvdQC+n9$uKM&o20EPEEkAM1N-b>**zW|;u z^LNSDSTP^i#w7HW<`o2FrchI9Q9*##@w+yDL*VD@mc`18d$>YPvX;BZkH=rl+S*0m z__grD1ot`cO1B@HulNd4lB+kX8Y;oU^rnr$0dFvotqD72jCr7E0mElsOTf?bezb{<BYaO>9g705{m~WIW-TxWVslZbY8&%blZO&UAA;9bH#fT^_GsQ6RJwuBWq$AO z89vnG1OlH9d64=L__nV)Y6S~n&(Zrcov-X6Liob+vIFwfN5K1rZ8L;9XP%%x_5$g@3G9}p5A?8q0^=tawXN`eZ2Z2jzp9KMZ1*L-xz~jGxyFp6Ap=$5 zdS;1~F8UhSZ=4ILSt7wb$z0RZ(h%HV#!j^GSV5dJbI_;QIgqI3cDQ{Hb4ASN^{>C= zVxCCcQnTIzG^S;~Yc!<*f5U~w?wg0edYp?hDvSunx-MR+Gw%S)3qwvBxl3TBRyqB( z;TAYS1&y$pH`u2br`jYtg7dYjfg9@R-P7O{No3jtBAp75ZVf@u4Tn`y3w$oSAaR-7 zMIHzOKXS$&qxa0OH1{9w=iE+qG?tx>2AhAEdyhZB`N6mH51E#nU>xdbIr&owOg2rv zzWK%mwtCE_`c(hGQu@)UBN387c%$}1|9C3+h5b3!{S4=&EbOyAujs%_@6C>s3=Mex zyk;&Hg)5bB}M(hr7`H? z4;TMx@&~-yROH9Ua=`PfW4!3qR3MZK(D@}`|JD4DdL42y@clBO{pHRD@II|Hapubc z=o?(|ql!HS)@hH6pZER;R{aK!HG|5as=43I<{0veR`YX{n$?(FtT{6w5dy}ApOm^S zqd|NBpJUoYR60ai+f#bWi6yhO3Oy3Rt z6iW>O4CbnT@%#{2b6hs$2zs@qihRw#34tHSuON1bT5x7a(C&YW`MT0{x%6YD;6!P3 zwypxb{@dXn^?1s`S}U7`^2I^0Ev{ng4m}7i{Pq{R{5`<7E1km0;~&@#+f|cckA{=} zmu5@S2@w09@-Y9HH%LW~E4yyYgM@j{e?-Z9!1t!+4|U82aJ~o=e_3P-$CkoQ2iseL z$h6YA2v-T<967xh9Nhwf^H+A)uZ;u$qsvpb{@Vb7$nijrFBKqYK%EyYG6Q^{%gAdd zE(6a|bMDWYX~0J#Ba%ph&qtrPFCWI7y14IW)jcjVkfz|ZC@n|;JqxO<5Tg$ezpg8m z#tK?bsYp9H#X#T9b>X)F`mQ^dePbT=pnsz2nJ4ukdaOEL{sT+d zbsOF`{M>%;$42pB5N^S|LAM1O%+Rc$Z91O&bfTfnjDVV%%m@IeF46QCnZ-J!a+Xf{r;QkzUU!*@bY#FK3_Wg&Zt+M z0A&G+U3Io(P@Vt%>)Nn1sO+Dq?aMB!+;r%Tv#y55j_ zn;%3=wDwnxcY^Q<5f_#|<2{qjfy@vKqk(z!UGTl{&nW=<2BbtJ!U zMQ(tMh=gzr>ph@XuM?rA>j!}~VjFw8JqTH5g$w<$1@Vc;(Lpv9AbWIY;SJkUkbb~X z8Y{R6ige|c(ntCLSeMrL-1|W0=e_FlZjV7dtKwJft`W$vUkxEGt_OyL`zs457C`#2 zM5aN<2jHcbspyuV0+~MXTt`DgP<(ROMOM`c6ih|ec)lQCmFplV!9@Ym?_HF8JWk>M zv!liANG!<2yz4ZU`v!84ZiJDnp9Fa`=U9mHuGR46ru) zR)$p2T{eR$WuSlkb-$SJy zx#)-}^c`&)D~zS02l~nZYO2;BpxmD&$V=7-&QnWQ`qhKL>%)I>Dk}@<#|YHTDH=d7 zs4t1}BKD?U6BID&DgZm$YvwWwji6_pW|YP?4u)U%f@sE)L8(vLd;_0{RT^af*V%b^ zWBrH!A0bMa70M=i%O01#x0~$S-kXw)M3Fs;6iH@ADJl_#tfHi$vN95-L^86z*XQ^9 z3%=h@=QyVhr|$cGzu(vEdOn|zr^4PFydbAkaxlKQ4W!cT56!;O0s->1%9-=~K`8&{ zY7Vgl>|{zcHa`xdKR`nB)o=(flDr>$V$TjlTN=r{3v}p13Xis&(B$up+f;rS&@Hkl)8^9G6yuX zEDqMnDuQfXLMn#~&a*GN7RBh0n9CdzTuWR(x{(f1oADi*pgFcayG5tyE+tOgoah)nj zhPg1OvX&|_uu3yYS=_*V5B=y53#0u&(2g9B|ABK#_u7-JhuBYe&(*=dDGjWesJCMN zsiBYPNO+Rb09YIJY#L`rg7ve!?j%Oc;ibOVeZr31375RoxAa`-v*E2s-g^vr9Ts$J z4)WkyAM=fi73bCNKb4i79>~Ynw(D_|!TID`xm*r%J0AO3Fj3tEr_z+FE`QV^o6l{n z|3;sUrrNR^V&|P^K6N6s0{=YMv0e8RIH}6(1b9n>^HC9M!iDeP{MWe`ICde2!*d<%bIT8O?L$BBQ*74Qu|h7}%Yu8|ZD5x! z={&@QoPqc!(XtBjV0A@C#aaFbSnMPwUlY#(^Bm{O3=!nWFI*R$zJNNEG@XJ!-v;*G z@KSrI+y#P)=yqi@`s2LT{2gX-Z@J@~^Gt99^MPLi-~slOk6qd3ymStnOuKG3;y&7L zi%`Ws&oeh=A+XuuJxi&SiV(>in@^5@j zCeE8(O1g5$d1+DGk!!}@6aQ73(SlRpa@3}Z_17f6-?=x`Uf7{8=BeTZuO=XlMyzG$ z&x7y9Ora%%TM(Re`{d;uA)M!=4!`G-fshAOyJs(%fae|ikSCu4An51#ixSr@@Yt&8 z{%~;){0aH%meJUA>vT7;A|?}j5#SbeI@C&Z8*>zG z?JDGj;L+aIaf!Mbyh-${(vHc2$LY=v9xWE|XMRDI@5u_THXE@~qsWU)I>bvK(Fv}p zwmD~7v%z(1^yB`EqTs%dYoLb=bI>6l98~*Oz;(mruRi%KxONuM4LCeT9?KH#`0rof z@>;&@mjLd;PugT#57z_nNp8UH5Y$~%m$rRU{a3{&4j3eg* zclKiqk~66D(bguNzTS=fE=_N)j-A9kM7QDBmS;fZay9T{_y_i1@=I3P#likzp7N_q z)RFIRobL6A2P>y6vI4nfFn8vzRNtio6S0aSUCC)MTWuX3d`StWk)XHw3FqH(IlJ=g ze&i^^)5kfMV3|e!VOMhp?45IHf)CyW`<#NXB!)iZ7UYy3bY%jkG^Uo%<-Xv!p)zyg z9`acDepH3aHG`w~b$97XZ6Kbh=_S!*0q58=t`(t5sP`T_xHbI;h#K>*ai8i?Cz5F+ z9eV*pd7F?&PFz3?OCx&P>tL=aKrn6?eO?Mb+k==3fOz&5xd`&Bh*xDgs1Bh%Bf-8p z)rHrs6vK~2sadd}`>nk#iF<^}1lIN&nB#unSK&zG04{Q5_h2*}dwbe!bHC#`^hQQ# zmHSPw4^StNM+Sm{%F5ZJHwj>K)&0Ta(SP_l_4DjK^LhjM8DhtW&`wh7XaDw&3=QoP*>gH7G2Q zdoCWn0ZKEO_wO>3z{#wV%YWRu&^MuY^W-VqtCSty{U@9bw!$SnO$CEMpm>`wnok2J znI61`>6rJ_V;G7{*8%melP6^RwL$fJ647ki0sDR9b)vs}fR;h#_DyT-A0XQ_?_R)O zbiep*mTk?mb1Nw#JnrYmcr?&t|>?$w( zeFBmKnLqYzG=VtQa5teZUhpErPEC$02%DE4A~WBQJyC&jn{u8YO6Iw9MZOi34o@0i zK|ZZAVJ=>jrwf!*S1$7)S6X=tJ{P$(gFv8;!ssPF)$gF+odwkp%cPqCI7peu4M}v&RYH`XDAk zSTB+|0}`GhM)9ccOFW4lC2cmO< zGpR(pFq0G54b*Fkq*_rwi>pZb<_>H;eYy_6$3b9$bAg-o7x3qK1`MGe<%G3`)VfqN zNcpv-D}ELN(b@K8hEK@LyU+f3u+0dh>g5CcDJMZJjMu&WP%{WqTE?yK{|;imYMHF~ zk%KtyoJ4_p*H9UsFxp;e5UtI(FkeQljuYpM<0>v{9NRDcu6!j%GGBF@12Sps1sy zVMD)v-tVgeg%I51rgTCM{qoBPbU#?2&mnN}&e|#k_$143j0CWvUxYf|>d`b>xAw_T zR-s?SXDWtM%L_v5e4j^&Er7om$(0LFn^8|U{Hx7!AAF*YiB>9CVekB^zu?zF2+?dj zT=2#m_pl|=DVLJ*c`o#w;oC8A-ycnv&x~{CzjVqgxF2;l-}7D{dEA}>b*lc^d%^RY zc#3T|`aE~6laHDrN8vAVhraj=cuEDh9TraopCsC!)g5l&J;43=i>eHG4O2cBROtYZ z!znHl!=J!QGA!|Fy$tel4wR%nC4eU_>o)fx67W1}nzy#E7xi!V1)=Oy;HENNwLkL% zICMGIf0#4|hd-6>>fzF0Z>4*K{Hi{j9Q?G|Z$JcF2Q9^aLwCWZ^UCdwd#lJ3Teqd} zw8A{nxUtwMC;GiV@a+nS10iesnVJ;~SikSuc%n8B)>Z0^x7qu_Muzt0?fwop8FHxU zmys&i&8bo5U;7KT&8wb%Lm^fZ=QmDrYs&cN_pUeSsP}?n%%Q%$A<Jah! zUlP#O*!+@<5d`Mpy$jDdMBr%j*PX}TS3qOu(VoBDAHk4#fNbJ&5m*>Im~t+%g96`x zf4Pk+G40}0nzvHwJ!txKfbq1@(fPye;MvjL%5gRe|#<8J>7?C7iD&Ude7B0pfP&@g-~I#&-*stZOub ztHQ%a3u%~Zw0v*$Zx`q0dYOi};2-!^;+L{pJ-9|hS=JtKLch3no!?vZ9}u3-g>iQP z(e51eoegUAqZ!k#9HRvnUaGR1uPQ)H%&2URR|6M;zeO}`pTTAO?QCM@4RFcv`$B%O z09Tk_>R2Zk6h^_tcmKyX_MSMOZ0L;mU|!{kl<^q5 z1?o}yT#JN#;9)}K<7t=!Pv}hGc-qQB%)Ha}o2^b+ogtZ@?|!>bs9; zywQiHUv^jy|NWn+o|Sw@e_l;Z>o-q(aN#Pr-I$4aTAn*AlLi8rOc z_l_|3>6TD4gyw*2%~zYv3Cw3}shtx6sNBs9o zk5wA_Fnplt0qP#E#N087!yKT#B|N1Pid^PP!!ZI<0U+{6ckODnIH-kvHT6IazUZ0q zq-@3gAR5_Cyp@c8)_^b;3mx2dMzE{Ne8ZlN)9ImlR5hTm*ZN~78}c_rmR%gjia_Cf zY;^`hJ;<|XIPc4@1yR%d_W}XflQnzo{JFc>A0^in(SPJ5D4lKU-rpJrDzE+QKX{RY znZ^b4vl?GP{l3BX*T^roywNLL^LQNl)SGXUIGcceH`lGkLpZ;v7ejl%E96$3+uOvm z3i5Vl5+w^>02#5ro?pTJY_$e^+U7%GG^KScGKq&Hmd%uQ-%>#$lJ350h&71H(3i<$ z&h+R|&X@ReeVE_-VK=?c6~sR@3%#+Z1n%^U&x`+&f#Qz(yNy0G;NVN%xca3KIF)Zb z_!0IN7_GPl3^-dsw3)b<`L`-?ZplagZoC91=2j|mjRb(<(YJvEwb%$OFM@*C!i6eQTTtg5KQr}E22}r6*DtOf1Wot2Lx=j2Kc*j$^Fu2TboZq@=PGo8 z%G~|9McON%MRD16lLY6uKfiW;6Vs4)LJ?vk><_R%>`8gx1YnR+aJ9A$ph>yV8F|oZ zG53F8^%w!g3k#xuD5lZ>Q~z3nU%VUG?2p0TtI^j^%=kL$ahubRV9rmUCAsc1!!D>{8t2vyJE*i?Np^~3M;)NWN#1q> zIWI|l`wGQDF7u}5%zMmHF@L`AT-guuBg>Dy_n`jGCE^^()C)?Xmp(;x4TC(*>t?@* zXy8u$H<@!y4SQ1KnHZ|lf$!nV{&u@n5Nv<(*(h`u#82?{opNUci77Z@(KZR$Y^P@D)gq-6$!4PYVLi6Xga9q=5UCnp{=nKREtic5(g925{I(V7l=xu&ptV zUcKB79MvrSLbLeywspSmIUfRB@Is-SsXTBhrM5J$BG)?icKVCtJYbm2wq#aU28O?V zpQa)ofOzKeR}J+W!0@zY!wtFJg4Y!Ck5734k%*@B6g+1?-dK*UdC)!C|%i_Wo~8 zU>}w_cn#-c$NP&+b5_VDliKe`9fLl)?HBLH*89Oxtc{BTIh&64BZuy&O@qU{Cw)a5 z=4t8s9CLJX!NI>m-8;Ay`R&32F3!T>V9h^DOJfGM2Btx6JN@W~@BSh@YXgo6(q7Cl zm@BS0Z&vh@1barKx*`rZAb*VQSD6g%eQw)d)~QFHjj*nbgv}~g5Y(?4efbDxhjb5L z=(7j&n33D|UvGld*N)o{-|7LuD5gQLe;!VXoRMGGRR^0uU85g~Mfe=+_R^^t277(Z z#yQd|=d0u{&BPXDUsy}Fn^cu8XkVf z_l@PQ$SdUY3SZLbZood)=ly+8pW*9cIl4I^{|FQ!YmbBAF6id&pH4Z2oNxJQo@cWO zU@q0u8rlC3bd)ZC=Q=10Ru`Ovs7@*a;lO&XTq`>eZW+t%-CYJNp*+q+v(I3#hkQ=J z8hzAW4<=~oB*7#}exPYX6SPZC0}Fp1a-yBGuVwrLgW=k>ZdW!iFnl^6DS$do1o%l^ zIEeZVF+uH|6rS^LCH~s~7Syedlz-m+2pSweOP?f?g4U_f6uGHg&|`hW5g;UjdW-$M zZP_<4l6GznoeuN#>@00>5>Su|p**2)#9x*;6YB zqH_w4)x(}3w4WyI4}~iTE;=teu%w{>E9LxyD9lqUhPf@S3WFf~1%9y`c_67l(?3MF z4U(%P0UWOtuxCkhdAT2-52hd6b!sX>X#7OmL}MX{`9$cyDjh{0*7;d^l@d5UpQE}+ zya_yuQ?-_9R&dBHIi2mF8*pin&6>`B0`@mG^52TPf#YU{afB0|>pV*K?8?c(@wOZD zC+-D;sMc&4eZXNjZgo4>XJ#5So-6yQO3s7Qz95d}qd}myTQ4ET76R(k%*|l~ji5mn z5la_r4azq*#sbNyKvu_f$jK@Rq+7;ccMcSQEa@$;Q&ZRr_0+r~yS5Db$3AJRe;dGa zxS6WHxhh~m7WD)FR!~bDd{g3_3u>}WH!KJY00wC*r2PQuZ7jrBt;o;fD0S^G^Z~{l z5=!ajTfp$OYIZbK2pHb|^?1sC23X1I)eiG_1H^HZ)9kUDf(ct|z2`q}0Wa%sWsd=HIq^y4#KRHnKUKfKoM#Ed@9q^1;z#9!vN;B~|# zRqb>39Ps3?6%2I7V&7uve)>`sFmoqUcMIpi+-e-_+yM5+R_R_lP-F#;BStS|&5>7m z*sCYg(j88c&?yVWBR}))_dDhZI8Wb83{CSE0;2ex;=m)1fVdc$ZhHZJ9;yuvmkZs& zF+Jz4-$(~IJ~wONpFRiH`SWEXcZpzQsODD~dkd^mX@ox_XVB92{4-YEcM=LZ$p7BC z57r6Mqn*-6(C4FH%=|G*!Q}JL@-@+1FUvd*I)0&o`tg} z7wU@_@tnz>GM>W+O5dFA+Eo^TXRYo$6V7eAH^*YNs*vw$8uahYDSzN^%z345cm*`v zg!48WN5H^~!sN6}DsrTvKK~?N1p`JUyG7bI(6F5BiHuSNbspA#hEv#|dVW62sfrTk zq42xjm-<0lpgZH>`Fc=`=dy6Om;j9-Nhf~xHqav9=wUGy0YX%wcF<@p-tX+^nDTvr z_d`eHucvHy{mw+#5#4~ZbL$qfNEjR~JFpUg{z@fPXW3DXAP{1pH#eAj0YcPg2vig0 zAkiXM;Csp*B!k+%ezdCv&S$IR)ci`o)U}m#Ww{Ty*@~`hbPzyr^2VOu$pyfaU99Kb zXN@|n&PDWIfauaImA27ez;yAuXFJ6akn|HO7^PSOX`OL){g*~?Nb;`Q#nD?JTiBQI z!yI)_y~gwRsc~<1mrm~lp7;3M=Lo*ydvH!<=8_6Ve{UQqDQo`(NL_p+x?Axaq>_VQ zaJtrj9KT}kd5Q+$)3JF;w&H;Eu08z|c2AHKtKnGqQVY`7af63BhCrshbUPyMJ}53c zkUl-=2{Pm?ZAZwxKusH5&fk(x`VivRN!2-4)4Pr8RyuUwH`PT6PwFXAMSUn*P3*&M=o<-^Ld#K7z71cz73fL{l>k;@dK7% zsC=W>{$C-O1TYE7Mxt+u{LYJig1*L;$4xWz zV6FAn@Tl-EKKIpjn18(jYko4x)y*v+h;txWT?n-9=^l_+Lw%!*^K*1d6u60#ab^Gg z2F{cE2NHfg#l65s-{j>qUEdSy(lwr1>3Y=oV&ljgWYzYFDvect^Ii#EH(B3fo+60)!PA1t_jwY zU+>2rza{I!C+0v%b~xB8sSeJUPYS$ILk_B91Mipi@2Cgdn~VC7kD0CF^Ah*cPF>4x zXD$f?k^EVz9Y#DgFJrIyhvB z)#P8qd9JcgCy9w0_d{>g%Xr^|<-)?Q#PejZ;$?c?&b$b=q$4A{o84fc%vX^~X%F6v zT-7%Os*s~RM)r}u1Y8D5uKdtk2N&wZtHiz)m7^ zxW}LEd>F-?n~R`N8eXoUGA`l&<>tHfue^{|2S?GI;!W&VK{kG@?*f8FFcQ_Vx zCKji^L7v*+L@w5Dd~qI#YgFyy=g@b{JC}0o5TMUjQipCy6UY-GPWMAzSd_E~F3GK+dmR zF-d{AJLbFm&6_Dhz}NJc_EQSf1vkGktzC-&kJ6IOf~88ZD1A82^}rB&z;^7FF{ebB z3ds80OoP3b2Oc;2VBgM{Zux^}vB#l{Ki1c`6&#uVToNDO3yxi;>vz`r!Pd9VC*=Y1 zr>5+(^o`zw%b|as2k#;uL?|Fu;v{l5oHoC?zsK{PhsPGXTPs-8O0Jw&_kokPhbrI6 z&>(MLy4$WuAFPQo?Rsi#VBb;QVV1arI&c1ht4J&EL7$B+-T7}X+S8w#dJLSzZ1))! zI|GqB*-xOq5gcy7;r<8Lz`^xrZKtO#SVmocqA-d%MJax%S-v$eNywg(kL&}}`_Im= znM{FI*yZ}IpZK{Db1QqSNP@n;sOf)J_&#_@RXCKifS0t5dw^Rngd2>l*~vD5&t}%K zM;+(D>+2bsIhR22I(S_7AcYn3%1n}%oxQ;8#sL~?y8!TRc@R7*iJUpH!NRAEeh|2< zH5Y`wF0ZL`7U8z6;I^fp`H|2K!AoRP8XL&V8SrzlXu_UKJRzCht2mNpFbPK2hz~ox=UuSw!(4(fyXgD+jrr$^3)E7Sm{aZ}GDU#6V zc1vOW_v?AkOzq*3vL**p&5Q@kndp1ZnH4qpAPurpmg2uQNkF%9W;YFUyeg@DAv=38 zzc{Pk;w_K{dYt-g6xhFDIKBB-?p7oiEXS;AMUi7nKmFs?;!J??b8F0LC&0W$P$?Yu z4H_=d<$D)DfM{x!#2Rxg?zy(Exm4C;UlV0X_7@sZNF+U~OU?)?iI=m2Us-~V=W^t0 z!&=bI>U9;0+zS@&0@nWwn!tS2Om8T%6$r;dG6{qK<#U@JWx1>X;WfX){C-O?O1|wl zG^hsFe7Sj)49Le@_$eW8co6-FoodqAPGF)ZT*IP&8;nGZgFloEgZ4{NZ6=0A%-PEh z-6X36Q&0V0>zs*T@~e`pf7BDq&42i@+{fp_pD$LS>8N{5x^XUE7zK0f-M>{Y-T@&% z`w}A?`o`PhzW?b#e?DaxN1(J6xW3MIcv{;4ZrR3ev)7!!qm%SPkMS397pEZG!;N!& zd1LBhL?BG>-`ga@!7jl>uzuzAt!91>T$*jRaaEqoYyUM%=JThM?370vePlRWh z;+{7I1ZatOCg8r->{a7}r6;&$^$4jo;og5vP$S@h9$1Yr7Y8=kgB3^SQNL$jz^1UT z*Bj51b_RFN45(2F6d~>>fG7Qv@C6qFW zBj4`~Dv&v|Y~Z1Zy>DJC0?)_PK{c9e@9vr&{+z}QUF>tz@=@OL7u*6Z#(Iy( zrpcg}!BoOFqXQ?R?7scN9&Py;(|Xb$NqdI6#~HA#EO3P5ac?*SuKV^9b?E#Mu3e9hoz%jA!cYufo= zM_fL5U-6^#Gp_;fpEYBjmF&Tl;;v!})n{}f5x(}F+y}(sXvqp(2A-eR}Jn38HiPw6h{j$dVLThp*DZ@SpGucB&`Slir z-VpgqUQ`4gYvt>6t>`~c^w3VGYQX$v{X7538F2aD)+#HH`2fAw8Lo!t-}n<9qI7s1 zh*peALs7Blqv*MwgU?UrH$QC`^*X>MnrG2V0y&LO7%G7bbIu>qw`yNlf@`TWe^bm0 zAnv+D|*ilifOB0g8=p`%-s;8LX&=j#t;bC)!KOE!ogyw^vfz^HCS5f)jF|a zFT+*S$TIpGydK}x(G?pYe`-M>k^U4|j=0aWgpz`p$g#76u@yid-MlF^qYv6y|6F55 z@w}S*$t6$}`*Yac@+co9fM4hs{ZsrLSnVc@Xlh(UzH9Df`4t=V&x^)1pLmG8_m`KP zMq4mvvgpyFeGmJ53WoeUai2=_*puB=7;HE{v)uiX33mD=k~eg_z#?t`qJb{ z+57}|aqP6i+&<##0Bsw-JA%CDH<#N&Cf8e+AWMZ;s0C}YiUs4VagWvQ~)=&1x z?eyt*BPrnyp{W~-Bi70g$QbjSDmEK=rXx8oIZ>x-l3H%~ihQ`p-DBZDjFIDbRqOM9 zKpuqg&CUtj$0)A%d<$*@;``)J&JWDMW7~YLkAeu^w2{GDOxxh)Z~XpGQ~~&1p>{X# zV*vS&2}O7Pkc+5(hx2UTDkvWF%X-|U2uwBcy7i>bfJf+NX5o=!;J&xj3r3fLtI#=) zU@8pkjI)B7LuW9T@#UdrqXfwKL^y`d7=h$DTE;=?c98KVp*nFs9JGQ{4nL%n0F7IM z=sS|)bURU6}~eRZvu%R z|B2?=UN|ARN$D9?1;kVnF<&ly^jT@7TfRRE&J6h|Tb~*8MZEYCy z=~H%h!tbEZo=cyW7N2*YBZMx!MgP;?{ZG#vZ^ilXn{WZ`{}b#+9yod?ewC0^Xu*L8vDAW*?$b_scVt#1>Sk@vxEV8db>08XzWa>pKF z@52X8($cGE!1+C=h4y?sxQ(hZH6Z8S^})L9#|X@u=#_q%J;RQ9r+=+Nk_%v2R+czb z6$8XC=}Dx$OF&d_VEN$wA5%RFjhLnbU(B~GNs`0l~2k)mhS>^a0u;0gm|J==k z$R*?Nj4v}l-q||CTX$vToJ~7XTH1n3mvrLi3#enCoh(zkEr>at8gcVW)!;_zOYOkQZ~$ zGn8Bc#dOu@g2?F?zpdBR(1%=5O1e2V*>}L#>Ok(!J_ow;$2j}g2wy9z`^lI!H?}NaHzj?nMt-D%pQH{)w?SJ z=Hg|}Bd_AHcX&r`%uNz3)|Q_?sm2^npT%`v9|^F^NPf7EdtS%GT?CgIJU1nskN(c& z0FHZ#P7TQ7^>9snkB&DZ5J~CSm}+e?ud2p=ec=f9W=w|am!m&DVodSx7AaU(6{qjf zz&*^tGv_22klT}8uiJJSb13hW*#-BbUuDO$dMQ%}%#V}~E&oOSE$;v9)ZJA?(ElO+mYK4S9ttXFG#s2es{+Gso0im?mea=kiHq=+O*FO zl+DGe$gVE|C{;Jm+DC$t=76%nB}Oo0UA{zWaSL?UZBomr!+}seCrIcK1{qC>DGj2c8O(Ev8`)rs^J+x>qb+z^r98Zbu9O_41@CJd zLk^qN=CI!c^0*`fUXO9j-2!geltq2ifjLEpS}Cs9aNJeSSVVOmm}*N0-`XT1H|o+t zPXqP>=*0zpzVil{R3#>5yK<3>`8LDDN&${dPu-h;k2xbBDS--uXgJ=>AXWJIB(N3T z{Ov=~0sZXJN8~AWATboz=ZASxalSt%&Fg}&e?FHi{l#54VXVMObqjl{AN)~q_LIXt zhpl@D&kcb@?3kK;Cibyd_o=#b4uNdy{bL<0svslOtusg_1TycFty?>uf&7KAR-r4X z>o;t~H8BK&`4`h-FPaq4Ev-~p!hNxsBk1$^V{a`Z+ZM?W8IV0=+v%|12G8ktr?&Zx zLAx~dPp!{EFmE}yJcRcZ0&VA%?=^QIJTj|@(%>feK&l@5v|Pn3S(GJ7fH?W-;(P~knr4H&1AEHBErvVx z{>ojPgUAJyRhE!LA4-hDJ_Yyp))P~t9_V+^J#`qbZ+DmV=61Co;3)3$dbJ6CI3Gt+ zUV3uk9;;kXdB7Y_-dSah>}>?wGB?63<_Rp@sE>-_e%n^ixJ#$V6ReGFGx~bcz$Qtw zdUQG)_cB(Qp5y_z$Bnf+K8ol4IsKe}YkWXt$UXBo#Q|&t2CYxrP5_6rmEsEFc;x5Q zX35Z$LO}Uu%T38MK)mlm;Y62@=iO@e410WjpWyN_GFip^vtCae5zpmW=`S@ymce%= z^05jx`sJ4kb!I>id~Ij1B;>K6e_prdusI2M$x&BRlJJ6~9MTbr1<%*^S|fD4o+qpcFmc6xVNHf^)N@jP`PR)nIt2awlDso=EffTj{Cu5MVw%| z@jIeF^&R@pRgMrp)_{2-qZVz{HkjY4`!1V+`dihepXfd0#FZM_*HzMhfyr*C=Cl%6 z^rs0~ZlWK>{&U~teJQXcByAijdW}4Ex7HB3DD+DxJo3KA4YngOS;U8@K=MURCD-l) zu$#Y8q9UJ&9NZ?d_pcf;hpuFr*Iy0x<5%S=rn|stekS0Q-7t9S8zmn|%?39KU;971 z7T{&mZk==mIa`_=2U?qF(C_*A-vbG|yT_LhHH z++qt}0r0`b;}i04KRmLluLP&<=6h-zZ@@ibn68S&5BI%!S99Nu;(6^oIrSROZ{z#Q zK5r#}>pB-rX-O-1H@rEz_2(LRA9pes+xH6lHH!Bw4gUj|DME1WQ%eXkmOis`Gy+^k znD5-Zw}ri4??bFe{F(S_r1t<~t$iJO2aXT#7CT? zjjgS!Z$k9Te>W#?;5q%+yQ%bmNFaLVh8$^@2lH32HLT4lz%byagOVx%=ag^lf(FJw z;8PPJa&UtUZ(^L|V>Ymq{Ta%(AA6TC-th2Ay8)K**SjeL=l|>d4Osqw^ZxLmjl0Pa zV8w5D=0`#mSTls?TA?3FUH&d}i}`afqW!Y=^zaKXIuWnB$Bi8H_Go;%cd-^U&PzHr zRiIvdzSc0G9DQ~T$MeWP6oE_3zR=6xSxvW zQc=U4L^pNl`;&N`t?}k%)qVo=?sw5jYtHBw*|R9(+auo}6g82>w@AHI|%Hz>DHFseMBUIM37{$V$Es&Nb{!`7>_d!Vxl(*MawG zrc|-K@DOknC0UbW#{2Tv0Y95P$k(3FePSq!`Zf=-dOijF4FhBQS*mTp_0gYPovUKt zGNEXoo>B>JyUtQeZ?&gN{5(4qNA2UbLQ{aU_)Qz8J*QD{oD;Y@r2swIlS-ieezt)#eBtr)&X`u zy#Kbwj9lM`*T0OKpGj9Qav%*|%nzwzUMtk(N+B6oQgN)&4c34!XKwr>4^nWZYHB?r z8wg=FCjH~8Cm=%IZKflf7a|*}2A7rs;Pf-O`o?J;2>IKoOu@Vb;fAnuymSwQ87W1PGGd}nu(0|5ipxN zlJ)I1J(ziB37#~?oX139;vwmWpq|eg>K$xHd0%JD`}duHFLDFN7vLKIdW% z_v-0;a>JmT{@2Pp-w%D5mA2#+ov5Gk3x4{Hy6AEFytI5cE3p6+l3DQWs8^#bHP zt@)U|y>Jl(##}xHr!#;Ub&DBU01go*}(pbfyp75_g_Wal8i;|JbqT z>(1D}w;7-O-3?6VC{<4;@PpGdEgS7_AM)Yrv>4}5uTgita<7dMf{$D~)W@+80tU;i z({ywo`0O*&Q8G^mW`21s(GL4a58mb+qIHLmx+(X)bVt!2!p7j7h5G7)#jknM_&g9i z#Hn%tIc0-NA~rI}lexoc(364wDf>k=Yfki~o72+|d7&TL+2|p2W(Mvl?A7}z|3Db` zV%Xa*)K^Gm`o|xZL9o+%W}D_}P#ww1p2;P_c{QwVn3oOURq4l>bmY!n_T+2VrC6a*8xss*&lrFI5wv!XVT&YdF@hKHw zKHTf|RQ$P*Tpz(zyK8rnz}$9BZ#f9>58+2?tdQ^F^dKdJpA36E&UOD;Vd+Favedo4 zdCVVivUHv8!+!McAE_GEQpn{ova+ee+?QVVeF~0v^#8p-?YFxRtV^u@CjLqw7f$4) zeqkeIfK53=oW&%+$qC1~sp&O<3u z)oyry82jAlR*L$%Wq--}gr8uR5OP`k+7@WHl-<8qk3N=cC8dL!4?+H%Z2Z8hZ2;z9 z3VV1HLH179yPmIbc`+RCrs*1RUG-tI`?1;J@$V8uK>xC0*u;j(i&j+RaMWR9o0VE1=vjG#L40 z(T|J6nhb#VYR?MaIS1fB_wts*8_c=$UH(9R0QoGs3LTzFCOD`2zLe-SL_eeXb9V7! zkor^lcFL*>IK5smTxzHR#;*E#~<OXa@E*p_6?j;VVB;%uLAzz44y9+LLlJgd$xATEeLX2ieuUNC?O#s eDJmf^Dk14CA))yHeslhBe*ORNm-|0||Nj8tAv(hV literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-08-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-08-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..2e6b8613a7d0a24441d67adbd23ce31a17849327 GIT binary patch literal 168332 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

<=qDS~%Vz9IiJt!&FBFeuScI3rLBhCEqRpD7cA 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

}0xK0Pat= z{DuAwfLmAVx3B!jIm@v)jqsh#@q2_hQRcs)1&rW2 z5MuPvUKIC9(3 zQ1iUPEc!APP8^``o;AybP z6Qw&2$L47^lUWXfn2P}eJ$oQXXfj?G)O`wa`8Q(smN$X4(37l(_uW8KkDaz=br$5G ziULEa3&_=wU9ENN2ZbZ)A8#OcRMVtSnsw?GC@QjV=RIcu89uy{E(n0sb|b?u`ccGP zv$oi6q(RDlolk`R1xRIPThv%(f&$N@VeT{zP&jp=GR&776wDMmb;j`ADu{n~$O!Y| z%R`a_70AOrs8>T=egJ9=dQB--FMv0lS<}z`BrwG!iKK>8!m<0!HM)`)fQ!Wap42!1 zTuGm+zh=h))8Dy_rYAA`W*J*@r3_~F2cD9oux6VK*)>@>O((>1Fiu5mehx)Dqu%;}Po3!D@T{Zm&{1E$ZG zbtx+CP#?T>_vF?x$c9K!eSaVY(#|*kt-sX=q4N|fYPFbi`JyMO$i{{D<~wXd*5+Vh zB+x*+gStFlI`hrKo9GXU+7Wm10Y}34l++CRaVpQIv()2U$eyHkDHi=3Liy?Esf~fi zU#0vi1ox>rg_djuPr#iakwjZU3$8y5ij}y+z_sC4sZ})%*i)o32L0*-`@wlr%R9&o z_mB9LB+mji*Q@W3e8O}3zs{mrSs$=JQattxb8prrigA?aYtR_W7dt?&0y@tZqR6Q0 zK|wPH&PCBiY)y3+9Uf#jB1)RsV*C^XQ|GR|#zw4wW z!E^OZcL?)m>|dBVkk%#t6ht{LD|tU%0ge}};{C-#pfoe`gDZO;dm`@sH@Ex`R9+9A zeZRAeej|^<(o!ej8O#6AXccwU>~!igHrTTyqp2>DGzD;R=5LYSKkS8he28_=3aDvK z3|2iP14taQl@7}QohvS)wXL$C>uH*^_6c9_O1ES*(joWk0lC0S3iQ*StIorFxq5c5 zEiFwx@~8f*xRQ%{_cLX!S)o3VRxa}LOxy%{)iISn3;}SWa3pJ{yb}a}i{GgYUVb*Rh65XM4Z(Sbyh-DdPcH^^jvVNtWofFs1{jXW(a(2S7QemG4D z8d}yA7WYknr_axu$C4V9*mnLV4#$A3*bhbP!J{BQP#Q@oQVeozw%5Khj)2U{!vo}g z(;yf!J^AYFGdK}memf^M2KaCFQAq6QgVeof*#$~D;Ey;l5?kv9a#c)5eyiyqfBv

;Bn%PU*VaM~U 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

S;{o!7y^U#HI6c%Cbt#pd78xPD|$#R+9M*rYt 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 TzrWf4H-G*AKQH!w{`3C>NBy5A literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-11-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-11-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..edf838ce9625f8241247df62420da5a5b3d0207b GIT binary patch literal 168332 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 z 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 N|NrmH{XhTx{{!7l%6$L; literal 0 HcmV?d00001 diff --git a/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-12-01.nc b/mpas_analysis/test/test_mpas_climatology/mpaso.hist.am.timeSeriesStatsMonthly.0001-12-01.nc new file mode 100644 index 0000000000000000000000000000000000000000..cbb61d26877553e9f6c6a791964d525e2eae258a GIT binary patch literal 168332 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 EUiZvmMIqD!m){C= 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å=LU|*ZgX7A%TXK%lD=09W1J5bvTRs;Xr& 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�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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From fcfc57ecd50abcb810cbedf12fea1d961da703d4 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 16 Aug 2017 12:20:24 +0200 Subject: [PATCH 36/47] make build_observational_dataset public This function is overridden in derived classes so it makes more conceptual sense for it not to be private --- mpas_analysis/ocean/antarctic_climatology_map.py | 4 +++- mpas_analysis/ocean/climatology_map.py | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mpas_analysis/ocean/antarctic_climatology_map.py b/mpas_analysis/ocean/antarctic_climatology_map.py index 8c1342224..44a887a4a 100644 --- a/mpas_analysis/ocean/antarctic_climatology_map.py +++ b/mpas_analysis/ocean/antarctic_climatology_map.py @@ -246,7 +246,7 @@ def setup_and_check(self): # {{{ # }}} - def _build_observational_dataset(self): # {{{ + def build_observational_dataset(self): # {{{ ''' read in the data sets for observations, and possibly rename some variables and dimensions @@ -268,4 +268,6 @@ def _build_observational_dataset(self): # {{{ # }}} + + # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 54053f482..37e2dc713 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -206,7 +206,7 @@ def run(self): # {{{ # we don't have any way to know the observation lat/lon and grid # without this, so we have to read the observational data set even # if it's already been remapped. - dsObs, obsDescriptor = self._build_observational_dataset() + dsObs, obsDescriptor = self.build_observational_dataset() # set the landMask to None so we know we need to compute it later # (if this is an antarctic projection) @@ -526,7 +526,7 @@ def setup_and_check(self): # {{{ # }}} - def _build_observational_dataset(self): # {{{ + def build_observational_dataset(self): # {{{ ''' read in the data sets for observations, and possibly rename some variables and dimensions @@ -639,7 +639,7 @@ def setup_and_check(self): # {{{ # }}} - def _build_observational_dataset(self): # {{{ + def build_observational_dataset(self): # {{{ ''' read in the data sets for observations, and possibly rename some variables and dimensions @@ -750,7 +750,7 @@ def setup_and_check(self): # {{{ # }}} - def _build_observational_dataset(self): # {{{ + def build_observational_dataset(self): # {{{ ''' read in the data sets for observations, and possibly rename some variables and dimensions From 39aad9eb57e176294adccc2218759292c40e95ac Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 16 Aug 2017 21:44:35 +0200 Subject: [PATCH 37/47] Add analysis tasks for plotting SOSE T and S They can be plotted over various seasons and at various depths. A few small additions and fixes to MpasClimatology and ClimatologyMapOcean are required to accommodate these new tasks. Notable is the addition of a function for post-processing the regridded climatology (needed so the fields can be indexed at the requested depth). --- config.default | 73 +++ mpas_analysis/ocean/__init__.py | 3 +- .../ocean/antarctic_climatology_map.py | 547 +++++++++++++++++- mpas_analysis/ocean/climatology_map.py | 44 +- .../climatology/mpas_climatology_task.py | 4 +- run_analysis.py | 2 + 6 files changed, 654 insertions(+), 19 deletions(-) diff --git a/config.default b/config.default index e8c8b35c2..5923fecde 100644 --- a/config.default +++ b/config.default @@ -208,6 +208,7 @@ mldSubdirectory = MLD ninoSubdirectory = Nino mhtSubdirectory = MHT meltSubdirectory = Melt +soseSubdirectory = SOSE # first and last year of SST observational climatology (preferably one of the # two ranges given below) @@ -604,6 +605,78 @@ normArgsDifference = {'linthresh': 1., 'linscale': 0.5, 'vmin': -100., colorbarTicksDifference = [-100., -50., -20., -10., -5., -2., -1., 0., 1., 2., 5., 10., 20., 50., 100.] +[climatologyMapSoseTemperature] +## options related to plotting climatology maps of Antarctic +## potential temperature at various levels, including the sea floor against +## reference model results and SOSE reanalysis data + +# comparison grid(s) +# only the Antarctic really makes sense but lat-lon could technically work. +comparisonGrids = ['antarctic'] + +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['ANN'] + +# list of depths in meters (positive up) at which to analyze, 'bot' for the +# bottom of the ocean +# depths = [0, -200, -400, -600, -800, 'bot'] +depths = ['bot'] + +# colormap for model/observations +colormapNameResult = RdBu_r +# the type of norm used in the colormap +normTypeResult = linear +# A dictionary with keywords for the SemiLogNorm +normArgsResult = {'vmin': -2., 'vmax': 2.} +# place the ticks automatically by default +# colorbarTicksResult = numpy.linspace(-2., 2., 9) + +# colormap for differences +colormapNameDifference = RdBu_r +# the type of norm used in the colormap +normTypeDifference = linear +# A dictionary with keywords for the SemiLogNorm +normArgsDifference = {'vmin': -2., 'vmax': 2.} +# place the ticks automatically by default +# colorbarTicksDifference = numpy.linspace(-2., 2., 9) + +[climatologyMapSoseSalinity] +## options related to plotting climatology maps of Antarctic +## salinity at various levels, including the sea floor against +## reference model results and SOSE reanalysis data + +# comparison grid(s) +# only the Antarctic really makes sense but lat-lon could technically work. +comparisonGrids = ['antarctic'] + +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['ANN'] + +# list of depths in meters (positive up) at which to analyze, 'bot' for the +# bottom of the ocean +# depths = [0, -200, -400, -600, -800, 'bot'] +depths = ['bot'] + +# colormap for model/observations +colormapNameResult = BuOr +# the type of norm used in the colormap +normTypeResult = linear +# A dictionary with keywords for the SemiLogNorm +normArgsResult = {'vmin': 34.2, 'vmax': 35.2} +# place the ticks automatically by default +# colorbarTicksResult = numpy.linspace(34.2, 35.2, 9) + +# colormap for differences +colormapNameDifference = RdBu_r +# the type of norm used in the colormap +normTypeDifference = linear +# A dictionary with keywords for the SemiLogNorm +normArgsDifference = {'vmin': -0.5, 'vmax': 0.5} +# place the ticks automatically by default +# colorbarTicksDifference = numpy.linspace(-0.5, 0.5, 9) + [climatologyMapSeaIceConcNH] ## options related to plotting horizontally remapped climatologies of ## sea ice concentration against reference model results and observations diff --git a/mpas_analysis/ocean/__init__.py b/mpas_analysis/ocean/__init__.py index a7d505623..3e3b4b911 100644 --- a/mpas_analysis/ocean/__init__.py +++ b/mpas_analysis/ocean/__init__.py @@ -1,6 +1,7 @@ from climatology_map import ClimatologyMapSST, ClimatologyMapMLD, \ ClimatologyMapSSS -from antarctic_climatology_map import ClimatologyMapMeltAntarctic +from antarctic_climatology_map import ClimatologyMapMeltAntarctic, \ + ClimatologyMapSoseTemperature, ClimatologyMapSoseSalinity from time_series_ohc import TimeSeriesOHC from time_series_sst import TimeSeriesSST from index_nino34 import IndexNino34 diff --git a/mpas_analysis/ocean/antarctic_climatology_map.py b/mpas_analysis/ocean/antarctic_climatology_map.py index 44a887a4a..3874495b8 100644 --- a/mpas_analysis/ocean/antarctic_climatology_map.py +++ b/mpas_analysis/ocean/antarctic_climatology_map.py @@ -8,6 +8,7 @@ ''' import xarray as xr +import numpy from .climatology_map import ClimatologyMapOcean @@ -62,11 +63,11 @@ def setup_and_check(self): # {{{ def run(self): # {{{ """ - Compute climatologie sof melt rates from ACME/MPAS output + Compute climatologies of melt rates from ACME/MPAS output This function has been overridden to load ``landIceMask`` from a restart file for later use in masking the melt rate. It then simply - calls the run function from + calls the run function from MpasClimatology Authors ------- @@ -80,7 +81,7 @@ def run(self): # {{{ dsLandIceMask = dsLandIceMask.isel(Time=0) self.landIceMask = dsLandIceMask.landIceMask > 0. - # then, call run from the base class (ClimatologyMapOcean), which will + # then, call run from the base class (MpasClimatology), which will # perform the main function of the task super(MpasClimatologyMeltAntarctic, self).run() @@ -88,12 +89,10 @@ def run(self): # {{{ def customize_climatology(self, climatology): # {{{ """ - A function that can be overridden by child classes for purposes of - making custom changes to the climatology data set after slicing and - masking and before remapping. By default, a field 'validMask' is added - to the climatology. After remapping, this field indicates which cells - on the remapped grid came from valid cells on the MPAS grid, useful for - plotting a land mask (for example). + First, calls the parent version of ``customize_climatology`` to set + up the ``validMask``. Then, masks the melt rate with the + ``landIceMask`` and scales the field to be in m/yr instead of + kg/m^2/s Parameters ---------- @@ -137,7 +136,8 @@ class ClimatologyMapMeltAntarctic(ClimatologyMapOcean): # {{{ Xylar Asay-Davis """ - def create_mpas_climatology(self, comparisonGridNames, seasons): # {{{ + def create_mpas_climatology_task(self, comparisonGridNames, seasons): + # {{{ """ Create an MpasClimatologyMeltAntarctic task to use as a prerequisite of this task @@ -222,7 +222,7 @@ def setup_and_check(self): # {{{ super(ClimatologyMapMeltAntarctic, self).setup_and_check() landIceFluxMode = self.namelist.get('config_land_ice_flux_mode') - if landIceFluxMode not in ['standalone', 'coupled']: + if landIceFluxMode not in ['standalone', 'coupled']: raise ValueError('*** climatologyMapMeltAntarctic requires ' 'config_land_ice_flux_mode \n' ' to be standalone or coupled. Otherwise, no ' @@ -243,7 +243,7 @@ def setup_and_check(self): # {{{ self.observationTitleLabel = 'Observations (Rignot et al, 2013)' self.outFileLabel = 'meltRignot' self.unitsLabel = r'm a$^{-1}$' - + self.diffTitleLabel = 'Model - Observations' # }}} def build_observational_dataset(self): # {{{ @@ -269,5 +269,528 @@ def build_observational_dataset(self): # {{{ # }}} +class MpasClimatologyDepthSlices(MpasClimatology): # {{{ + """ + A task for creating and remapping climatologies of MPAS fields sliced + at a given set of depths + + Attributes + ---------- + depths : list of {float, 'bot'} + A list of depths at which the climatology will be sliced in the + vertical. + + maxLevelCell : xarray.DataArray + The vertical index of the bottom cell in MPAS results + + verticalIndices : xarray.DataArray + The vertical indices of slice to be plotted + + Authors + ------- + Xylar Asay-Davis + """ + + def run(self): # {{{ + """ + Compute climatologies of T or S from ACME/MPAS output + + This function has been overridden to load ``maxLevelCell`` from a + restart file for later use in indexing bottom T and S. + ``verticalIndex`` is also computed for later indexing of + the model level. It then simply calls the run function from + ClimatologyMapOcean. + + Authors + ------- + Xylar Asay-Davis + """ + + # first, load the land-ice mask from the restart file + ds = xr.open_dataset(self.restartFileName) + ds = mpas_xarray.subset_variables(ds, ['maxLevelCell', + 'bottomDepth', + 'layerThickness']) + + self.maxLevelCell = ds.maxLevelCell - 1 + + verticalIndices = numpy.zeros((len(self.depths), ds.dims['nCells']), + int) + + for depthIndex in range(len(self.depths)): + depth = self.depths[depthIndex] + if depth == 'bot': + # switch to zero-based index + verticalIndices[depthIndex, :] = ds.maxLevelCell.values - 1 + else: + nCells = ds.dims['nCells'] + nVertLevels = ds.dims['nVertLevels'] + zInterface = numpy.zeros((nCells, nVertLevels+1)) + zInterface[:, nVertLevels] = -ds.bottomDepth.values + for zIndex in range(nVertLevels-1, -1, -1): + zInterface[:, zIndex] = zInterface[:, zIndex+1] + \ + ds.layerThickness.values[0, :, zIndex] + zMid = 0.5*(zInterface[:, 0:-1] + zInterface[:, 1:]) + + verticalIndex = numpy.argmin(numpy.abs(zMid-depth), axis=1) + verticalIndices[depthIndex, :] = verticalIndex + + self.verticalIndices = \ + xr.DataArray.from_dict({'dims': ('depthSlice', 'nCells'), + 'data': verticalIndices}) + + # then, call run from the base class (MpasClimatology), which will + # perform the main function of the task + super(MpasClimatologyDepthSlices, self).run() + + def customize_climatology(self, climatology): # {{{ + """ + Uses ``verticalIndex`` to slice the 3D climatology field at each + requested depth. The resulting field has the depth appended to + the variable name. + + Parameters + ---------- + climatology : ``xarray.Dataset`` object + the climatology data set + + Returns + ------- + climatology : ``xarray.Dataset`` object + the modified climatology data set + + Authors + ------- + Xylar Asay-Davis + """ + + # perform the custimization in MpasClimatology (adding a 'validMask') + climatology = \ + super(MpasClimatologyDepthSlices, self).customize_climatology( + climatology) + + climatology.coords['verticalIndex'] = \ + ('nVertLevels', + numpy.arange(climatology.dims['nVertLevels'])) + + depthNames = [str(depth) for depth in self.depths] + + climatology.coords['depthSlice'] = ('depthSlice', depthNames) + + for variableName in self.variableList: + if 'nVertLevels' not in climatology[variableName].dims: + continue + + # mask only the values with the right vertical index + da = climatology[variableName].where( + climatology.verticalIndex == self.verticalIndices) + + # Each vertical layer has at most one non-NaN value so the "sum" + # over the vertical is used to collapse the array in the vertical + # dimension + climatology[variableName] = \ + da.sum(dim='nVertLevels').where( + self.verticalIndices <= self.maxLevelCell) + + climatology = climatology.drop('verticalIndex') + + return climatology # }}} + + # }}} + + +class ClimatologyMapSose(ClimatologyMapOcean): # {{{ + """ + An analysis task for comparison of antarctic temperature, salinity, etc. + against SOSE fields + + Attributes + ---------- + + Authors + ------- + Xylar Asay-Davis + """ + + @classmethod + def create_tasks(cls, config): # {{{ + """ + For each comparison grid, construct one task for computing the + climatologies and one plotting task for each season. The climatology + task is a prerequisite of the plotting tasks, but the plotting tasks + can run in parallel with one another. + + Parameters + ---------- + config : MpasAnalysisConfigParser object + Contains configuration options + + Authors + ------- + Xylar Asay-Davis + """ + + # get the name of the class (something like ClimatologyMapSST) + className = cls.__name__ + # convert the first letter to lowercase to get the corresponding + # seciton name in the config file + sectionName = className[0].lower() + className[1:] + + # read in what seasons we want to plot + seasons = config.getExpression(sectionName, 'seasons') + + if len(seasons) == 0: + raise ValueError('config section {} does not contain valid list ' + 'of seasons'.format(sectionName)) + + comparisonGridNames = config.getExpression(sectionName, + 'comparisonGrids') + + if len(comparisonGridNames) == 0: + raise ValueError('config section {} does not contain valid list ' + 'of comparison grids'.format(sectionName)) + + # read in what seasons we want to plot + depths = config.getExpression(sectionName, 'depths') + + if len(depths) == 0: + raise ValueError('config section {} does not contain valid list ' + 'of depths'.format(sectionName)) + + first = True + tasks = [] + for comparisonGridName in comparisonGridNames: + for season in seasons: + for depth in depths: + # one plotting task for each season, depth and comparison + # grid + climatologyMapTask = cls( + config=config, + depth=depth, + season=season, + comparisonGridName=comparisonGridName) + + if first: + climatologyTask = \ + climatologyMapTask.create_mpas_climatology_task( + comparisonGridNames=comparisonGridNames, + seasons=seasons, + depths=depths) + tasks.append(climatologyTask) + + climatologyMapTask.add_prerequisite_tasks( + [climatologyTask.taskName]) + + climatologyMapTask.climatologyTask = climatologyTask + + tasks.append(climatologyMapTask) + + first = False + + return tasks # }}} + + def __init__(self, config, depth, season, comparisonGridName): + # {{{ + """ + Construct the analysis task. + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + depth : {float, 'bot'} + Depth at which to perform the comparison, 'bot' for the ocean floor + + season : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'}, optional + The comparison grid on which to plot the analysis, required if + mode == 'plot' + + Authors + ------- + Xylar Asay-Davis + """ + + self.season = season + self.comparisonGridName = comparisonGridName + self.depth = depth + + upperField = self.fieldName[0].upper() + self.fieldName[1:] + if depth == 'bot': + self.fieldNameInTitle = 'Sea Floor {}'.format(upperField) + else: + self.fieldNameInTitle = '{} z={} m'.format(upperField, depth) + + taskName, tags = self.get_task_name_and_tags() + tags.extend(['SOSE', self.fieldName]) + + # append the depth on to the task name + taskName = '{}_depth_{}'.format(taskName, depth) + + # call the constructor from the base class (ClimatologyMapOcean) + super(ClimatologyMapSose, self).__init__(config=config, + taskName=taskName, + componentName='ocean', + tags=tags) + # }}} + + def create_mpas_climatology_task(self, comparisonGridNames, seasons, + depths): + # {{{ + """ + Create an MpasClimatologyMeltAntarctic task to use as a prerequisite + of this task + + comparisonGridNames : list of {'latlon', 'antarctic'}, optional + The name(s) of the comparison grid to use for remapping. + + seasons : list of str + A list of seasons (keys in ``shared.constants.monthDictionary``) + to be computed. + + depths : list of {float, 'bot'} + A list of depths where the field is to be sliced + + Authors + ------- + Xylar Asay-Davis + """ + + upperField = self.fieldName[0].upper() + self.fieldName[1:] + climatologyTask = MpasClimatologyDepthSlices( + config=self.config, + variableList=[self.mpasFieldName], + taskSuffix='{}DepthSlices'.format(upperField), + componentName=self.componentName, + comparisonGridNames=comparisonGridNames, + seasons=seasons, + tags=['climatology'], + iselValues=self.iselValues) + + climatologyTask.depths = depths + + return climatologyTask # }}} + + def post_process_remapped_mpas_climatology(self, remappedClimatology): + # {{{ + ''' + Extract the appropriate slice of the remapped climatology for this + depth. + + Parameters + ---------- + remappedClimatology : ``xarray.Dataset`` object + The remapped climatology to be processed + + Returns + ------- + remappedClimatology : ``xarray.Dataset`` object + The remapped climatology after processing + + Authors + ------- + XylarAsay-Davis + ''' + + remappedClimatology = remappedClimatology.sel( + depthSlice=str(self.depth), drop=True) + + return remappedClimatology + + # }}} + + def build_observational_dataset(self): # {{{ + ''' + read in the data sets for observations, and possibly rename some + variables and dimensions + + Authors + ------- + Xylar Asay-Davis + ''' + + dsObs = xr.open_dataset(self.obsFileName) + dsObs = mpas_xarray.subset_variables(dsObs, [self.obsFieldName, + 'month', 'year']) + if self.depth != 'bot': + dsObs = dsObs.sel(method='nearest', depth=self.depth) + + # create a descriptor of the observation grid using the x/y + # coordinates + projection = get_antarctic_stereographic_projection() + obsDescriptor = ProjectionGridDescriptor.read( + projection, fileName=self.obsFileName, xVarName='x', yVarName='y') + + return dsObs, obsDescriptor # }}} + + # }}} + + +class ClimatologyMapSoseTemperature(ClimatologyMapSose): # {{{ + """ + An analysis task for comparison of antarctic temperature against SOSE + fields + + Authors + ------- + Xylar Asay-Davis + """ + + def __init__(self, config, depth, season, comparisonGridName): + # {{{ + """ + Construct the analysis task. + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + depth : {float, 'bot'} + Depth at which to perform the comparison, 'bot' for the ocean floor + + season : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'}, optional + The comparison grid on which to plot the analysis, required if + mode == 'plot' + + Authors + ------- + Xylar Asay-Davis + """ + self.fieldName = 'temperature' + self.mpasFieldName = 'timeMonthly_avg_activeTracers_temperature' + self.iselValues = None + + # call the constructor from the base class (ClimatologyMapSose) + super(ClimatologyMapSoseTemperature, self).__init__( + config=config, + depth=depth, + season=season, + comparisonGridName=comparisonGridName) + # }}} + + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + """ + # first, call setup_and_check from the base class + # (ClimatologyMapSose), which will perform some common setup + super(ClimatologyMapSoseTemperature, self).setup_and_check() + + observationsDirectory = build_config_full_path( + self.config, 'oceanObservations', 'soseSubdirectory') + + self.obsFileName = '{}/SOSE_2005-2010_monthly_pot_temp_6000.0x' \ + '6000.0km_10.0km_Antarctic_stereo.nc'.format( + observationsDirectory) + if self.depth == 'bot': + self.obsFieldName = 'botTheta' + self.outFileLabel = 'botTemp_SOSE' + else: + self.obsFieldName = 'theta' + self.outFileLabel = 'temp_depth_{}_SOSE'.format(self.depth) + self.unitsLabel = '$^\circ$C' + + # Set appropriate figure labels for melt rates + self.observationTitleLabel = 'State Estimate (SOSE)' + self.diffTitleLabel = 'Model - State Estimate' + + # }}} + + # }}} + + +class ClimatologyMapSoseSalinity(ClimatologyMapSose): # {{{ + """ + An analysis task for comparison of antarctic salinity against SOSE + fields + + Authors + ------- + Xylar Asay-Davis + """ + + def __init__(self, config, depth, season, comparisonGridName): + # {{{ + """ + Construct the analysis task. + + Parameters + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + depth : {float, 'bot'} + Depth at which to perform the comparison, 'bot' for the ocean floor + + season : str + A season (keys in ``shared.constants.monthDictionary``) to be + plotted + + comparisonGridName : {'latlon', 'antarctic'}, optional + The comparison grid on which to plot the analysis, required if + mode == 'plot' + + Authors + ------- + Xylar Asay-Davis + """ + self.fieldName = 'salinity' + self.mpasFieldName = 'timeMonthly_avg_activeTracers_salinity' + self.iselValues = None + + # call the constructor from the base class (ClimatologyMapSose) + super(ClimatologyMapSoseSalinity, self).__init__( + config=config, + depth=depth, + season=season, + comparisonGridName=comparisonGridName) + # }}} + + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Authors + ------- + Xylar Asay-Davis + """ + # first, call setup_and_check from the base class + # (ClimatologyMapSose), which will perform some common setup + super(ClimatologyMapSoseSalinity, self).setup_and_check() + + observationsDirectory = build_config_full_path( + self.config, 'oceanObservations', 'soseSubdirectory') + + self.obsFileName = '{}/SOSE_2005-2010_monthly_salinity_6000.0x' \ + '6000.0km_10.0km_Antarctic_stereo.nc'.format( + observationsDirectory) + if self.depth == 'bot': + self.obsFieldName = 'botSalinity' + self.outFileLabel = 'botSalin_SOSE' + else: + self.obsFieldName = 'salinity' + self.outFileLabel = 'salin_depth_{}_SOSE'.format(self.depth) + self.unitsLabel = 'PSU' + + # Set appropriate figure labels for melt rates + self.observationTitleLabel = 'State Estimate (SOSE)' + self.diffTitleLabel = 'Model - State Estimate' + + # }}} + + # }}} # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/ocean/climatology_map.py b/mpas_analysis/ocean/climatology_map.py index 37e2dc713..ff72a6c8c 100644 --- a/mpas_analysis/ocean/climatology_map.py +++ b/mpas_analysis/ocean/climatology_map.py @@ -134,7 +134,7 @@ def create_tasks(cls, config): # {{{ if first: climatologyTask = \ - climatologyMapTask.create_mpas_climatology( + climatologyMapTask.create_mpas_climatology_task( comparisonGridNames=comparisonGridNames, seasons=seasons) tasks.append(climatologyTask) @@ -150,7 +150,8 @@ def create_tasks(cls, config): # {{{ return tasks # }}} - def create_mpas_climatology(self, comparisonGridNames, seasons): # {{{ + def create_mpas_climatology_task(self, comparisonGridNames, seasons): + # {{{ """ Create an MpasClimatology task to use as a prerequisite of this task @@ -225,6 +226,10 @@ def run(self): # {{{ remappedModelClimatology = xr.open_dataset(remappedFileName) + remappedModelClimatology = \ + self.post_process_remapped_mpas_climatology( + remappedModelClimatology) + # now the observations (climatologyFileName, remappedFileName) = \ get_observation_climatology_file_names( @@ -275,6 +280,33 @@ def run(self): # {{{ # }}} + def post_process_remapped_mpas_climatology(self, remappedClimatology): + # {{{ + ''' + A function for post-processing the remapped MPAS climatology before + plotting. For example, this might include taking slices of a 3D field + that cannot simply be hyperslabbed. + + By default, simply returns remappedClimatology unchanged. + + Parameters + ---------- + remappedClimatology : ``xarray.Dataset`` object + The remapped climatology to be processed + + Returns + ------- + remappedClimatology : ``xarray.Dataset`` object + The remapped climatology after processing + + Authors + ------- + XylarAsay-Davis + ''' + return remappedClimatology + + # }}} + def get_task_name_and_tags(self): className = type(self).__name__ # convert the first letter to lowercase to get the corresponding @@ -356,7 +388,7 @@ def _plot_latlon(self, remappedModelClimatology, remappedObsClimatology): title=title, modelTitle='{}'.format(mainRunName), obsTitle=self.observationTitleLabel, - diffTitle='Model - Observations', + diffTitle=self.diffTitleLabel, cbarlabel=self.unitsLabel) # }}} @@ -424,7 +456,7 @@ def _plot_antarctic(self, remappedModelClimatology, title=title, modelTitle='{}'.format(mainRunName), obsTitle=self.observationTitleLabel, - diffTitle='Model - Observations', + diffTitle=self.diffTitleLabel, cbarlabel=self.unitsLabel) # }}} @@ -524,6 +556,8 @@ def setup_and_check(self): # {{{ self.outFileLabel = 'sstHADOI' self.unitsLabel = r'$^o$C' + self.diffTitleLabel = 'Model - Observations' + # }}} def build_observational_dataset(self): # {{{ @@ -636,6 +670,7 @@ def setup_and_check(self): # {{{ self.observationTitleLabel = 'Observations (Aquarius, 2011-2014)' self.outFileLabel = 'sssAquarius' self.unitsLabel = 'PSU' + self.diffTitleLabel = 'Model - Observations' # }}} @@ -747,6 +782,7 @@ def setup_and_check(self): # {{{ 'Observations (HolteTalley density threshold MLD)' self.outFileLabel = 'mldHolteTalleyARGO' self.unitsLabel = 'm' + self.diffTitleLabel = 'Model - Observations' # }}} diff --git a/mpas_analysis/shared/climatology/mpas_climatology_task.py b/mpas_analysis/shared/climatology/mpas_climatology_task.py index 789069aed..799f718ac 100644 --- a/mpas_analysis/shared/climatology/mpas_climatology_task.py +++ b/mpas_analysis/shared/climatology/mpas_climatology_task.py @@ -567,14 +567,14 @@ def _mask_climatologies(self, season, dsMask, comparisonDescriptor): # {{{ # slice climatology = climatology.isel(**iselValues) - climatology = self.customize_climatology(climatology) - # mask the data set for variableName in self.variableList: climatology[variableName] = \ climatology[variableName].where( dsMask[variableName] != self.fillValue) + climatology = self.customize_climatology(climatology) + write_netcdf(climatology, maskedClimatologyFileName) # }}} diff --git a/run_analysis.py b/run_analysis.py index da7c6a145..224c6da50 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -58,6 +58,8 @@ def build_analysis_list(config, isSubtask): # {{{ analyses.extend(ocean.ClimatologyMapMLD.create_tasks(config)) analyses.extend(ocean.ClimatologyMapSSS.create_tasks(config)) analyses.extend(ocean.ClimatologyMapMeltAntarctic.create_tasks(config)) + analyses.extend(ocean.ClimatologyMapSoseTemperature.create_tasks(config)) + analyses.extend(ocean.ClimatologyMapSoseSalinity.create_tasks(config)) # Sea Ice Analyses analyses.extend(sea_ice.TimeSeriesSeaIce.create_tasks(config)) From a4a440cfd227f7fbbb0650063d22c934fb11decf Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 21 Jun 2017 17:13:24 +0200 Subject: [PATCH 38/47] Add scripts for preprocessing observations The directory currently has scripts for preprocessing Rignot melt rates and SOSE T and S monthly climatologies. --- preprocess_observations/README.md | 8 + preprocess_observations/mds.py | 605 ++++++++++++++++++++++ preprocess_observations/remap_SOSE_T_S.py | 211 ++++++++ preprocess_observations/remap_rignot.py | 71 +++ 4 files changed, 895 insertions(+) create mode 100644 preprocess_observations/README.md create mode 100644 preprocess_observations/mds.py create mode 100644 preprocess_observations/remap_SOSE_T_S.py create mode 100644 preprocess_observations/remap_rignot.py diff --git a/preprocess_observations/README.md b/preprocess_observations/README.md new file mode 100644 index 000000000..ba0dc5c90 --- /dev/null +++ b/preprocess_observations/README.md @@ -0,0 +1,8 @@ +# Observations Preprocessing Scripts + +This directory contains scripts for preprocessing observations. To run the +scripts, copy them to the base directory (`..`), change the paths to the +original obsrevational data sets (see comments in each script for sources +of the relevant data) and run the script to perform preprocessing. The +scripts typically compute climatologies and/or perform remapping to a +comparison grid. \ No newline at end of file diff --git a/preprocess_observations/mds.py b/preprocess_observations/mds.py new file mode 100644 index 000000000..7e81bfa13 --- /dev/null +++ b/preprocess_observations/mds.py @@ -0,0 +1,605 @@ +import sys +import re +import glob +import numpy as np +from operator import mul + +debug = False + +################################################################################ +# metafile parsing + +# for python2.5 +try: next +except NameError: + def next ( obj ): return obj.next() + +_currentline = '' + +class ParseError(ValueError): + def __str__(self): + metafile = self.args[0] + lines = self.args[1:] + try: + name = metafile.name + except AttributeError: + name = metafile + + return '\n'.join(('in metafile: '+name,) + + lines + + ('in: ' + _currentline,)) + + +# these deal with comments in the metafile + +_comment_pattern = re.compile( + r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', + re.DOTALL | re.MULTILINE + ) + +def _comment_replacer(match): + s = match.group(0) + if s.startswith('/'): + return "" + else: + return s + +def strip_comments(text): + """ strips C and C++ style comments from text """ + return re.sub(_comment_pattern, _comment_replacer, text) + + +_string_pattern = re.compile(r"'(.*)'$") + +def parse1(s): + """ convert one item to appropriate type """ + m = _string_pattern.match(s) + if m: + s = m.group(1) + # unquote quotes + s = re.sub(r"''","'",s) + return s + + if '.' in s or 'e' in s.lower(): + return float(s) + else: + try: + return int(s) + except ValueError: + raise ParseError("Cannot parse value: " + s) + + +_closing = {'[':']', + '{':'}', + } + +def parsemeta(metafile): + """ parses metafile (file object or filename) into a dictionary of lists + of floats, ints or strings + """ + global _currentline + + try: + lines = open(metafile) + except TypeError: + lines = iter(metafile) + + d = {} + for line in lines: + line = strip_comments(line) + # skip empty lines + if re.match(r'\s*$', line): + continue + + m = re.match(r' *(\w*) *= *(.*?) *$', line) + if m: + key,line = m.groups() + else: + raise ParseError(metafile,line) + + # look for the opening delimiter ('[' or '{') + opening = line[0] + try: + closing = _closing[opening] + except KeyError: + raise ParseError(metafile,line,'Values must be enclosed in [] or {}.') + + # read more lines until a matching closing delimiter is found + while closing not in line: + try: + nextline = next(lines) + except StopIteration: + raise ParseError(metafile,line,'No closing ' + closing + ' found.') + + line += ' ' + strip_comments(nextline).rstrip() + + if line[-2:] != closing + ';': + raise ParseError(metafile,line, + 'Values must be enclosed in "[ ];" or "{ };".') + + # remove delimiters + line = line[1:-2].strip(" ,") + _currentline = line + + if opening == '[': + # [] can contain any type of values, separated by commas + val = [ parse1(s) for s in re.split(r',? *',line) ] + else: + # {} can only contain single quote-delimited strings separated by space + val = [ s.rstrip() for s in re.split(r"' *'", line.strip("'")) ] + + d[key] = val + + return d + +################################################################################ + +def message(*args): + sys.stdout.write(' '.join([str(s) for s in args]) + '\n') + + +def warning(*args): + sys.stderr.write(' '.join([str(s) for s in args]) + '\n') + + +def aslist(i): + """ if iterable, turn into list, otherwise put into list """ + try: + res = list(i) + except TypeError: + res = [i] + return res + + +def fromfileshape(filename,dtype,shape=None,**kwargs): + return np.fromfile(filename, dtype, **kwargs).reshape(shape) + + +def scanforfiles(fname): + """ return list of iteration numbers for which metafiles with base fname exist """ + import glob + allfiles = glob.glob(fname + '.' + 10*'[0-9]' + '.001.001.meta') + if len(allfiles) == 0: + allfiles = glob.glob(fname + '.' + 10*'[0-9]' + '.meta') + off = -5 + else: + off = -13 + + itrs = [ int(s[off-10:off]) for s in allfiles ] + itrs.sort() + return itrs + + +def readmeta(f): + """ read meta file and extract tile/timestep-specific parameters """ + meta = parsemeta(f) + dimList = meta.pop('dimList') + # pythonize + gdims = tuple(dimList[-3::-3]) + i0s = [ i-1 for i in dimList[-2::-3] ] + ies = dimList[-1::-3] + # remove file-specific parameters + timeInterval = meta.pop('timeInterval', None) + timeStepNumber = meta.pop('timeStepNumber', None) + map2gl = meta.pop('map2glob', None) + # put back only global dimensions + meta['dimList'] = list(gdims[::-1]) + return gdims,i0s,ies,timeStepNumber,timeInterval,map2gl,meta + + +_typeprefixes = {'ieee-be':'>', + 'b' :'>', + '>' :'>', + 'ieee-le':'<', + 'l' :'<', + '<' :'<', + } +_typesuffixes = {'float32':'f4', + 'float64':'f8', + } + +def rdmds(fnamearg,itrs=-1,machineformat='b',rec=None,fill_value=0, + returnmeta=False,astype=float,region=None,lev=(), + usememmap=False,mm=False,squeeze=True,verbose=False): + """ a = rdmds(fname,...) + a = rdmds(fname,itrs,...) + a,its,meta = rdmds(fname,...,returnmeta=True) + + Read meta-data files as written by MITgcm. + + Without itrs, will try to read + + fname.meta or fname.001.001.meta, ... + + If itrs is a list of integers of an integer, it will read the corresponding + + fname.000000iter.meta, ... + + If itrs is NaN, it will read all iterations for which files are found. + If itrs is Inf, it will read the highest iteration found. + + fname may contain shell wildcards, which is useful for tile files organized + into directories, e.g., + + T = rdmds('prefix*/T', 2880) + + will read prefix0000/T.0000002880.*, prefix0001/T.0000002880.*, ... + (and any others that match the wildcard, so be careful how you name things!) + + Returns: + + a :: numpy array of the data read + its :: list of iteration numbers read (only if itrs=NaN or Inf) + meta :: dictionary of metadata (only if returnmeta=True) + + Keyword arguments: + + machineformat :: endianness ('b' or 'l', default 'b') + rec :: list of records to read (default all) + useful for pickups and multi-field diagnostics files + fill_value :: fill value for missing (blank) tiles (default 0) + astype :: data type to return (default: double precision) + None: keep data type/precision of file + region :: (x0,x1,y0,y1) read only this region (default (0,nx,0,ny)) + lev :: list of levels to read, or, for multiple dimensions + (excluding x,y), tuple(!) of lists (see examples below) + usememmap :: if True, use a memory map for reading data (default False) + recommended when using lev, or region with global files + to save memory and, possibly, time + + Examples: + + XC = rdmds('XC') + XC = rdmds('res_*/XC') + T = rdmds('T.0000002880') + T = rdmds('T',2880) + T2 = rdmds('T',[2880,5760]) + T,its = rdmds('T',numpy.Inf) + VVEL = rdmds('pickup',2880,rec=range(50,100)) + a5 = rdmds('diags',2880,rec=0,lev=[5]) + a = rdmds('diags',2880,rec=0,lev=([0],[0,1,5,6,7])) + from numpy import r_ + a = rdmds('diags',2880,rec=0,lev=([0],r_[:2,5:8])) # same as previous + a = rdmds('diags',2880,rec=0)[0, [0,1,5,6,7], ...] # same, but less efficient + a = rdmds('diags',2880)[0, 0, [0,1,5,6,7], ...] # even less efficient + """ + import functools + usememmap = usememmap or mm + if usememmap: + readdata = np.memmap + else: + readdata = fromfileshape + + # add iteration number to file name unless itrs is -1 + additrs = itrs != -1 + if itrs is np.nan: + # all iterations + itrs = scanforfiles(fnamearg) + if verbose: warning('Reading {0} time levels: '.format(len(itrs)), *itrs) + returnits = True + itrsislist = True + elif itrs is np.inf: + # last iteration + itrs = scanforfiles(fnamearg) + if len(itrs): + if verbose: warning('Found {0} time levels, reading'.format(len(itrs)), itrs[-1]) + else: + if verbose: warning('Found 0 time levels for {}'.format(fnamearg)) + itrs = itrs[-1:] + returnits = True + itrsislist = False + else: + returnits = False + itrsislist = np.iterable(itrs) + + # always make itrs a list + itrs = aslist(itrs) + + allrec = rec is None + reclist = aslist(rec) + if not isinstance(lev,tuple): + lev = (lev,) + levs = tuple( aslist(l) for l in lev ) + levdims = tuple(len(l) for l in levs) + levinds = np.ix_(*levs) + nlev = len(levdims) + + if usememmap: + recsatonce = True + readdata = np.memmap + else: + recsatonce = allrec + readdata = fromfileshape + + try: + typepre = _typeprefixes[machineformat] + except KeyError: + raise ValueError('Allowed machineformats: ' + ' '.join(_typeprefixes)) + + arr = None + metaref = {} + timeStepNumbers = [] + timeIntervals = [] + for iit,it in enumerate(itrs): + if additrs: + fname = fnamearg + '.{0:010d}'.format(int(it)) + else: + fname = fnamearg + + metafiles = glob.glob(fname + 2*('.'+3*'[0-9]') + '.meta') or glob.glob(fname+'.meta') + if len(metafiles) == 0: + raise IOError('No files found for ' + fname + '.meta') + + if verbose: warning(metafiles[0]) + + if debug: warning('Found',len(metafiles),'metafiles for iteration',it) + + for metafile in metafiles: + gdims,i0s,ies,timestep,timeinterval,map2gl,meta = readmeta(metafile) + if arr is None: + # initialize, allocate + try: + dataprec, = meta['dataprec'] + except KeyError: + dataprec, = meta['format'] + tp = typepre + _typesuffixes[dataprec] + size = np.dtype(tp).itemsize + if astype is None: astype = tp + recshape = tuple( ie-i0 for i0,ie in zip(i0s,ies) ) + count = functools.reduce(mul, recshape) + nrecords, = meta['nrecords'] + tileshape = (nrecords,) + recshape + if allrec: + reclist = range(nrecords) + recinds = np.s_[:,] + levinds + else: + recinds = np.ix_(reclist, *levs) + + if region is None: + ri0,rie,rj0,rje = 0,gdims[-1],0,gdims[-2] + else: + ri0,rie,rj0,rje = region + if ri0 < 0: ri0 += gdims[-1] + if rie < 0: rie += gdims[-1] + if rj0 < 0: rj0 += gdims[-2] + if rje < 0: rje += gdims[-2] + + assert nlev+2 <= len(gdims) + rdims = levdims + gdims[len(levdims):-2] + (rje-rj0,rie-ri0) + # always include itrs and rec dimensions and squeeze later + arr = np.empty((len(itrs),len(reclist))+rdims, astype) + arr[...] = fill_value + metaref = meta + else: + if meta != metaref: + raise ValueError('Meta files not compatible') + + datafile = metafile[:-4] + 'data' + + if region is not None: + if map2gl is None: + # overlap of tile with region: + i0 = min(rie, max(ri0, i0s[-1])) + ie = min(rie, max(ri0, ies[-1])) + j0 = min(rje, max(rj0, i0s[-2])) + je = min(rje, max(rj0, ies[-2])) + # source indices + I0 = i0 - i0s[-1] + Ie = ie - i0s[-1] + J0 = j0 - i0s[-2] + Je = je - i0s[-2] + # target indices + i0s[-1] = i0 - ri0 + ies[-1] = ie - ri0 + i0s[-2] = j0 - rj0 + ies[-2] = je - rj0 + else: + raise NotImplementedError('Region selection is not implemented for map2glob != [0,1]') + + sl = tuple( slice(i0,ie) for i0,ie in zip(i0s,ies) ) + if map2gl is None: + # part of arr that will receive tile (all records) + arrtile = arr[(iit,slice(None))+sl] + else: + ny,nx = arr.shape[-2:] + i0 = i0s[-1] + j0 = i0s[-2] + ie = ies[-1] + je = ies[-2] + # "flat" stride for j + jstride = map2gl[1]*nx + map2gl[0] + n = (je-j0)*jstride + # start of a jstride by je-j0 block that contains this tile + ii0 = min(i0+nx*j0, nx*ny-n) + # tile starts at ioff+i0 + ioff = nx*j0 - ii0 + # flatten x,y dimensions + arrflat = arr.reshape(arr.shape[:-2]+(nx*ny,)) + # extract tile + arrmap = arrflat[...,ii0:ii0+n].reshape(arr.shape[:-2]+(je-j0,jstride))[...,:,ioff+i0:ioff+ie] + # slice non-x,y dimensions (except records) + arrtile = arrmap[(iit,slice(None))+sl[:-2]] + del arrflat,arrmap + + if recsatonce: + if region is None: + arrtile[...] = readdata(datafile, tp, shape=tileshape)[recinds] + else: + if Ie > I0 and Je > J0: + if debug: message(datafile, I0,Ie,J0,Je) + arrtile[...] = readdata(datafile, tp, shape=tileshape)[recinds + np.s_[...,J0:Je,I0:Ie]] + else: + f = open(datafile) + for irec,recnum in enumerate(reclist): + if recnum < 0: recnum += nrecords + f.seek(recnum*count*size) + if region is None: + arrtile[irec] = np.fromfile(f, tp, count=count).reshape(recshape)[levinds] + else: + if Ie > I0 and Je > J0: + if debug: message(datafile, I0,Ie,J0,Je) + tilerec = np.fromfile(f, tp, count=count).reshape(recshape) + arrtile[irec] = tilerec[levinds + np.s_[...,J0:Je,I0:Ie]] + f.close() + + if timestep is not None: + timeStepNumbers.extend(timestep) + + if timeinterval is not None: + timeIntervals.append(timeinterval) + + # put list of iteration numbers back into metadata dictionary + if len(timeStepNumbers): + metaref['timeStepNumber'] = timeStepNumbers + + if len(timeIntervals): + metaref['timeInterval'] = timeIntervals + + if arr is None: + arr = np.array([]) + else: + # squeeze singleton iteration, record and level dimensions like matlab version + dims = (len(itrs),len(reclist)) + levdims + if squeeze: + # squeeze all singleton dimensions + squeezed = tuple( d for d in dims if d > 1 ) + else: + # squeeze all that came from scalar arguments + keepers = [itrsislist, np.iterable(rec)] + [np.iterable(l) for l in lev] + squeezed = tuple( d for d,keep in zip(dims, keepers) if keep ) + + arr = arr.reshape(squeezed+arr.shape[2+nlev:]) + + if returnmeta: + meta = dict((k.lower(),v) for k,v in metaref.items()) + return arr,itrs,meta +# elif returnits: +# return arr,itrs + else: + return arr + + +def wrmds(fbase, arr, itr=None, dataprec='float32', ndims=None, nrecords=None, + times=None, fields=None, simulation=None, machineformat='b', + deltat=None, dimlist=None): + ''' wrmds(fbase, arr, itr=None, ...) + + Write array arr to an mds meta/data file set. If itr is given, + the files will be named fbase.0000000itr.data and fbase.0000000itr.meta, + otherwise just fbase.data and fbase.meta. + + Parameters + ---------- + dataprec :: precision of resulting file ('float32' or 'float64') + ndims :: number of non-record dimensions; extra (leading) dimensions + will be folded into 1 record dimension + nrecords :: number of records; will fold as many leading dimensions as + necessary (has to match shape!) + times :: times to write into meta file. Either a single float or a list + of two for a time interval + fields :: list of fields + simulation :: string describing the simulation + machineformat :: 'b' or 'l' for big or little endian + deltat :: time step; provide in place of either times or itr to have one + computed from the other + dimlist :: dimensions as will be stored in file (only useful when passing + meta data from an existing file to wrmds as **kwargs) + ''' + if type(dataprec) == type([]): dataprec, = dataprec + if type(ndims) == type([]): ndims, = ndims + if type(nrecords) == type([]): nrecords, = nrecords + if type(simulation) == type([]): simulation, = simulation + if type(machineformat) == type([]): machineformat, = machineformat + if type(deltat) == type([]): deltat, = deltat + + tp = _typeprefixes[machineformat] + try: + tp = tp + _typesuffixes[dataprec] + except KeyError: + raise ValueError("dataprec must be 'float32' or 'float64'.") + + if ndims is None: + if nrecords is None: + ndims = min(3,len(arr.shape)) + else: + # see how many leading dims we need to make up nrecords + dims = list(arr.shape[::-1]) + n = 1 + while n < nrecords: + n *= dims.pop() + + assert n == nrecords + ndims = len(dims) + + dims = arr.shape[-1:-ndims-1:-1] + nrec = np.prod(arr.shape[:-ndims], dtype=int) + if nrecords is not None and nrecords != nrec: + raise ValueError('Shape/nrecords mismatch') + if dimlist is not None and tuple(dimlist) != dims: + raise ValueError('Shape/dimlist mismatch: {} vs {}'.format(dims, dimlist)) + + if arr.ndim > ndims + 1: + sys.stderr.write("Warning: folding several dimensions into record dimension.\n") + +# arr = arr.reshape((-1,)+arr.shape[-ndims:]) + + if times is not None: + try: + iter(times) + except TypeError: + times = [ times ] + + if deltat is not None: + if itr is None: + itr = int(times[-1]//deltat) + elif times is None: + times = [ deltat*itr ] + else: + sys.stderr.write('Warning: discarding deltat.\n') + + if itr is not None: + fbase = fbase + '.{:010d}'.format(itr) + + with open(fbase + '.meta', 'w') as f: + if simulation is not None: + f.write(" simulation = { '" + simulation + "' };\n") + + f.write(" nDims = [ {:3d} ];\n".format(ndims)) + + if max(dims) < 10000: + fmt = '{:5d}' + else: + fmt = '{:10d}' + + fmt = fmt + ',' + fmt + ',' + fmt + + f.write(" dimList = [\n " + + ",\n ".join(fmt.format(d,1,d) for d in dims) + + "\n ];\n") + + # skipping m2gl + + f.write(" dataprec = [ '" + dataprec + "' ];\n") + + f.write(" nrecords = [ {:5d} ];\n".format(nrec)) + + if itr is not None: + f.write(" timeStepNumber = [ {:10d} ];\n".format(itr)) + + if times is not None: + f.write(" timeInterval = [" + + "".join("{:20.12E}".format(t) for t in times) + + " ];\n") + + if fields is not None: + nflds = len(fields) + f.write(" nFlds = [ {:4d} ];\n".format(nflds)) + f.write(" fldList = {\n") + for row in range((nflds+19)//20): + for field in fields[20*row:20*(row+1)]: + f.write(" '{:<8s}'".format(field)) + f.write("\n") + f.write(" };\n") + + arr.astype(tp).tofile(fbase + '.data') + diff --git a/preprocess_observations/remap_SOSE_T_S.py b/preprocess_observations/remap_SOSE_T_S.py new file mode 100644 index 000000000..17587af55 --- /dev/null +++ b/preprocess_observations/remap_SOSE_T_S.py @@ -0,0 +1,211 @@ +import numpy +import xarray +import matplotlib.pyplot as plt +import matplotlib.colors as colors +import sys +from scipy.io import loadmat +import os + +from mpas_analysis.shared.interpolation import Remapper +from mpas_analysis.shared.grid import LatLonGridDescriptor +from mpas_analysis.shared.climatology.climatology \ + import get_antarctic_stereographic_comparison_descriptor +from mpas_analysis.configuration.MpasAnalysisConfigParser \ + import MpasAnalysisConfigParser + +from mds import rdmds + + +def get_bottom_indices(cellFraction): + nx, ny, nz = cellFraction.shape + botIndices = -1*numpy.ones((nx, ny), int) + for zIndex in range(nz): + mask = cellFraction[:, :, zIndex] > 0. + botIndices[mask] = zIndex + return botIndices + + +def get_monthly_average(filePrefix): + field, itrs, metadata = rdmds(filePrefix, rec=[0], returnmeta=True) + nz, ny, nx = field.shape + # print nx, ny, nz + yearCount = metadata['nrecords'][0]/12 + dims = [12, nx, ny, nz] + + mask3D = cellFraction <= 0. + mask2D = botIndices == -1 + xIndices, yIndices = numpy.meshgrid(numpy.arange(nx), numpy.arange(ny), + indexing='ij') + monthlyClimatologies = numpy.ma.masked_all(dims) + botMonthlyClimatologies = numpy.ma.masked_all((12, nx, ny)) + for month in range(12): + first = True + for year in range(yearCount): + print '{:04d}-{:02d}'.format(year+2005, month+1) + recordIndex = year*12 + month + field = rdmds(filePrefix, rec=[recordIndex]) + field = field.transpose(2, 1, 0) + + field = numpy.ma.masked_array(field, mask=mask3D) + if first: + monthlyClimatologies[month, :, :, :] = field/float(yearCount) + first = False + else: + monthlyClimatologies[month, :, :, :] = \ + monthlyClimatologies[month, :, :, :] + \ + field/float(yearCount) + botMonthlyClimatologies[month, :, :] = \ + numpy.ma.masked_array(field[xIndices, yIndices, botIndices], + mask=mask2D) + + monthlyClimatologies = monthlyClimatologies.transpose(0, 2, 1, 3) + botMonthlyClimatologies = botMonthlyClimatologies.transpose(0, 2, 1) + return monthlyClimatologies, botMonthlyClimatologies + + +inGridName = 'SouthernOcean_0.167x0.167degree' + +inTFileName = '/media/xylar/extra_data/data_overflow/observations/' \ + 'SouthernOcean/SOSE/monthly/THETA_mnthlyBar.0000000100' +inSFileName = '/media/xylar/extra_data/data_overflow/observations/' \ + 'SouthernOcean/SOSE/monthly/SALT_mnthlyBar.0000000100' +inGridFileName = '/media/xylar/extra_data/data_overflow/observations/' \ + 'SouthernOcean/SOSE/grid.mat' + +prefix = 'SOSE_2005-2010_monthly_' + +cacheTFileName = '{}_pot_temp_{}.nc'.format(prefix, inGridName) +cacheSFileName = '{}_salinity_{}.nc'.format(prefix, inGridName) +outTFileName = '{}_pot_temp_{}.nc'.format(prefix, outGridName) +outSFileName = '{}_salinity_{}.nc'.format(prefix, outGridName) + +config = MpasAnalysisConfigParser() +config.read('config.default') + + +inDescriptor = LatLonGridDescriptor() + +if not os.path.exists(cacheTFileName) or not os.path.exists(cacheSFileName): + matGrid = loadmat(inGridFileName) + # lat/lon is a tensor grid so we can use 1-D arrays + lon = matGrid['XC'][:, 0] + lat = matGrid['YC'][0, :] + z = matGrid['RC'][:, 0] + cellFraction = matGrid['hFacC'] + + botIndices = get_bottom_indices(cellFraction) + +if os.path.exists(cacheTFileName): + dsT = xarray.open_dataset(cacheTFileName) +else: + field, botField = get_monthly_average(inTFileName) + + description = 'Monthly potential temperature climatologies from ' \ + '2005-2010 average of the Southern Ocean State Estimate ' \ + '(SOSE)' + botDescription = 'Monthly potential temperature climatologies at sea ' \ + 'floor from 2005-2010 average from SOSE' + dictonary = {'dims': ['Time', 'lon', 'lat', 'depth'], + 'coords': {'month': {'dims': ('Time'), + 'data': range(1, 13), + 'attrs': {'units': 'months'}}, + 'year': {'dims': ('Time'), + 'data': numpy.ones(12), + 'attrs': {'units': 'years'}}, + 'lon': {'dims': ('lon'), + 'data': lon, + 'attrs': {'units': 'degrees'}}, + 'lat': {'dims': ('lat'), + 'data': lat, + 'attrs': {'units': 'degrees'}}, + 'depth': {'dims': ('depth'), + 'data': z, + 'attrs': {'units': 'm'}}}, + 'data_vars': {'theta': + {'dims': ('Time', 'lat', 'lon', 'depth'), + 'data': field, + 'attrs': {'units': '$^\circ$C', + 'description': description}}, + 'botTheta': + {'dims': ('Time', 'lat', 'lon'), + 'data': botField, + 'attrs': {'units': '$^\circ$C', + 'description': botDescription}}}} + + dsT = xarray.Dataset.from_dict(dictonary) + dsT.to_netcdf(cacheTFileName) + +if os.path.exists(cacheSFileName): + dsS = xarray.open_dataset(cacheSFileName) +else: + field, botField = get_monthly_average(inSFileName) + + description = 'Monthly salinity climatologies from 2005-2010 ' \ + 'average of the Southern Ocean State Estimate (SOSE)' + botDescription = 'Monthly salinity climatologies at sea floor ' \ + 'from 2005-2010 average from SOSE' + dictonary = {'dims': ['Time', 'lon', 'lat', 'depth'], + 'coords': {'month': {'dims': ('Time'), + 'data': range(1, 13), + 'attrs': {'units': 'months'}}, + 'year': {'dims': ('Time'), + 'data': numpy.ones(12), + 'attrs': {'units': 'years'}}, + 'lon': {'dims': ('lon'), + 'data': lon, + 'attrs': {'units': 'degrees'}}, + 'lat': {'dims': ('lat'), + 'data': lat, + 'attrs': {'units': 'degrees'}}, + 'depth': {'dims': ('depth'), + 'data': z, + 'attrs': {'units': 'm'}}}, + 'data_vars': {'salinity': + {'dims': ('Time', 'lat', 'lon', 'depth'), + 'data': field, + 'attrs': {'units': 'PSU', + 'description': description}}, + 'botSalinity': + {'dims': ('Time', 'lat', 'lon'), + 'data': botField, + 'attrs': {'units': 'PSU', + 'description': botDescription}}}} + + dsS = xarray.Dataset.from_dict(dictonary) + dsS.to_netcdf(cacheSFileName) + +inDescriptor = LatLonGridDescriptor.read(cacheTFileName, latVarName='lat', + lonVarName='lon') + +outDescriptor = get_antarctic_stereographic_comparison_descriptor(config) +outGridName = outDescriptor.meshName + +mappingFileName = 'map_{}_to_{}.nc'.format(inGridName, outGridName) + +remapper = Remapper(inDescriptor, outDescriptor, mappingFileName) + +remapper.build_mapping_file(method='bilinear') + +remappedT = remapper.remap(dsT, renormalizationThreshold=0.01) + +remappedT.attrs['history'] = ' '.join(sys.argv) +remappedT.to_netcdf(outTFileName) + +remappedS = remapper.remap(dsS, renormalizationThreshold=0.01) + +remappedS.attrs['history'] = ' '.join(sys.argv) +remappedS.to_netcdf(outSFileName) + +normT = colors.Normalize(vmin=-2.0, vmax=2.0) +normS = colors.Normalize(vmin=33.0, vmax=35.0) + +plt.figure() +plt.imshow(remappedT.botTheta.values[0, :, :], origin='lower', cmap='RdBu_r', + norm=normT) +plt.colorbar() +plt.figure() +plt.imshow(remappedS.botSalinity.values[0, :, :], origin='lower', + cmap='RdBu_r', norm=normS) +plt.colorbar() + +plt.show() diff --git a/preprocess_observations/remap_rignot.py b/preprocess_observations/remap_rignot.py new file mode 100644 index 000000000..3abaef9e0 --- /dev/null +++ b/preprocess_observations/remap_rignot.py @@ -0,0 +1,71 @@ +import numpy +import xarray +import matplotlib.pyplot as plt +import matplotlib.colors as colors +import pyproj +import sys + +from mpas_analysis.shared.interpolation import Remapper +from mpas_analysis.shared.grid import ProjectionGridDescriptor +from mpas_analysis.shared.mpas_xarray.mpas_xarray import subset_variables +from mpas_analysis.shared.climatology \ + import get_Antarctic_stereographic_comparison_descriptor +from mpas_analysis.configuration.MpasAnalysisConfigParser \ + import MpasAnalysisConfigParser + +inFileName = '/media/xylar/extra_data/data_overflow/observations/Antarctica/' \ + 'Rignot_et_al._2013/Ant_MeltingRate.nc' + +config = MpasAnalysisConfigParser() +config.read('config.default') + +ds = xarray.open_dataset(inFileName) +ds = subset_variables(ds, ['melt_actual', 'xaxis', 'yaxis']) +lx = numpy.abs(1e-3*(ds.xaxis.values[-1]-ds.xaxis.values[0])) +ly = numpy.abs(1e-3*(ds.yaxis.values[-1]-ds.yaxis.values[0])) + +maskedMeltRate = numpy.ma.masked_array(ds.melt_actual, + mask=(ds.melt_actual.values == 0.)) + +ds['meltRate'] = xarray.DataArray(maskedMeltRate, dims=ds.melt_actual.dims, + coords=ds.melt_actual.coords, + attrs=ds.melt_actual.attrs) + +ds = ds.drop('melt_actual') + +inGridName = '{}x{}km_1.0km_Antarctic_stereo'.format(lx, ly) + +projection = pyproj.Proj('+proj=stere +lat_ts=-71.0 +lat_0=-90 +lon_0=0.0 ' + '+k_0=1.0 +x_0=0.0 +y_0=0.0 +ellps=WGS84') + +inDescriptor = ProjectionGridDescriptor(projection) + +inDescriptor.read(inFileName, xVarName='xaxis', yVarName='yaxis', + meshName=inGridName) + +outDescriptor = get_Antarctic_stereographic_comparison_descriptor(config) +outGridName = outDescriptor.meshName + +outFileName = 'Rignot_2013_melt_rates_{}.nc'.format(outGridName) + +mappingFileName = 'map_{}_to_{}.nc'.format(inGridName, outGridName) + +remapper = Remapper(inDescriptor, outDescriptor, mappingFileName) + +remapper.build_mapping_file(method='bilinear') + +remappedDataset = remapper.remap(ds, renormalizationThreshold=0.01) + +remappedDataset.attrs['history'] = ' '.join(sys.argv) +remappedDataset.to_netcdf(outFileName) + +norm = colors.SymLogNorm(linthresh=1, linscale=1, vmin=-100.0, vmax=100.0) + +plt.figure() +plt.imshow(maskedMeltRate, origin='upper', norm=norm) +plt.colorbar() +plt.figure() +plt.imshow(remappedDataset.meltRate.values, origin='lower', norm=norm) +plt.colorbar() + +plt.show() From 03eee611c7ab6af0ea7ed581dfc96f28e801fcfe Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sat, 19 Aug 2017 09:00:53 -0700 Subject: [PATCH 39/47] Add config file for g60to30_SSSrestore Update the Edison job script to run multiple tasks on a single node, rather than one task per node. --- .../config.20170625.beta1.g60to30_SSSrestore | 173 ++++++++++++++++++ configs/edison/job_script.edison.bash | 37 +--- 2 files changed, 177 insertions(+), 33 deletions(-) create mode 100644 configs/edison/config.20170625.beta1.g60to30_SSSrestore diff --git a/configs/edison/config.20170625.beta1.g60to30_SSSrestore b/configs/edison/config.20170625.beta1.g60to30_SSSrestore new file mode 100644 index 000000000..6602cea95 --- /dev/null +++ b/configs/edison/config.20170625.beta1.g60to30_SSSrestore @@ -0,0 +1,173 @@ +[runs] +## options related to the run to be analyzed and reference runs to be +## compared against + +# mainRunName is a name that identifies the simulation being analyzed. +mainRunName = 20170625.beta1.g60to30_SSSrestore +# preprocessedReferenceRunName is the name of a reference run that has been +# preprocessed to compare against (or None to turn off comparison). Reference +# runs of this type would have preprocessed results because they were not +# performed with MPAS components (so they cannot be easily ingested by +# MPAS-Analysis) +preprocessedReferenceRunName = B1850C5_ne30_v0.4 + +[execute] +## options related to executing parallel tasks + +# the number of parallel tasks (1 means tasks run in serial, the default) +#parallelTaskCount = 1 +parallelTaskCount = 6 + +# the parallelism mode in ncclimo ("serial" or "bck") +# Set this to "bck" (background parallelism) if running on a machine that can +# handle 12 simultaneous processes, one for each monthly climatology. +#ncclimoParallelMode = serial +ncclimoParallelMode = bck + +[input] +## options related to reading in the results to be analyzed + +# directory containing model results +baseDirectory = /global/cscratch1/sd/sprice/acme_scratch/edison/g60to30_SSSrestore/run + +# names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) +mpasMeshName = oEC60to30v3wLI + +[output] +## options related to writing out plots, intermediate cached data sets, logs, +## etc. + +# directory where analysis should be written +baseDirectory = /dir/to/analysis/output + +# a list of analyses to generate. Valid names are: +# 'timeSeriesOHC', 'timeSeriesSST', 'climatologyMapSST', +# 'climatologyMapSSS', 'climatologyMapMLD', 'streamfunctionMOC', +# 'indexNino34', 'meridionalHeatTransport', +# 'timeSeriesSeaIceAreaVol', 'climatologyMapSeaIceConcThick' +# the following shortcuts exist: +# 'all' -- all analyses will be run +# 'all_timeSeries' -- all time-series analyses will be run +# 'all_climatology' -- all analyses involving climatologies +# 'all_horizontalMap' -- all analyses involving horizontal climatology maps +# 'all_ocean' -- all ocean analyses will be run +# 'all_seaIce' -- all sea-ice analyses will be run +# 'no_timeSeriesOHC' -- skip 'timeSeriesOHC' (and similarly with the +# other analyses). +# 'no_ocean', 'no_timeSeries', etc. -- in analogy to 'all_*', skip the +# given category of analysis +# an equivalent syntax can be used on the command line to override this +# option: +# ./run_analysis.py config.analysis --generate \ +# all,no_ocean,all_timeSeries +generate = ['all'] + +# alternative examples that would perform all analysis except +# 'timeSeriesOHC' +#generate = ['all', 'no_timeSeriesOHC'] +# Each subsequent list entry can be used to alter previous list entries. For +# example, the following would run all tasks that aren't ocean analyses, +# except that it would also run ocean time series tasks: +#generate = ['all', 'no_ocean', 'all_timeSeries'] + +[climatology] +## options related to producing climatologies, typically to compare against +## observations and previous runs + +# the first year over which to average climatalogies +startYear = 13 +# the last year over which to average climatalogies +endYear = 22 + +# The names of the mapping file used for interpolation. If a mapping file has +# already been generated, supplying the absolute path can save the time of +# generating a new one. If nothing is supplied, the file name is automatically +# generated based on the MPAS mesh name, the comparison grid resolution, and +# the interpolation method +mappingDirectory = /global/project/projectdirs/acme/mapping/maps/ + +[timeSeries] +## options related to producing time series plots, often to compare against +## observations and previous runs + +# start and end years for timeseries analysis. Using out-of-bounds values +# like start_year = 1 and end_year = 9999 will be clipped to the valid range +# of years, and is a good way of insuring that all values are used. +startYear = 1 +endYear = 22 + +[index] +## options related to producing nino index. + +# start and end years for the nino 3.4 analysis. Using out-of-bounds values +# like start_year = 1 and end_year = 9999 will be clipped to the valid range +# of years, and is a good way of insuring that all values are used. +# For valid statistics, index times should include at least 30 years +startYear = 1 +endYear = 9999 + +[oceanObservations] +## options related to ocean observations with which the results will be compared + +# directory where ocean observations are stored +baseDirectory = /global/project/projectdirs/acme/observations/Ocean/ +sstSubdirectory = SST +sssSubdirectory = SSS +mldSubdirectory = MLD +ninoSubdirectory = Nino +mhtSubdirectory = MHT +meltSubdirectory = Melt +soseSubdirectory = SOSE + +[oceanPreprocessedReference] +## options related to preprocessed ocean reference run with which the results +## will be compared (e.g. a POP, CESM or ACME v0 run) + +# directory where ocean reference simulation results are stored +baseDirectory = /global/project/projectdirs/acme/ACMEv0_lowres/B1850C5_ne30_v0.4/ocn/postprocessing + +[seaIceObservations] +## options related to sea ice observations with which the results will be +## compared + +# directory where sea ice observations are stored +baseDirectory = /global/project/projectdirs/acme/observations/SeaIce + +[seaIcePreprocessedReference] +## options related to preprocessed sea ice reference run with which the results +## will be compared (e.g. a CICE, CESM or ACME v0 run) + +# directory where ocean reference simulation results are stored +baseDirectory = /global/project/projectdirs/acme/ACMEv0_lowres/B1850C5_ne30_v0.4/ice/postprocessing + +[timeSeriesSeaIceAreaVol] +## options related to plotting time series of sea ice area and volume + +# plot on polar plot +polarPlot = False + +[streamfunctionMOC] +## options related to plotting the streamfunction of the meridional overturning +## circulation (MOC) +maxChunkSize = 1000 + +# Mask file for ocean basin regional computation +regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30wLIv3_Atlantic_region_masks_and_southern_transect.nc + +[climatologyMapSoseTemperature] +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['JFM', 'JAS', 'ANN'] + +# list of depths in meters (positive up) at which to analyze, 'bot' for the +# bottom of the ocean +depths = [0, -200, -400, -600, -800, 'bot'] + +[climatologyMapSoseSalinity] +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['JFM', 'JAS', 'ANN'] + +# list of depths in meters (positive up) at which to analyze, 'bot' for the +# bottom of the ocean +depths = [0, -200, -400, -600, -800, 'bot'] diff --git a/configs/edison/job_script.edison.bash b/configs/edison/job_script.edison.bash index 37e2324b2..c4f0cfa14 100644 --- a/configs/edison/job_script.edison.bash +++ b/configs/edison/job_script.edison.bash @@ -6,9 +6,7 @@ ##SBATCH --qos=premium # comment in to get the debug queue ##SBATCH --partition=debug -# change number of nodes to change the number of parallel tasks -# (anything between 1 and the total number of tasks to run) -#SBATCH --nodes=10 +#SBATCH --nodes=1 #SBATCH --time=1:00:00 #SBATCH --account=acme #SBATCH --job-name=mpas_analysis @@ -27,42 +25,15 @@ module load python/anaconda-2.7-acme # MPAS/ACME job to be analyzed, including paths to simulation data and # observations. Change this name and path as needed run_config_file="config.run_name_here" -# prefix to run a serial job on a single node on edison -command_prefix="srun -N 1 -n 1" -# change this if not submitting this script from the directory -# containing run_analysis.py -mpas_analysis_dir="." -# one parallel task per node by default -parallel_task_count=$SLURM_JOB_NUM_NODES if [ ! -f $run_config_file ]; then echo "File $run_config_file not found!" exit 1 fi -if [ ! -f $mpas_analysis_dir/run_analysis.py ]; then - echo "run_analysis.py not found in $mpas_analysis_dir!" +if [ ! -f ./run_analysis.py ]; then + echo "run_analysis.py not found in current directory!" exit 1 fi - -# This is a config file generated just for this job with the output directory, -# command prefix and parallel task count from above. -job_config_file=config.output.$SLURM_JOB_ID - -# write out the config file specific to this job -cat < $job_config_file -[execute] -## options related to executing parallel tasks - -# the number of parallel tasks (1 means tasks run in serial, the default) -parallelTaskCount = $parallel_task_count - -# Prefix on the commnd line before a parallel task (e.g. 'srun -n 1 python') -# Default is no prefix (run_analysis.py is executed directly) -commandPrefix = $command_prefix - -EOF - -$mpas_analysis_dir/run_analysis.py $run_config_file \ - $job_config_file +srun -N 1 -n 1 ./run_analysis.py $run_config_file From 8db8e2b6567b2f334aaf00f282d0e0b282c2a928 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Mon, 21 Aug 2017 11:29:56 -0700 Subject: [PATCH 40/47] Add config file for edison B_low_res_ice_shelves run Add Charlie Zender's version of NCO to the path for Edison batch jobs (because the latest version is not yet part of the ACME default). --- ...onfig.20170817.beta1.B_low_res_ice_shelves | 173 ++++++++++++++++++ configs/edison/job_script.edison.bash | 1 + 2 files changed, 174 insertions(+) create mode 100644 configs/edison/config.20170817.beta1.B_low_res_ice_shelves diff --git a/configs/edison/config.20170817.beta1.B_low_res_ice_shelves b/configs/edison/config.20170817.beta1.B_low_res_ice_shelves new file mode 100644 index 000000000..b655f553f --- /dev/null +++ b/configs/edison/config.20170817.beta1.B_low_res_ice_shelves @@ -0,0 +1,173 @@ +[runs] +## options related to the run to be analyzed and reference runs to be +## compared against + +# mainRunName is a name that identifies the simulation being analyzed. +mainRunName = 20170817.beta1.B_low_res_ice_shelves +# preprocessedReferenceRunName is the name of a reference run that has been +# preprocessed to compare against (or None to turn off comparison). Reference +# runs of this type would have preprocessed results because they were not +# performed with MPAS components (so they cannot be easily ingested by +# MPAS-Analysis) +preprocessedReferenceRunName = B1850C5_ne30_v0.4 + +[execute] +## options related to executing parallel tasks + +# the number of parallel tasks (1 means tasks run in serial, the default) +#parallelTaskCount = 24 +parallelTaskCount = 6 + +# the parallelism mode in ncclimo ("serial" or "bck") +# Set this to "bck" (background parallelism) if running on a machine that can +# handle 12 simultaneous processes, one for each monthly climatology. +#ncclimoParallelMode = bck +ncclimoParallelMode = bck + +[input] +## options related to reading in the results to be analyzed + +# directory containing model results +baseDirectory = /global/cscratch1/sd/fyke/ACME_simulations/B_low_res_ice_shelves/run + +# names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) +mpasMeshName = oEC60to30v3wLI + +[output] +## options related to writing out plots, intermediate cached data sets, logs, +## etc. + +# directory where analysis should be written +baseDirectory = /dir/to/analysis/output + +# a list of analyses to generate. Valid names are: +# 'timeSeriesOHC', 'timeSeriesSST', 'climatologyMapSST', +# 'climatologyMapSSS', 'climatologyMapMLD', 'streamfunctionMOC', +# 'indexNino34', 'meridionalHeatTransport', +# 'timeSeriesSeaIceAreaVol', 'climatologyMapSeaIceConcThick' +# the following shortcuts exist: +# 'all' -- all analyses will be run +# 'all_timeSeries' -- all time-series analyses will be run +# 'all_climatology' -- all analyses involving climatologies +# 'all_horizontalMap' -- all analyses involving horizontal climatology maps +# 'all_ocean' -- all ocean analyses will be run +# 'all_seaIce' -- all sea-ice analyses will be run +# 'no_timeSeriesOHC' -- skip 'timeSeriesOHC' (and similarly with the +# other analyses). +# 'no_ocean', 'no_timeSeries', etc. -- in analogy to 'all_*', skip the +# given category of analysis +# an equivalent syntax can be used on the command line to override this +# option: +# ./run_analysis.py config.analysis --generate \ +# all,no_ocean,all_timeSeries +generate = ['all'] + +# alternative examples that would perform all analysis except +# 'timeSeriesOHC' +#generate = ['all', 'no_timeSeriesOHC'] +# Each subsequent list entry can be used to alter previous list entries. For +# example, the following would run all tasks that aren't ocean analyses, +# except that it would also run ocean time series tasks: +#generate = ['all', 'no_ocean', 'all_timeSeries'] + +[climatology] +## options related to producing climatologies, typically to compare against +## observations and previous runs + +# the first year over which to average climatalogies +startYear = 1 +# the last year over which to average climatalogies +endYear = 1 + +# The names of the mapping file used for interpolation. If a mapping file has +# already been generated, supplying the absolute path can save the time of +# generating a new one. If nothing is supplied, the file name is automatically +# generated based on the MPAS mesh name, the comparison grid resolution, and +# the interpolation method +mappingDirectory = /global/project/projectdirs/acme/mapping/maps/ + +[timeSeries] +## options related to producing time series plots, often to compare against +## observations and previous runs + +# start and end years for timeseries analysis. Using out-of-bounds values +# like start_year = 1 and end_year = 9999 will be clipped to the valid range +# of years, and is a good way of insuring that all values are used. +startYear = 1 +endYear = 9999 + +[index] +## options related to producing nino index. + +# start and end years for the nino 3.4 analysis. Using out-of-bounds values +# like start_year = 1 and end_year = 9999 will be clipped to the valid range +# of years, and is a good way of insuring that all values are used. +# For valid statistics, index times should include at least 30 years +startYear = 1 +endYear = 9999 + +[oceanObservations] +## options related to ocean observations with which the results will be compared + +# directory where ocean observations are stored +baseDirectory = /global/project/projectdirs/acme/observations/Ocean/ +sstSubdirectory = SST +sssSubdirectory = SSS +mldSubdirectory = MLD +ninoSubdirectory = Nino +mhtSubdirectory = MHT +meltSubdirectory = Melt +soseSubdirectory = SOSE + +[oceanPreprocessedReference] +## options related to preprocessed ocean reference run with which the results +## will be compared (e.g. a POP, CESM or ACME v0 run) + +# directory where ocean reference simulation results are stored +baseDirectory = /global/project/projectdirs/acme/ACMEv0_lowres/B1850C5_ne30_v0.4/ocn/postprocessing + +[seaIceObservations] +## options related to sea ice observations with which the results will be +## compared + +# directory where sea ice observations are stored +baseDirectory = /global/project/projectdirs/acme/observations/SeaIce + +[seaIcePreprocessedReference] +## options related to preprocessed sea ice reference run with which the results +## will be compared (e.g. a CICE, CESM or ACME v0 run) + +# directory where ocean reference simulation results are stored +baseDirectory = /global/project/projectdirs/acme/ACMEv0_lowres/B1850C5_ne30_v0.4/ice/postprocessing + +[timeSeriesSeaIceAreaVol] +## options related to plotting time series of sea ice area and volume + +# plot on polar plot +polarPlot = False + +[streamfunctionMOC] +## options related to plotting the streamfunction of the meridional overturning +## circulation (MOC) +maxChunkSize = 1000 + +# Mask file for ocean basin regional computation +regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30wLIv3_Atlantic_region_masks_and_southern_transect.nc + +[climatologyMapSoseTemperature] +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['JFM', 'JAS', 'ANN'] + +# list of depths in meters (positive up) at which to analyze, 'bot' for the +# bottom of the ocean +depths = [0, -200, -400, -600, -800, 'bot'] + +[climatologyMapSoseSalinity] +# Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, +# Nov, Dec, JFM, AMJ, JAS, OND, ANN) +seasons = ['JFM', 'JAS', 'ANN'] + +# list of depths in meters (positive up) at which to analyze, 'bot' for the +# bottom of the ocean +depths = [0, -200, -400, -600, -800, 'bot'] diff --git a/configs/edison/job_script.edison.bash b/configs/edison/job_script.edison.bash index c4f0cfa14..e291e193b 100644 --- a/configs/edison/job_script.edison.bash +++ b/configs/edison/job_script.edison.bash @@ -21,6 +21,7 @@ export OMP_NUM_THREADS=1 module unload python python/base module use /global/project/projectdirs/acme/software/modulefiles/all module load python/anaconda-2.7-acme +export PATH=/global/homes/z/zender/bin_edison:${PATH} # MPAS/ACME job to be analyzed, including paths to simulation data and # observations. Change this name and path as needed From 2fc0f57c27a12174fb92a83a61d007d8b8a34596 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 23 Aug 2017 12:37:46 +0200 Subject: [PATCH 41/47] Add a configs directory for cori This mostly just links to the same config files as for Edison but includes job scripts specific to cori. --- ...3.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison | 1 + .../config.20170625.beta1.g60to30_SSSrestore | 1 + .../config.20170807.beta1.G_oQU240.edison | 1 + ...onfig.20170817.beta1.B_low_res_ice_shelves | 1 + configs/cori/job_script.cori-haswell.bash | 42 +++++++++++++++++++ configs/cori/job_script.cori-knl.bash | 42 +++++++++++++++++++ configs/edison/job_script.edison.bash | 1 + 7 files changed, 89 insertions(+) create mode 120000 configs/cori/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison create mode 120000 configs/cori/config.20170625.beta1.g60to30_SSSrestore create mode 120000 configs/cori/config.20170807.beta1.G_oQU240.edison create mode 120000 configs/cori/config.20170817.beta1.B_low_res_ice_shelves create mode 100644 configs/cori/job_script.cori-haswell.bash create mode 100644 configs/cori/job_script.cori-knl.bash diff --git a/configs/cori/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison b/configs/cori/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison new file mode 120000 index 000000000..0e53b2031 --- /dev/null +++ b/configs/cori/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison @@ -0,0 +1 @@ +../edison/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison \ No newline at end of file diff --git a/configs/cori/config.20170625.beta1.g60to30_SSSrestore b/configs/cori/config.20170625.beta1.g60to30_SSSrestore new file mode 120000 index 000000000..d098b8f2d --- /dev/null +++ b/configs/cori/config.20170625.beta1.g60to30_SSSrestore @@ -0,0 +1 @@ +../edison/config.20170625.beta1.g60to30_SSSrestore \ No newline at end of file diff --git a/configs/cori/config.20170807.beta1.G_oQU240.edison b/configs/cori/config.20170807.beta1.G_oQU240.edison new file mode 120000 index 000000000..cc30d102d --- /dev/null +++ b/configs/cori/config.20170807.beta1.G_oQU240.edison @@ -0,0 +1 @@ +../edison/config.20170807.beta1.G_oQU240.edison \ No newline at end of file diff --git a/configs/cori/config.20170817.beta1.B_low_res_ice_shelves b/configs/cori/config.20170817.beta1.B_low_res_ice_shelves new file mode 120000 index 000000000..60e84d6fe --- /dev/null +++ b/configs/cori/config.20170817.beta1.B_low_res_ice_shelves @@ -0,0 +1 @@ +../edison/config.20170817.beta1.B_low_res_ice_shelves \ No newline at end of file diff --git a/configs/cori/job_script.cori-haswell.bash b/configs/cori/job_script.cori-haswell.bash new file mode 100644 index 000000000..f40bd3d59 --- /dev/null +++ b/configs/cori/job_script.cori-haswell.bash @@ -0,0 +1,42 @@ +#!/bin/bash -l + +# comment out if using debug queue +#SBATCH --partition=regular +# comment in to get premium queue +##SBATCH --qos=premium +# comment in to get the debug queue +##SBATCH --partition=debug +# comment in when run on cori haswell or knl +#SBATCH -C haswell +#SBATCH --nodes=1 +#SBATCH --time=1:00:00 +#SBATCH --account=acme +#SBATCH --job-name=mpas_analysis +#SBATCH --output=mpas_analysis.o%j +#SBATCH --error=mpas_analysis.e%j +#SBATCH -L cscratch1,SCRATCH,project + +cd $SLURM_SUBMIT_DIR # optional, since this is the default behavior + +export OMP_NUM_THREADS=1 + +module unload python python/base +module use /global/project/projectdirs/acme/software/modulefiles/all +module load python/anaconda-2.7-acme +export PATH=/global/homes/z/zender/bin_cori:${PATH} + +# MPAS/ACME job to be analyzed, including paths to simulation data and +# observations. Change this name and path as needed +run_config_file="config.run_name_here" + +if [ ! -f $run_config_file ]; then + echo "File $run_config_file not found!" + exit 1 +fi +if [ ! -f ./run_analysis.py ]; then + echo "run_analysis.py not found in current directory!" + exit 1 +fi + +srun -N 1 -n 1 ./run_analysis.py $run_config_file + diff --git a/configs/cori/job_script.cori-knl.bash b/configs/cori/job_script.cori-knl.bash new file mode 100644 index 000000000..c21ef7b61 --- /dev/null +++ b/configs/cori/job_script.cori-knl.bash @@ -0,0 +1,42 @@ +#!/bin/bash -l + +# comment out if using debug queue +#SBATCH --partition=regular +# comment in to get premium queue +##SBATCH --qos=premium +# comment in to get the debug queue +##SBATCH --partition=debug +# comment in when run on cori haswell or knl +#SBATCH -C knl +#SBATCH --nodes=1 +#SBATCH --time=1:00:00 +#SBATCH --account=acme +#SBATCH --job-name=mpas_analysis +#SBATCH --output=mpas_analysis.o%j +#SBATCH --error=mpas_analysis.e%j +#SBATCH -L cscratch1,SCRATCH,project + +cd $SLURM_SUBMIT_DIR # optional, since this is the default behavior + +export OMP_NUM_THREADS=1 + +module unload python python/base +module use /global/project/projectdirs/acme/software/modulefiles/all +module load python/anaconda-2.7-acme +export PATH=/global/homes/z/zender/bin_cori:${PATH} + +# MPAS/ACME job to be analyzed, including paths to simulation data and +# observations. Change this name and path as needed +run_config_file="config.run_name_here" + +if [ ! -f $run_config_file ]; then + echo "File $run_config_file not found!" + exit 1 +fi +if [ ! -f ./run_analysis.py ]; then + echo "run_analysis.py not found in current directory!" + exit 1 +fi + +srun -N 1 -n 1 ./run_analysis.py $run_config_file + diff --git a/configs/edison/job_script.edison.bash b/configs/edison/job_script.edison.bash index e291e193b..02d4ac6dd 100644 --- a/configs/edison/job_script.edison.bash +++ b/configs/edison/job_script.edison.bash @@ -6,6 +6,7 @@ ##SBATCH --qos=premium # comment in to get the debug queue ##SBATCH --partition=debug +# comment in when run on cori haswell or knl #SBATCH --nodes=1 #SBATCH --time=1:00:00 #SBATCH --account=acme From f5867acbfbddb509b56826e8d04b3c0c358f9d01 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Mon, 28 Aug 2017 01:28:47 -0700 Subject: [PATCH 42/47] Update MPAS mesh names and MOC mask file names on Edison Mesh names are now consistent with ACME and MOC file names all have the same file suffix, as expected by A-Prime. --- .../config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison | 2 +- configs/edison/config.20170625.beta1.g60to30_SSSrestore | 2 +- configs/edison/config.20170807.beta1.G_oQU240.edison | 4 ++-- configs/edison/config.20170817.beta1.B_low_res_ice_shelves | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configs/edison/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison b/configs/edison/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison index 73650a03a..ac264b791 100644 --- a/configs/edison/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison +++ b/configs/edison/config.20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison @@ -18,7 +18,7 @@ preprocessedReferenceRunName = B1850C5_ne30_v0.4 baseDirectory = /scratch2/scratchdirs/golaz/ACME_simulations/20170313.beta1.A_WCYCL1850S.ne30_oECv3_ICG.edison/run # names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) -mpasMeshName = EC60to30v3 +mpasMeshName = oEC60to30v3 [output] ## options related to writing out plots, intermediate cached data sets, logs, diff --git a/configs/edison/config.20170625.beta1.g60to30_SSSrestore b/configs/edison/config.20170625.beta1.g60to30_SSSrestore index 6602cea95..c0ad55a77 100644 --- a/configs/edison/config.20170625.beta1.g60to30_SSSrestore +++ b/configs/edison/config.20170625.beta1.g60to30_SSSrestore @@ -152,7 +152,7 @@ polarPlot = False maxChunkSize = 1000 # Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30wLIv3_Atlantic_region_masks_and_southern_transect.nc +regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30v3wLI_SingleRegionAtlanticWTransportTransects_masks.nc [climatologyMapSoseTemperature] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, diff --git a/configs/edison/config.20170807.beta1.G_oQU240.edison b/configs/edison/config.20170807.beta1.G_oQU240.edison index f650d77be..75e13a720 100644 --- a/configs/edison/config.20170807.beta1.G_oQU240.edison +++ b/configs/edison/config.20170807.beta1.G_oQU240.edison @@ -18,7 +18,7 @@ preprocessedReferenceRunName = B1850C5_ne30_v0.4 baseDirectory = /scratch1/scratchdirs/xylar/acme_scratch/edison/G-QU240-master-intel/run # names of ocean and sea ice meshes (e.g. EC60to30, QU240, RRS30to10, etc.) -mpasMeshName = oQU240 +mpasMeshName = oQU240v3 [output] ## options related to writing out plots, intermediate cached data sets, logs, @@ -138,4 +138,4 @@ polarPlot = False maxChunkSize = 1000 # Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oQU240v3_Atlantic_region_and_southern_transect.nc +regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oQU240v3_SingleRegionAtlanticWTransportTransects_masks.nc diff --git a/configs/edison/config.20170817.beta1.B_low_res_ice_shelves b/configs/edison/config.20170817.beta1.B_low_res_ice_shelves index b655f553f..bde43b15b 100644 --- a/configs/edison/config.20170817.beta1.B_low_res_ice_shelves +++ b/configs/edison/config.20170817.beta1.B_low_res_ice_shelves @@ -152,7 +152,7 @@ polarPlot = False maxChunkSize = 1000 # Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30wLIv3_Atlantic_region_masks_and_southern_transect.nc +regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30v3wLI_SingleRegionAtlanticWTransportTransects_masks.nc [climatologyMapSoseTemperature] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, From d2e01a93c245065ece972fc8c1520f7ccd50fedc Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 25 Aug 2017 21:37:42 +0200 Subject: [PATCH 43/47] Change to mask directory instead of MOC mask file The name of the mask file is constructed automatically from the mesh name. --- config.default | 6 +++--- mpas_analysis/ocean/streamfunction_moc.py | 16 ++++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/config.default b/config.default index 5923fecde..89e9af2a7 100644 --- a/config.default +++ b/config.default @@ -371,9 +371,6 @@ compareWithObservations = True # Supported options are Atlantic and IndoPacific regionNames = ['Atlantic'] -# Mask file for post-processing regional MOC computation -regionMaskFiles = /path/to/MOCregional/mask/file - # xarray (with dask) divides data sets into "chunks", allowing computations # to be made on data that is larger than the available memory. MPAS-Analysis # supports setting a maximum chunk size for data sets generally, and a @@ -820,6 +817,9 @@ regions = ['arctic', 'equatorial', 'so', 'nino3', 'nino4', 'nino3.4', 'global'] plotTitles = ['Arctic', 'Equatorial (15S-15N)', 'Southern Ocean', 'Nino 3', 'Nino 4', 'Nino 3.4', 'Global Ocean'] +# Directory for region mask files +regionMaskDirectory = /path/to/masks/ + [plot] ## options related to plotting that are the defaults across all analysis ## modules diff --git a/mpas_analysis/ocean/streamfunction_moc.py b/mpas_analysis/ocean/streamfunction_moc.py index 6d50fff04..15910bd00 100644 --- a/mpas_analysis/ocean/streamfunction_moc.py +++ b/mpas_analysis/ocean/streamfunction_moc.py @@ -296,17 +296,21 @@ def _compute_moc_climo_postprocess(self): # {{{ 'regionNames') # Load basin region related variables and save them to dictionary - # NB: The following will need to change with new regional mapping files - regionMaskFiles = config.get(self.sectionName, 'regionMaskFiles') - if not os.path.exists(regionMaskFiles): - raise IOError('Regional masking file for MOC calculation ' - 'does not exist') + mpasMeshName = config.get('input', 'mpasMeshName') + regionMaskDirectory = config.get('regions', 'regionMaskDirectory') + + regionMaskFile = '{}/{}_SingleRegionAtlanticWTransportTransects_' \ + 'masks.nc'.format(regionMaskDirectory, mpasMeshName) + + if not os.path.exists(regionMaskFile): + raise IOError('Regional masking file {} for MOC calculation ' + 'does not exist'.format(regionMaskFile)) iRegion = 0 self.dictRegion = {} for region in self.regionNames: print '\n Reading region and transect mask for ' \ '{}...'.format(region) - ncFileRegional = netCDF4.Dataset(regionMaskFiles, mode='r') + ncFileRegional = netCDF4.Dataset(regionMaskFile, mode='r') maxEdgesInTransect = \ ncFileRegional.dimensions['maxEdgesInTransect'].size transectEdgeMaskSigns = \ From f2cc77f14f8484fa94a759fa369d97aa403556e4 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 25 Aug 2017 21:40:22 +0200 Subject: [PATCH 44/47] Add task for plotting time series of Antarctic melt Plot of melt rate and total melt flux are performed for each chosen ice shelf or group of ice shelves. --- config.default | 11 + mpas_analysis/ocean/__init__.py | 1 + .../ocean/time_series_antarctic_melt.py | 238 ++++++++++++++++++ mpas_analysis/shared/constants/constants.py | 3 + run_analysis.py | 2 + 5 files changed, 255 insertions(+) create mode 100644 mpas_analysis/ocean/time_series_antarctic_melt.py diff --git a/config.default b/config.default index 89e9af2a7..53a138699 100644 --- a/config.default +++ b/config.default @@ -602,6 +602,17 @@ normArgsDifference = {'linthresh': 1., 'linscale': 0.5, 'vmin': -100., colorbarTicksDifference = [-100., -50., -20., -10., -5., -2., -1., 0., 1., 2., 5., 10., 20., 50., 100.] +[timeSeriesAntarcticMelt] +## options related to plotting time series of melt below Antarctic ice shelves + +# list of ice shelves to plot or ['all'] for all 106 ice shelves and regions. +# See "regionNames" in the ice shelf masks file in regionMaskDirectory for +# details. +iceShelvesToPlot = ['Antarctica'] + +# Number of months over which to compute moving average +movingAverageMonths = 1 + [climatologyMapSoseTemperature] ## options related to plotting climatology maps of Antarctic ## potential temperature at various levels, including the sea floor against diff --git a/mpas_analysis/ocean/__init__.py b/mpas_analysis/ocean/__init__.py index 3e3b4b911..42f63dbac 100644 --- a/mpas_analysis/ocean/__init__.py +++ b/mpas_analysis/ocean/__init__.py @@ -7,3 +7,4 @@ from index_nino34 import IndexNino34 from streamfunction_moc import StreamfunctionMOC from meridional_heat_transport import MeridionalHeatTransport +from time_series_antarctic_melt import TimeSeriesAntarcticMelt diff --git a/mpas_analysis/ocean/time_series_antarctic_melt.py b/mpas_analysis/ocean/time_series_antarctic_melt.py new file mode 100644 index 000000000..2b88858a5 --- /dev/null +++ b/mpas_analysis/ocean/time_series_antarctic_melt.py @@ -0,0 +1,238 @@ +import os +import xarray + +from ..shared.analysis_task import AnalysisTask + +from ..shared.constants import constants + +from ..shared.plot.plotting import timeseries_analysis_plot + +from ..shared.generalized_reader.generalized_reader \ + import open_multifile_dataset + +from ..shared.io.utility import build_config_full_path, make_directories + + +class TimeSeriesAntarcticMelt(AnalysisTask): + """ + Performs analysis of the time-series output of Antarctic sub-ice-shelf + melt rates. + + Authors + ------- + Xylar Asay-Davis + """ + + def __init__(self, config): # {{{ + """ + Construct the analysis task. + + Parameters, Milena Veneziani + ---------- + config : instance of MpasAnalysisConfigParser + Contains configuration options + + Authors + ------- + Xylar Asay-Davis + """ + # first, call the constructor from the base class (AnalysisTask) + super(TimeSeriesAntarcticMelt, self).__init__( + config=config, + taskName='timeSeriesAntarcticMelt', + componentName='ocean', + tags=['timeSeries', 'melt', 'landIceCavities']) + + # }}} + + def setup_and_check(self): # {{{ + """ + Perform steps to set up the analysis and check for errors in the setup. + + Raises + ------ + IOError + If files are not present + + Authors + ------- + Xylar Asay-Davis + """ + # first, call setup_and_check from the base class (AnalysisTask), + # which will perform some common setup, including storing: + # self.inDirectory, self.plotsDirectory, self.namelist, self.streams + # self.calendar + super(TimeSeriesAntarcticMelt, self).setup_and_check() + + self.check_analysis_enabled( + analysisOptionName='config_am_timeseriesstatsmonthly_enable', + raiseException=True) + + config = self.config + + landIceFluxMode = self.namelist.get('config_land_ice_flux_mode') + if landIceFluxMode not in ['standalone', 'coupled']: + raise ValueError('*** timeSeriesAntarcticMelt requires ' + 'config_land_ice_flux_mode \n' + ' to be standalone or coupled. Otherwise, no ' + 'melt rates are available \n' + ' for plotting.') + + mpasMeshName = config.get('input', 'mpasMeshName') + regionMaskDirectory = config.get('regions', 'regionMaskDirectory') + + self.regionMaskFileName = '{}/{}_iceShelfMasks.nc'.format( + regionMaskDirectory, mpasMeshName) + + if not os.path.exists(self.regionMaskFileName): + raise IOError('Regional masking file {} for Antarctica melt-rate ' + 'calculation does not exist'.format( + self.regionMaskFileName)) + + # Load mesh related variables + try: + self.restartFileName = self.runStreams.readpath('restart')[0] + except ValueError: + raise IOError('No MPAS-O restart file found: need at least one ' + 'restart file for Antarctic melt calculations') + + # get a list of timeSeriesStats output files from the streams file, + # reading only those that are between the start and end dates + streamName = self.historyStreams.find_stream( + self.streamMap['timeSeriesStats']) + self.startDate = config.get('timeSeries', 'startDate') + self.endDate = config.get('timeSeries', 'endDate') + self.inputFiles = \ + self.historyStreams.readpath(streamName, + startDate=self.startDate, + endDate=self.endDate, + calendar=self.calendar) + + if len(self.inputFiles) == 0: + raise IOError('No files were found in stream {} between {} and ' + '{}.'.format(streamName, self.startDate, + self.endDate)) + + return # }}} + + def run(self): # {{{ + """ + Performs analysis of the time-series output of Antarctic sub-ice-shelf + melt rates. + + Authors + ------- + Xylar Asay-Davis + """ + + print "\nPlotting Antarctic melt rate time series..." + + print ' Load melt rate data...' + + config = self.config + calendar = self.calendar + + print '\n Reading files:\n' \ + ' {} through\n {}'.format( + os.path.basename(self.inputFiles[0]), + os.path.basename(self.inputFiles[-1])) + + # Load data: + variableList = ['timeMonthly_avg_landIceFreshwaterFlux'] + timeVariableName = ['xtime_startMonthly', 'xtime_endMonthly'] + ds = open_multifile_dataset(fileNames=self.inputFiles, + calendar=calendar, + config=config, + timeVariableName=timeVariableName, + variableList=variableList, + startDate=self.startDate, + endDate=self.endDate) + + freshwaterFlux = ds.timeMonthly_avg_landIceFreshwaterFlux + + movingAverageMonths = config.getint('timeSeriesAntarcticMelt', + 'movingAverageMonths') + + iceShelvesToPlot = config.getExpression('timeSeriesAntarcticMelt', + 'iceShelvesToPlot') + + dsRestart = xarray.open_dataset(self.restartFileName) + areaCell = dsRestart.areaCell + + dsRegionMask = xarray.open_dataset(self.regionMaskFileName) + regionNames = list(dsRegionMask.regionNames.values) + nRegions = dsRegionMask.dims['nRegions'] + + if 'all' in iceShelvesToPlot: + iceShelvesToPlot = regionNames + regionIndices = [iRegion for iRegion in range(nRegions)] + else: + regionIndices = [] + for regionName in iceShelvesToPlot: + if regionName not in regionNames: + raise ValueError('Unknown ice shelf name {}'.format( + regionName)) + + iRegion = regionNames.index(regionName) + regionIndices.append(iRegion) + + # select only those regions we want to plot + dsRegionMask = dsRegionMask.isel(nRegions=regionIndices) + cellMasks = dsRegionMask.regionCellMasks + nRegions = dsRegionMask.dims['nRegions'] + + # convert from kg/s to kg/yr + totalMeltFlux = constants.sec_per_year * \ + (cellMasks*areaCell*freshwaterFlux).sum(dim='nCells') + + totalArea = (cellMasks*areaCell).sum(dim='nCells') + + # from kg/m^2/yr to m/yr + meltRates = (1./constants.rho_fw) * (totalMeltFlux/totalArea) + + # convert from kg/yr to GT/yr + totalMeltFlux /= constants.kg_per_GT + + outputDirectory = build_config_full_path(config, 'output', + 'timeseriesSubdirectory') + + make_directories(outputDirectory) + + print ' Make plots...' + for iRegion in range(nRegions): + regionName = iceShelvesToPlot[iRegion] + + title = regionName.replace('_', ' ') + + regionName = regionName.replace(' ', '_') + + xLabel = 'Time (yr)' + yLabel = 'Melt Flux (GT/yr)' + + timeSeries = totalMeltFlux.isel(nRegions=iRegion) + + figureName = '{}/melt_flux_{}.png'.format(self.plotsDirectory, + regionName) + + timeseries_analysis_plot(config, [timeSeries], movingAverageMonths, + title, xLabel, yLabel, figureName, + lineStyles=['b-'], lineWidths=[1.2], + calendar=calendar) + + xLabel = 'Time (yr)' + yLabel = 'Melt Rate (m/yr)' + + timeSeries = meltRates.isel(nRegions=iRegion) + + figureName = '{}/melt_rate_{}.png'.format(self.plotsDirectory, + regionName) + + timeseries_analysis_plot(config, [timeSeries], movingAverageMonths, + title, xLabel, yLabel, figureName, + lineStyles=['b-'], lineWidths=[1.2], + calendar=calendar) + # }}} + +# }}} + +# vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/mpas_analysis/shared/constants/constants.py b/mpas_analysis/shared/constants/constants.py index f91df8cb8..5d81503c3 100644 --- a/mpas_analysis/shared/constants/constants.py +++ b/mpas_analysis/shared/constants/constants.py @@ -58,4 +58,7 @@ # density of freshwater (kg/m^3) rho_fw = 1000. +# kilograms per gigatonne +kg_per_GT = 1e12 + # vim: foldmethod=marker ai ts=4 sts=4 et sw=4 ft=python diff --git a/run_analysis.py b/run_analysis.py index 224c6da50..57d04ed09 100755 --- a/run_analysis.py +++ b/run_analysis.py @@ -57,6 +57,8 @@ def build_analysis_list(config, isSubtask): # {{{ analyses.extend(ocean.ClimatologyMapSST.create_tasks(config)) analyses.extend(ocean.ClimatologyMapMLD.create_tasks(config)) analyses.extend(ocean.ClimatologyMapSSS.create_tasks(config)) + + analyses.extend(ocean.TimeSeriesAntarcticMelt.create_tasks(config)) analyses.extend(ocean.ClimatologyMapMeltAntarctic.create_tasks(config)) analyses.extend(ocean.ClimatologyMapSoseTemperature.create_tasks(config)) analyses.extend(ocean.ClimatologyMapSoseSalinity.create_tasks(config)) From c935f4991af7d706a81d2640d26178c811cf1ef6 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 25 Aug 2017 22:24:30 +0200 Subject: [PATCH 45/47] Add script for preprocessing ice-shelf masks This script requires a mesh file, the iceShelves.geojson file produced in the geometric_features repo, and the MpasMaskCreator.x from the MPAs-Tools repo. --- preprocess_masks/make_ice_shelf_masks.py | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 preprocess_masks/make_ice_shelf_masks.py diff --git a/preprocess_masks/make_ice_shelf_masks.py b/preprocess_masks/make_ice_shelf_masks.py new file mode 100755 index 000000000..4e4136506 --- /dev/null +++ b/preprocess_masks/make_ice_shelf_masks.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +''' +Make a mask file for a given mesh from ice-shelf geometric features. + +The -m flag is used to specify the name of the ACME mesh to which the +masks should be applied. + +Requires: + * a local link to the MPAS mask creator MpasMaskCreator.x + * a local link to a mesh file named _mesh.nc describing the + desired mesh + * the region file iceShelves.geojson produced by running + ./driver_scripts/setup_ice_shelves.py in the geometric_features repo + +Produces: + * _iceShelfMasks.nc, the mask file + +Author: Xylar Asay-Davis +''' + +import subprocess +import argparse + + +parser = \ + argparse.ArgumentParser(description=__doc__, + formatter_class=argparse.RawTextHelpFormatter) +parser.add_argument('-m', '--mesh_name', dest='mesh_name', + help='The ACME name of the mesh', metavar='MESH_NAME', + required=True) +args = parser.parse_args() + +meshFileName = '{}_mesh.nc'.format(args.mesh_name) +maskFileName = '{}_iceShelfMasks.nc'.format(args.mesh_name) +regionFileName = 'iceShelves.geojson' + +tempRegionMaskFile = 'tempRegionMasks.nc' +subprocess.check_call(['./MpasMaskCreator.x', meshFileName, maskFileName, + '-f', regionFileName]) From c12f276fc04c8cd1dad4a399e930b97a080e777d Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Fri, 25 Aug 2017 15:23:15 -0700 Subject: [PATCH 46/47] Update Edison config files for ice-shelf runs These now point to the correct mask directory and have also had a list of major ice shelves and regions added to the melt time series plots. --- .../edison/config.20170625.beta1.g60to30_SSSrestore | 10 ++++++++-- .../edison/config.20170817.beta1.B_low_res_ice_shelves | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/configs/edison/config.20170625.beta1.g60to30_SSSrestore b/configs/edison/config.20170625.beta1.g60to30_SSSrestore index c0ad55a77..c22075223 100644 --- a/configs/edison/config.20170625.beta1.g60to30_SSSrestore +++ b/configs/edison/config.20170625.beta1.g60to30_SSSrestore @@ -151,8 +151,9 @@ polarPlot = False ## circulation (MOC) maxChunkSize = 1000 -# Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30v3wLI_SingleRegionAtlanticWTransportTransects_masks.nc +[regions] +# Directory containing mask files for ocean basins and ice shelves +regionMaskDirectory = /global/project/projectdirs/acme/mpas_analysis/region_masks [climatologyMapSoseTemperature] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, @@ -171,3 +172,8 @@ seasons = ['JFM', 'JAS', 'ANN'] # list of depths in meters (positive up) at which to analyze, 'bot' for the # bottom of the ocean depths = [0, -200, -400, -600, -800, 'bot'] + +[timeSeriesAntarcticMelt] +# a list of ice shelves to plot +iceShelvesToPlot = ['Antarctica', 'Peninsula', 'West Antarctica', 'East Antarctica', 'Larsen_C', 'Filchner-Ronne', 'Brunt_Stancomb', 'Fimbul', 'Amery', 'Totten', 'Ross', 'Getz', 'Thwaites', 'Pine_Island', 'Abbot', 'George_VI'] + diff --git a/configs/edison/config.20170817.beta1.B_low_res_ice_shelves b/configs/edison/config.20170817.beta1.B_low_res_ice_shelves index bde43b15b..7cff09196 100644 --- a/configs/edison/config.20170817.beta1.B_low_res_ice_shelves +++ b/configs/edison/config.20170817.beta1.B_low_res_ice_shelves @@ -151,8 +151,9 @@ polarPlot = False ## circulation (MOC) maxChunkSize = 1000 -# Mask file for ocean basin regional computation -regionMaskFiles = /global/project/projectdirs/acme/mpas_analysis/region_masks/oEC60to30v3wLI_SingleRegionAtlanticWTransportTransects_masks.nc +[regions] +# Directory containing mask files for ocean basins and ice shelves +regionMaskDirectory = /global/project/projectdirs/acme/mpas_analysis/region_masks [climatologyMapSoseTemperature] # Times for comparison times (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, @@ -171,3 +172,8 @@ seasons = ['JFM', 'JAS', 'ANN'] # list of depths in meters (positive up) at which to analyze, 'bot' for the # bottom of the ocean depths = [0, -200, -400, -600, -800, 'bot'] + +[timeSeriesAntarcticMelt] +# a list of ice shelves to plot +iceShelvesToPlot = ['Antarctica', 'Peninsula', 'West Antarctica', 'East Antarctica', 'Larsen_C', 'Filchner-Ronne', 'Brunt_Stancomb', 'Fimbul', 'Amery', 'Totten', 'Ross', 'Getz', 'Thwaites', 'Pine_Island', 'Abbot', 'George_VI'] + From 61548ec9513c8bd007ab5cb2ddee4489b142f49f Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Wed, 30 Aug 2017 18:04:06 +0200 Subject: [PATCH 47/47] Add landIceFraction to area used in melt time series --- mpas_analysis/ocean/time_series_antarctic_melt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpas_analysis/ocean/time_series_antarctic_melt.py b/mpas_analysis/ocean/time_series_antarctic_melt.py index 2b88858a5..72e854561 100644 --- a/mpas_analysis/ocean/time_series_antarctic_melt.py +++ b/mpas_analysis/ocean/time_series_antarctic_melt.py @@ -157,7 +157,7 @@ def run(self): # {{{ 'iceShelvesToPlot') dsRestart = xarray.open_dataset(self.restartFileName) - areaCell = dsRestart.areaCell + areaCell = dsRestart.landIceFraction.isel(Time=0)*dsRestart.areaCell dsRegionMask = xarray.open_dataset(self.regionMaskFileName) regionNames = list(dsRegionMask.regionNames.values)

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