From f05cb68bc2309755a3cf0834e329978209db38d8 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sat, 15 Apr 2023 10:33:05 +0530 Subject: [PATCH 01/32] Reformated some 'if statements' to make them more simpler with less amount of code. --- gprMax/waveforms.py | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/gprMax/waveforms.py b/gprMax/waveforms.py index 501778a3..1ab54a8a 100644 --- a/gprMax/waveforms.py +++ b/gprMax/waveforms.py @@ -54,18 +54,21 @@ class Waveform: waveforms. """ - if (self.type == 'gaussian' or self.type == 'gaussiandot' or - self.type == 'gaussiandotnorm' or self.type == 'gaussianprime' or - self.type == 'gaussiandoubleprime'): + if self.type in [ + 'gaussian', + 'gaussiandot', + 'gaussiandotnorm', + 'gaussianprime', + 'gaussiandoubleprime', + ]: self.chi = 1 / self.freq self.zeta = 2 * np.pi**2 * self.freq**2 - elif (self.type == 'gaussiandotdot' or - self.type == 'gaussiandotdotnorm' or self.type == 'ricker'): + elif self.type in ['gaussiandotdot', 'gaussiandotdotnorm', 'ricker']: self.chi = np.sqrt(2) / self.freq self.zeta = np.pi**2 * self.freq**2 def calculate_value(self, time, dt): - """Calculates value of the waveform at a specific time. + """Calculates the value of the waveform at a specific time. Args: time: float for absolute time. @@ -82,7 +85,7 @@ class Waveform: delay = time - self.chi ampvalue = np.exp(-self.zeta * delay**2) - elif self.type == 'gaussiandot' or self.type == 'gaussianprime': + elif self.type in ['gaussiandot', 'gaussianprime']: delay = time - self.chi ampvalue = -2 * self.zeta * delay * np.exp(-self.zeta * delay**2) @@ -91,7 +94,7 @@ class Waveform: normalise = np.sqrt(np.exp(1) / (2 * self.zeta)) ampvalue = -2 * self.zeta * delay * np.exp(-self.zeta * delay**2) * normalise - elif self.type == 'gaussiandotdot' or self.type == 'gaussiandoubleprime': + elif self.type in ['gaussiandotdot', 'gaussiandoubleprime']: delay = time - self.chi ampvalue = (2 * self.zeta * (2 * self.zeta * delay**2 - 1) * np.exp(-self.zeta * delay**2)) @@ -116,17 +119,12 @@ class Waveform: elif self.type == 'contsine': rampamp = 0.25 ramp = rampamp * time * self.freq - if ramp > 1: - ramp = 1 + ramp = min(ramp, 1) ampvalue = ramp * np.sin(2 * np.pi * self.freq * time) elif self.type == 'impulse': # time < dt condition required to do impulsive magnetic dipole - if time == 0 or time < dt: - ampvalue = 1 - elif time >= dt: - ampvalue = 0 - + ampvalue = 1 if time == 0 or time < dt else 0 elif self.type == 'user': ampvalue = self.userfunc(time) From 9dbf795356ca578e762e3a7261e3526f3630c2a3 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sat, 15 Apr 2023 11:06:45 +0530 Subject: [PATCH 02/32] Used f-strings to make the code in cmds_singleuse.py file more cleaner and readable. --- gprMax/cmds_singleuse.py | 74 ++++++++++++++++++++++++---------------- gprMax/waveforms.py | 9 ++++- 2 files changed, 53 insertions(+), 30 deletions(-) diff --git a/gprMax/cmds_singleuse.py b/gprMax/cmds_singleuse.py index 2a38beb6..debc4e61 100644 --- a/gprMax/cmds_singleuse.py +++ b/gprMax/cmds_singleuse.py @@ -93,20 +93,23 @@ class Discretisation(UserObjectSingle): G.dl = np.array(self.kwargs['p1']) G.dx, G.dy, G.dz = self.kwargs['p1'] except KeyError: - logger.exception(self.__str__() + ' discretisation requires a point') + logger.exception(f'{self.__str__()} discretisation requires a point') raise if G.dl[0] <= 0: - logger.exception(self.__str__() + ' discretisation requires the ' + - 'x-direction spatial step to be greater than zero') + logger.exception( + f'{self.__str__()} discretisation requires the x-direction spatial step to be greater than zero' + ) raise ValueError if G.dl[1] <= 0: - logger.exception(self.__str__() + ' discretisation requires the ' + - 'y-direction spatial step to be greater than zero') + logger.exception( + f'{self.__str__()} discretisation requires the y-direction spatial step to be greater than zero' + ) raise ValueError if G.dl[2] <= 0: - logger.exception(self.__str__() + ' discretisation requires the ' + - 'z-direction spatial step to be greater than zero') + logger.exception( + f'{self.__str__()} discretisation requires the z-direction spatial step to be greater than zero' + ) raise ValueError logger.info(f'Spatial discretisation: {G.dl[0]:g} x {G.dl[1]:g} x {G.dl[2]:g}m') @@ -127,11 +130,13 @@ class Domain(UserObjectSingle): try: G.nx, G.ny, G.nz = uip.discretise_point(self.kwargs['p1']) except KeyError: - logger.exception(self.__str__() + ' please specify a point') + logger.exception(f'{self.__str__()} please specify a point') raise if G.nx == 0 or G.ny == 0 or G.nz == 0: - logger.exception(self.__str__() + ' requires at least one cell in every dimension') + logger.exception( + f'{self.__str__()} requires at least one cell in every dimension' + ) raise ValueError logger.info(f"Domain size: {self.kwargs['p1'][0]:g} x {self.kwargs['p1'][1]:g} x " + @@ -181,12 +186,13 @@ class TimeStepStabilityFactor(UserObjectSingle): try: f = self.kwargs['f'] except KeyError: - logger.exception(self.__str__() + ' requires exactly one parameter') + logger.exception(f'{self.__str__()} requires exactly one parameter') raise if f <= 0 or f > 1: - logger.exception(self.__str__() + ' requires the value of the time ' + - 'step stability factor to be between zero and one') + logger.exception( + f'{self.__str__()} requires the value of the time step stability factor to be between zero and one' + ) raise ValueError G.dt = G.dt * f @@ -250,12 +256,14 @@ class OMPThreads(UserObjectSingle): try: n = self.kwargs['n'] except KeyError: - logger.exception(self.__str__() + ' requires exactly one parameter ' + - 'to specify the number of CPU OpenMP threads to use') + logger.exception( + f'{self.__str__()} requires exactly one parameter to specify the number of CPU OpenMP threads to use' + ) raise if n < 1: - logger.exception(self.__str__() + ' requires the value to be an ' + - 'integer not less than one') + logger.exception( + f'{self.__str__()} requires the value to be an integer not less than one' + ) raise ValueError config.get_model_config().ompthreads = set_omp_threads(n) @@ -302,7 +310,7 @@ class PMLProps(UserObjectSingle): G.pmls['thickness']['ymax'] = int(self.kwargs['ymax']) G.pmls['thickness']['zmax'] = int(self.kwargs['zmax']) except KeyError: - logger.exception(self.__str__() + ' requires either one or six parameter(s)') + logger.exception(f'{self.__str__()} requires either one or six parameter(s)') raise if (2 * G.pmls['thickness']['x0'] >= G.nx or @@ -311,8 +319,8 @@ class PMLProps(UserObjectSingle): 2 * G.pmls['thickness']['xmax'] >= G.nx or 2 * G.pmls['thickness']['ymax'] >= G.ny or 2 * G.pmls['thickness']['zmax'] >= G.nz): - logger.exception(self.__str__() + ' has too many cells for the domain size') - raise ValueError + logger.exception(f'{self.__str__()} has too many cells for the domain size') + raise ValueError class SrcSteps(UserObjectSingle): @@ -330,12 +338,16 @@ class SrcSteps(UserObjectSingle): try: G.srcsteps = uip.discretise_point(self.kwargs['p1']) except KeyError: - logger.exception(self.__str__() + ' requires exactly three parameters') + logger.exception(f'{self.__str__()} requires exactly three parameters') raise - logger.info(f'Simple sources will step {G.srcsteps[0] * G.dx:g}m, ' + - f'{G.srcsteps[1] * G.dy:g}m, {G.srcsteps[2] * G.dz:g}m ' + - f'for each model run.') + logger.info( + ( + f'Simple sources will step {G.srcsteps[0] * G.dx:g}m, ' + + f'{G.srcsteps[1] * G.dy:g}m, {G.srcsteps[2] * G.dz:g}m ' + + 'for each model run.' + ) + ) class RxSteps(UserObjectSingle): @@ -353,12 +365,16 @@ class RxSteps(UserObjectSingle): try: G.rxsteps = uip.discretise_point(self.kwargs['p1']) except KeyError: - logger.exception(self.__str__() + ' requires exactly three parameters') + logger.exception(f'{self.__str__()} requires exactly three parameters') raise - logger.info(f'All receivers will step {G.rxsteps[0] * G.dx:g}m, ' + - f'{G.rxsteps[1] * G.dy:g}m, {G.rxsteps[2] * G.dz:g}m ' + - f'for each model run.') + logger.info( + ( + f'All receivers will step {G.rxsteps[0] * G.dx:g}m, ' + + f'{G.rxsteps[1] * G.dy:g}m, {G.rxsteps[2] * G.dz:g}m ' + + 'for each model run.' + ) + ) class ExcitationFile(UserObjectSingle): @@ -378,7 +394,7 @@ class ExcitationFile(UserObjectSingle): def create(self, G, uip): try: - kwargs = dict() + kwargs = {} excitationfile = self.kwargs['filepath'] kwargs['kind'] = self.kwargs['kind'] kwargs['fill_value'] = self.kwargs['fill_value'] @@ -389,7 +405,7 @@ class ExcitationFile(UserObjectSingle): args, varargs, keywords, defaults = inspect.getargspec(interpolate.interp1d) kwargs = dict(zip(reversed(args), reversed(defaults))) except KeyError: - logger.exception(self.__str__() + ' requires either one or three parameter(s)') + logger.exception(f'{self.__str__()} requires either one or three parameter(s)') raise # See if file exists at specified path and if not try input file directory diff --git a/gprMax/waveforms.py b/gprMax/waveforms.py index 1ab54a8a..b6fbfeca 100644 --- a/gprMax/waveforms.py +++ b/gprMax/waveforms.py @@ -53,6 +53,8 @@ class Waveform: """Calculates coefficients (used to calculate values) for specific waveforms. """ + if self.freq is None: + raise ValueError("Frequency is not specified") if self.type in [ 'gaussian', @@ -120,11 +122,16 @@ class Waveform: rampamp = 0.25 ramp = rampamp * time * self.freq ramp = min(ramp, 1) + ampvalue = ramp * np.sin(2 * np.pi * self.freq * time) elif self.type == 'impulse': # time < dt condition required to do impulsive magnetic dipole - ampvalue = 1 if time == 0 or time < dt else 0 + if time == 0 or time < dt: + ampvalue = 1 + elif time >= dt: + ampvalue = 0 + elif self.type == 'user': ampvalue = self.userfunc(time) From 740ddb06ed7384e674bdab12901b94640a4fcd9e Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sat, 15 Apr 2023 11:26:38 +0530 Subject: [PATCH 03/32] Used f-strings to make the code in cmds_multiuse.py much better --- gprMax/cmds_multiuse.py | 130 +++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 68 deletions(-) diff --git a/gprMax/cmds_multiuse.py b/gprMax/cmds_multiuse.py index 7a5f639c..ae7736c6 100644 --- a/gprMax/cmds_multiuse.py +++ b/gprMax/cmds_multiuse.py @@ -59,9 +59,9 @@ class UserObjectMulti: """Readable user string as per hash commands.""" s = '' for _, v in self.kwargs.items(): - if isinstance(v, tuple) or isinstance(v, list): + if isinstance(v, (tuple, list)): v = ' '.join([str(el) for el in v]) - s += str(v) + ' ' + s += f'{str(v)} ' return f'{self.hash}: {s[:-1]}' @@ -75,7 +75,7 @@ class UserObjectMulti: def params_str(self): """Readable string of parameters given to object.""" - return self.hash + ': ' + str(self.kwargs) + return f'{self.hash}: {str(self.kwargs)}' def grid_name(self, grid): """Returns subgrid name for use with logging info. Returns an empty @@ -112,12 +112,14 @@ class Waveform(UserObjectMulti): try: wavetype = self.kwargs['wave_type'].lower() except KeyError: - logger.exception(self.params_str() + (f" must have one of the " - f"following types {','.join(WaveformUser.types)}.")) + logger.exception( + f"{self.params_str()} must have one of the following types {','.join(WaveformUser.types)}." + ) raise if wavetype not in WaveformUser.types: - logger.exception(self.params_str() + (f" must have one of the " - f"following types {','.join(WaveformUser.types)}.")) + logger.exception( + f"{self.params_str()} must have one of the following types {','.join(WaveformUser.types)}." + ) raise ValueError if wavetype != 'user': @@ -815,16 +817,14 @@ class Rx(UserObjectMulti): outputs = [self.kwargs['outputs']] except KeyError: # If no ID or outputs are specified, use default - r.ID = (r.__class__.__name__ + '(' + str(r.xcoord) + ',' + - str(r.ycoord) + ',' + str(r.zcoord) + ')') + r.ID = f'{r.__class__.__name__}({str(r.xcoord)},{str(r.ycoord)},{str(r.zcoord)})' for key in RxUser.defaultoutputs: r.outputs[key] = np.zeros(grid.iterations, dtype=config.sim_config.dtypes['float_or_double']) else: outputs.sort() # Get allowable outputs - if (config.sim_config.general['solver'] =='cuda' or - config.sim_config.general['solver'] =='opencl'): + if config.sim_config.general['solver'] in ['cuda', 'opencl']: allowableoutputs = RxUser.allowableoutputs_dev else: allowableoutputs = RxUser.allowableoutputs @@ -834,15 +834,14 @@ class Rx(UserObjectMulti): r.outputs[field] = np.zeros(grid.iterations, dtype=config.sim_config.dtypes['float_or_double']) else: - logger.exception(self.params_str() + ' contains an ' - 'output type that is not allowable. ' - 'Allowable outputs in current context are ' - f'{allowableoutputs}.') + logger.exception( + f'{self.params_str()} contains an output type that is not allowable. Allowable outputs in current context are {allowableoutputs}.' + ) raise ValueError - logger.info(self.grid_name(grid) + f"Receiver at {p2[0]:g}m, " - f"{p2[1]:g}m, {p2[2]:g}m with output component(s) " - f"{', '.join(r.outputs)} created.") + logger.info( + f"{self.grid_name(grid)}Receiver at {p2[0]:g}m, {p2[1]:g}m, {p2[2]:g}m with output component(s) {', '.join(r.outputs)} created." + ) grid.rxs.append(r) @@ -909,10 +908,9 @@ class RxArray(UserObjectMulti): 'not be less than the spatial discretisation.') raise ValueError - logger.info(self.grid_name(grid) + f'Receiver array {p3[0]:g}m, ' - f'{p3[1]:g}m, {p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, ' - f'{p4[2]:g}m with steps {dx * grid.dx:g}m, ' - f'{dy * grid.dy:g}m, {dz * grid.dz:g}m') + logger.info( + f'{self.grid_name(grid)}Receiver array {p3[0]:g}m, {p3[1]:g}m, {p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m with steps {dx * grid.dx:g}m, {dy * grid.dy:g}m, {dz * grid.dz:g}m' + ) for x in range(xs, xf + 1, dx): for y in range(ys, yf + 1, dy): @@ -928,8 +926,7 @@ class RxArray(UserObjectMulti): p5 = np.array([x, y, z]) p5 = uip.descretised_to_continuous(p5) p5 = uip.round_to_grid_static_point(p5) - r.ID = (r.__class__.__name__ + '(' + str(x) + ',' + - str(y) + ',' + str(z) + ')') + r.ID = f'{r.__class__.__name__}({str(x)},{str(y)},{str(z)})' for key in RxUser.defaultoutputs: r.outputs[key] = np.zeros(grid.iterations, dtype=config.sim_config.dtypes['float_or_double']) logger.info(f" Receiver at {p5[0]:g}m, {p5[1]:g}m, " @@ -984,7 +981,7 @@ class Snapshot(UserObjectMulti): p4 = uip.round_to_grid_static_point(p2) p1, p2 = uip.check_box_points(p1, p2, self.params_str()) except ValueError: - logger.exception(self.params_str() + ' point is outside the domain.') + logger.exception(f'{self.params_str()} point is outside the domain.') raise xs, ys, zs = p1 xf, yf, zf = p2 @@ -1025,10 +1022,9 @@ class Snapshot(UserObjectMulti): # Check and set output names for output in tmp: if output not in SnapshotUser.allowableoutputs.keys(): - logger.exception(self.params_str() + " contains an " - "output type that is not allowable. " - "Allowable outputs in current context are " - f"{', '.join(SnapshotUser.allowableoutputs.keys())}.") + logger.exception( + f"{self.params_str()} contains an output type that is not allowable. Allowable outputs in current context are {', '.join(SnapshotUser.allowableoutputs.keys())}." + ) raise ValueError else: outputs[output] = True @@ -1045,7 +1041,7 @@ class Snapshot(UserObjectMulti): 'be less than the spatial discretisation.') raise ValueError if iterations <= 0 or iterations > grid.iterations: - logger.exception(self.params_str() + ' time value is not valid.') + logger.exception(f'{self.params_str()} time value is not valid.') raise ValueError s = SnapshotUser(xs, ys, zs, xf, yf, zf, dx, dy, dz, iterations, @@ -1086,39 +1082,40 @@ class Material(UserObjectMulti): sm = self.kwargs['sm'] material_id = self.kwargs['id'] except KeyError: - logger.exception(self.params_str() + ' requires exactly five ' - 'parameters.') + logger.exception(f'{self.params_str()} requires exactly five parameters.') raise if er < 1: - logger.exception(self.params_str() + ' requires a positive value ' - 'of one or greater for static (DC) permittivity.') + logger.exception( + f'{self.params_str()} requires a positive value of one or greater for static (DC) permittivity.' + ) raise ValueError if se != 'inf': se = float(se) if se < 0: - logger.exception(self.params_str() + ' requires a positive ' - 'value for electric conductivity.') + logger.exception( + f'{self.params_str()} requires a positive value for electric conductivity.' + ) raise ValueError else: se = float('inf') if mr < 1: - logger.exception(self.params_str() + ' requires a positive value ' - 'of one or greater for magnetic permeability.') + logger.exception( + f'{self.params_str()} requires a positive value of one or greater for magnetic permeability.' + ) raise ValueError if sm < 0: - logger.exception(self.params_str() + ' requires a positive value ' - 'for magnetic loss.') + logger.exception( + f'{self.params_str()} requires a positive value for magnetic loss.' + ) raise ValueError if any(x.ID == material_id for x in grid.materials): - logger.exception(self.params_str() + f' with ID {material_id} ' - 'already exists') + logger.exception(f'{self.params_str()} with ID {material_id} already exists') raise ValueError # Create a new instance of the Material class material # (start index after pec & free_space) m = MaterialUser(len(grid.materials), material_id) - m.er = er m.se = se m.mr = mr m.sm = sm @@ -1127,9 +1124,10 @@ class Material(UserObjectMulti): if m.se == float('inf'): m.averagable = False - logger.info(self.grid_name(grid) + f'Material {m.ID} with ' - f'eps_r={m.er:g}, sigma={m.se:g} S/m; mu_r={m.mr:g}, ' - f'sigma*={m.sm:g} Ohm/m created.') + m.er = er + logger.info( + f'{self.grid_name(grid)}Material {m.ID} with eps_r={m.er:g}, sigma={m.se:g} S/m; mu_r={m.mr:g}, sigma*={m.sm:g} Ohm/m created.' + ) grid.materials.append(m) @@ -1174,8 +1172,7 @@ class AddDebyeDispersion(UserObjectMulti): if len(materials) != len(material_ids): notfound = [x for x in material_ids if x not in materials] - logger.exception(self.params_str() + f' material(s) {notfound} do ' - 'not exist') + logger.exception(f'{self.params_str()} material(s) {notfound} do not exist') raise ValueError for material in materials: @@ -1187,7 +1184,7 @@ class AddDebyeDispersion(UserObjectMulti): disp_material.type = 'debye' disp_material.poles = poles disp_material.averagable = False - for i in range(0, poles): + for i in range(poles): if tau[i] > 0: logger.debug('Not checking if relaxation times are ' 'greater than time-step.') @@ -1203,9 +1200,9 @@ class AddDebyeDispersion(UserObjectMulti): # Replace original material with newly created DispersiveMaterial grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] - logger.info(self.grid_name(grid) + f"Debye disperion added to {disp_material.ID} " - f"with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, " - f"and tau={', '.join('%4.3e' % tau for tau in disp_material.tau)} secs created.") + logger.info( + f"{self.grid_name(grid)}Debye disperion added to {disp_material.ID} with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, and tau={', '.join('%4.3e' % tau for tau in disp_material.tau)} secs created." + ) class AddLorentzDispersion(UserObjectMulti): @@ -1250,8 +1247,7 @@ class AddLorentzDispersion(UserObjectMulti): if len(materials) != len(material_ids): notfound = [x for x in material_ids if x not in materials] - logger.exception(self.params_str() + f' material(s) {notfound} do ' - 'not exist') + logger.exception(f'{self.params_str()} material(s) {notfound} do not exist') raise ValueError for material in materials: @@ -1263,7 +1259,7 @@ class AddLorentzDispersion(UserObjectMulti): disp_material.type = 'lorentz' disp_material.poles = poles disp_material.averagable = False - for i in range(0, poles): + for i in range(poles): if er_delta[i] > 0 and omega[i] > grid.dt and delta[i] > grid.dt: disp_material.deltaer.append(er_delta[i]) disp_material.tau.append(omega[i]) @@ -1281,10 +1277,9 @@ class AddLorentzDispersion(UserObjectMulti): # Replace original material with newly created DispersiveMaterial grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] - logger.info(self.grid_name(grid) + f"Lorentz disperion added to {disp_material.ID} " - f"with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, " - f"omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, " - f"and gamma={', '.join('%4.3e' % delta for delta in disp_material.alpha)} created.") + logger.info( + f"{self.grid_name(grid)}Lorentz disperion added to {disp_material.ID} with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, and gamma={', '.join('%4.3e' % delta for delta in disp_material.alpha)} created." + ) class AddDrudeDispersion(UserObjectMulti): @@ -1325,8 +1320,7 @@ class AddDrudeDispersion(UserObjectMulti): if len(materials) != len(material_ids): notfound = [x for x in material_ids if x not in materials] - logger.exception(self.params_str() + f' material(s) {notfound} do ' - 'not exist.') + logger.exception(f'{self.params_str()} material(s) {notfound} do not exist.') raise ValueError for material in materials: @@ -1338,7 +1332,7 @@ class AddDrudeDispersion(UserObjectMulti): disp_material.type = 'drude' disp_material.poles = poles disp_material.averagable = False - for i in range(0, poles): + for i in range(poles): if omega[i] > 0 and alpha[i] > grid.dt: disp_material.tau.append(omega[i]) disp_material.alpha.append(alpha[i]) @@ -1354,9 +1348,9 @@ class AddDrudeDispersion(UserObjectMulti): # Replace original material with newly created DispersiveMaterial grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] - logger.info(self.grid_name(grid) + f"Drude disperion added to {disp_material.ID} " - f"with omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, " - f"and gamma={', '.join('%4.3e' % alpha for alpha in disp_material.alpha)} secs created.") + logger.info( + f"{self.grid_name(grid)}Drude disperion added to {disp_material.ID} with omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, and gamma={', '.join('%4.3e' % alpha for alpha in disp_material.alpha)} secs created." + ) class SoilPeplinski(UserObjectMulti): @@ -1421,7 +1415,7 @@ class SoilPeplinski(UserObjectMulti): 'fraction.') raise ValueError if any(x.ID == ID for x in grid.mixingmodels): - logger.exception(self.params_str() + f' with ID {ID} already exists') + logger.exception(f'{self.params_str()} with ID {ID} already exists') raise ValueError # Create a new instance of the Material class material @@ -1491,7 +1485,7 @@ class GeometryView(UserObjectMulti): p4 = uip.round_to_grid_static_point(p2) p1, p2 = uip.check_box_points(p1, p2, self.params_str()) except ValueError: - logger.exception(self.params_str() + ' point is outside the domain.') + logger.exception(f'{self.params_str()} point is outside the domain.') raise xs, ys, zs = p1 xf, yf, zf = p2 @@ -1511,7 +1505,7 @@ class GeometryView(UserObjectMulti): logger.exception(self.params_str() + ' the step size should not ' 'be less than the spatial discretisation.') raise ValueError - if output_type != 'n' and output_type != 'f': + if output_type not in ['n', 'f']: logger.exception(self.params_str() + ' requires type to be either ' 'n (normal) or f (fine).') raise ValueError From d9175e8a5ee3d557efc32c3993d703832013b0f0 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sat, 15 Apr 2023 11:44:46 +0530 Subject: [PATCH 04/32] Merged the progressbars dictionary assignment with declaration to make the code cleaner. --- gprMax/config.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gprMax/config.py b/gprMax/config.py index c0544d24..5525b85b 100644 --- a/gprMax/config.py +++ b/gprMax/config.py @@ -225,13 +225,14 @@ class SimulationConfig: # subgrid: whether the simulation uses sub-grids. # precision: data type for electromagnetic field output (single/double). - self.general = {'solver': 'cpu', - 'subgrid': False, - 'precision': 'single'} - + self.general = { + 'solver': 'cpu', + 'subgrid': False, + 'precision': 'single', + 'progressbars': args.log_level <= 20, + } # Progress bars on stdoout or not - switch off progressbars when # logging level is greater than info (20) - self.general['progressbars'] = False if args.log_level > 20 else True self.em_consts = {'c': c, # Speed of light in free space (m/s) 'e0': e0, # Permittivity of free space (F/m) From a347b12c9e5e5e3241e8c990a51aaa97694c7f4e Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 00:46:37 +0530 Subject: [PATCH 05/32] Reformatted some code in 3 more files to make it more cleaner, and better. --- gprMax/geometry_outputs.py | 5 +---- gprMax/hash_cmds_file.py | 7 ++++--- gprMax/materials.py | 19 ++++++++++--------- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/gprMax/geometry_outputs.py b/gprMax/geometry_outputs.py index f93d30a9..471c0221 100644 --- a/gprMax/geometry_outputs.py +++ b/gprMax/geometry_outputs.py @@ -277,10 +277,7 @@ class Comments(): """ # Comments for Paraview macro - comments = {} - - comments['gprMax_version'] = __version__ - comments['dx_dy_dz'] = self.dx_dy_dz_comment() + comments = {'gprMax_version': __version__, 'dx_dy_dz': self.dx_dy_dz_comment()} comments['nx_ny_nz'] = self.nx_ny_nz_comment() # Write the name and numeric ID for each material diff --git a/gprMax/hash_cmds_file.py b/gprMax/hash_cmds_file.py index a50f26c7..4f554eb1 100644 --- a/gprMax/hash_cmds_file.py +++ b/gprMax/hash_cmds_file.py @@ -178,14 +178,15 @@ def write_processed_file(processedlines): for item in processedlines: f.write(f'{item}') - logger.info(f'Written input commands, after processing any Python code and ' + - f'include commands, to file: {processedfile}\n') + logger.info( + f'Written input commands, after processing any Python code and include commands, to file: {processedfile}\n' + ) def check_cmd_names(processedlines, checkessential=True): """Checks the validity of commands, i.e. are they gprMax commands, and that all essential commands are present. - + Args: processedlines: list of input commands after Python processing. checkessential: boolean to check for essential commands or not. diff --git a/gprMax/materials.py b/gprMax/materials.py index 51f5fb8b..95e07ba1 100644 --- a/gprMax/materials.py +++ b/gprMax/materials.py @@ -249,12 +249,13 @@ def process_materials(G): z += 3 # Construct information on material properties for printing table - materialtext = [] - materialtext.append(str(material.numID)) - materialtext.append(material.ID[:50] if len(material.ID) > 50 else material.ID) - materialtext.append(material.type) - materialtext.append(f'{material.er:g}') - materialtext.append(f'{material.se:g}') + materialtext = [ + str(material.numID), + material.ID[:50] if len(material.ID) > 50 else material.ID, + material.type, + f'{material.er:g}', + f'{material.se:g}', + ] if config.get_model_config().materials['maxpoles'] > 0: if 'debye' in material.type: materialtext.append('\n'.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) @@ -274,9 +275,9 @@ def process_materials(G): else: materialtext.extend(['', '', '', '', '']) - materialtext.append(f'{material.mr:g}') - materialtext.append(f'{material.sm:g}') - materialtext.append(material.averagable) + materialtext.extend( + (f'{material.mr:g}', f'{material.sm:g}', material.averagable) + ) materialsdata.append(materialtext) return materialsdata From e8271e1c1f0d7d4f756216304c5bb906d6d3850c Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 01:02:26 +0530 Subject: [PATCH 06/32] Updated some parts of the setup.py to make the code much better and cleaner. --- setup.py | 93 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/setup.py b/setup.py index 3f7d9c52..540b7c92 100644 --- a/setup.py +++ b/setup.py @@ -37,8 +37,9 @@ if sys.version_info[:2] < MIN_PYTHON_VERSION: # Importing gprMax _version__.py before building can cause issues. with open('gprMax/_version.py', 'r') as fd: - version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', - fd.read(), re.MULTILINE).group(1) + version = re.search( + r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE + )[1] def build_dispersive_material_templates(): """Function to generate Cython .pyx file for dispersive media update. @@ -46,7 +47,7 @@ def build_dispersive_material_templates(): functions. """ - iswin = True if sys.platform == 'win32' else False + iswin = (sys.platform == 'win32') env = Environment(loader = FileSystemLoader(os.path.join('gprMax', 'cython')), ) @@ -151,7 +152,7 @@ if 'cleanall' in sys.argv: print(f'Removed: {os.path.abspath(libfile)}') except OSError: print(f'Could not remove: {os.path.abspath(libfile)}') - + # Remove build, dist, egg and __pycache__ directories shutil.rmtree(Path.cwd().joinpath('build'), ignore_errors=True) shutil.rmtree(Path.cwd().joinpath('dist'), ignore_errors=True) @@ -163,7 +164,7 @@ if 'cleanall' in sys.argv: # Remove 'gprMax/cython/fields_updates_dispersive.jinja' if its there if os.path.isfile(cython_disp_file): os.remove(cython_disp_file) - + # Now do a normal clean sys.argv[1] = 'clean' # this is what distutils understands @@ -176,10 +177,6 @@ else: linker_args = [] libraries = [] - # Compiler options - macOS - needs gcc (usually via HomeBrew) because the - # default compiler LLVM (clang) does not - # support OpenMP. With gcc -fopenmp option - # implies -pthread elif sys.platform == 'darwin': # Check for Intel or Apple M series CPU cpuID = subprocess.check_output("sysctl -n machdep.cpu.brand_string", @@ -209,7 +206,7 @@ else: 'to be installed - easily done through the Homebrew package ' + 'manager (http://brew.sh). Note: gcc with OpenMP support ' + 'is required.') - + # Minimum supported macOS deployment target MIN_MACOS_VERSION = '10.13' try: @@ -219,12 +216,16 @@ else: pass os.environ['MIN_SUPPORTED_MACOSX_DEPLOYMENT_TARGET'] = MIN_MACOS_VERSION # Sometimes worth testing with '-fstrict-aliasing', '-fno-common' - compile_args = ['-O3', '-w', '-fopenmp', '-march=native', - '-mmacosx-version-min=' + MIN_MACOS_VERSION] - linker_args = ['-fopenmp', '-mmacosx-version-min=' + MIN_MACOS_VERSION] + compile_args = [ + '-O3', + '-w', + '-fopenmp', + '-march=native', + f'-mmacosx-version-min={MIN_MACOS_VERSION}', + ] + linker_args = ['-fopenmp', f'-mmacosx-version-min={MIN_MACOS_VERSION}'] libraries=['gomp'] - # Compiler options - Linux elif sys.platform == 'linux': compile_args = ['-O3', '-w', '-fopenmp', '-march=native'] linker_args = ['-fopenmp'] @@ -256,37 +257,43 @@ else: # Parse long_description from README.rst file. with open('README.rst','r') as fd: long_description = fd.read() - - setup(name='gprMax', - version=version, - author='Craig Warren, Antonis Giannopoulos, and John Hartley', - url='http://www.gprmax.com', - description='Electromagnetic Modelling Software based on the ' + - 'Finite-Difference Time-Domain (FDTD) method', - long_description=long_description, - long_description_content_type="text/x-rst", - license='GPLv3+', - python_requires='>' + str(MIN_PYTHON_VERSION[0]) + '.' + str(MIN_PYTHON_VERSION[1]), - install_requires=['colorama', - 'cython', - 'h5py', - 'jinja2', - 'matplotlib', - 'numpy', - 'psutil', - 'scipy', - 'terminaltables', - 'tqdm'], + + setup( + name='gprMax', + version=version, + author='Craig Warren, Antonis Giannopoulos, and John Hartley', + url='http://www.gprmax.com', + description='Electromagnetic Modelling Software based on the ' + + 'Finite-Difference Time-Domain (FDTD) method', + long_description=long_description, + long_description_content_type="text/x-rst", + license='GPLv3+', + python_requires=f'>{str(MIN_PYTHON_VERSION[0])}.{str(MIN_PYTHON_VERSION[1])}', + install_requires=[ + 'colorama', + 'cython', + 'h5py', + 'jinja2', + 'matplotlib', + 'numpy', + 'psutil', + 'scipy', + 'terminaltables', + 'tqdm', + ], ext_modules=extensions, packages=find_packages(), include_package_data=True, include_dirs=[np.get_include()], zip_safe=False, - classifiers=['Environment :: Console', - 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', - 'Operating System :: MacOS', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX :: Linux', - 'Programming Language :: Cython', - 'Programming Language :: Python :: 3', - 'Topic :: Scientific/Engineering']) + classifiers=[ + 'Environment :: Console', + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + 'Operating System :: MacOS', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Cython', + 'Programming Language :: Python :: 3', + 'Topic :: Scientific/Engineering', + ], + ) From e41449a923587312e67357ac7ab250b57d553947 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 11:03:47 +0530 Subject: [PATCH 07/32] Reformatted some code in 3 more files, used f-strings to make code better. --- gprMax/hash_cmds_singleuse.py | 26 +++++++++++++----------- gprMax/mpi.py | 34 +++++++++++++++---------------- gprMax/updates.py | 38 +++++++++++++++++++++-------------- 3 files changed, 54 insertions(+), 44 deletions(-) diff --git a/gprMax/hash_cmds_singleuse.py b/gprMax/hash_cmds_singleuse.py index 4ca0c223..89ee833d 100644 --- a/gprMax/hash_cmds_singleuse.py +++ b/gprMax/hash_cmds_singleuse.py @@ -55,8 +55,9 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = tuple(int(x) for x in singlecmds[cmd].split()) if len(tmp) != 1: - logger.exception(cmd + ' requires exactly one parameter to specify ' + - 'the number of CPU OpenMP threads to use') + logger.exception( + f'{cmd} requires exactly one parameter to specify the number of CPU OpenMP threads to use' + ) raise ValueError omp_threads = OMPThreads(n=tmp[0]) @@ -66,7 +67,7 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = [float(x) for x in singlecmds[cmd].split()] if len(tmp) != 3: - logger.exception(cmd + ' requires exactly three parameters') + logger.exception(f'{cmd} requires exactly three parameters') raise ValueError dl = (tmp[0], tmp[1], tmp[2]) @@ -77,7 +78,7 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = [float(x) for x in singlecmds[cmd].split()] if len(tmp) != 3: - logger.exception(cmd + ' requires exactly three parameters') + logger.exception(f'{cmd} requires exactly three parameters') raise ValueError p1 = (tmp[0], tmp[1], tmp[2]) @@ -94,8 +95,9 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = singlecmds[cmd].split() if len(tmp) != 1: - logger.exception(cmd + ' requires exactly one parameter to specify ' + - 'the time window. Either in seconds or number of iterations.') + logger.exception( + f'{cmd} requires exactly one parameter to specify the time window. Either in seconds or number of iterations.' + ) raise ValueError tmp = tmp[0].lower() @@ -113,8 +115,8 @@ def process_singlecmds(singlecmds): cmd = '#pml_cells' if singlecmds[cmd] is not None: tmp = singlecmds[cmd].split() - if len(tmp) != 1 and len(tmp) != 6: - logger.exception(cmd + ' requires either one or six parameter(s)') + if len(tmp) not in [1, 6]: + logger.exception(f'{cmd} requires either one or six parameter(s)') raise ValueError if len(tmp) == 1: pml_cells = PMLProps(thickness=int(tmp[0])) @@ -132,7 +134,7 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = singlecmds[cmd].split() if len(tmp) != 3: - logger.exception(cmd + ' requires exactly three parameters') + logger.exception(f'{cmd} requires exactly three parameters') raise ValueError p1 = (float(tmp[0]), float(tmp[1]), float(tmp[2])) @@ -143,7 +145,7 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = singlecmds[cmd].split() if len(tmp) != 3: - logger.exception(cmd + ' requires exactly three parameters') + logger.exception(f'{cmd} requires exactly three parameters') raise ValueError p1 = (float(tmp[0]), float(tmp[1]), float(tmp[2])) @@ -154,8 +156,8 @@ def process_singlecmds(singlecmds): cmd = '#excitation_file' if singlecmds[cmd] is not None: tmp = singlecmds[cmd].split() - if len(tmp) != 1 and len(tmp) != 3: - logger.exception(cmd + ' requires either one or three parameter(s)') + if len(tmp) not in [1, 3]: + logger.exception(f'{cmd} requires either one or three parameter(s)') raise ValueError if len(tmp) > 1: diff --git a/gprMax/mpi.py b/gprMax/mpi.py index 9e307b34..2a0dfbff 100644 --- a/gprMax/mpi.py +++ b/gprMax/mpi.py @@ -220,26 +220,26 @@ class MPIExecutor(object): def join(self): """Joins the workers.""" - if self.is_master(): + if not self.is_master(): + return + logger.debug(f'({self.comm.name}) - Terminating. Sending sentinel to all workers.') + # Send sentinel to all workers + for worker in self.workers: + self.comm.send(None, dest=worker, tag=Tags.EXIT) - logger.debug(f'({self.comm.name}) - Terminating. Sending sentinel to all workers.') - # Send sentinel to all workers - for worker in self.workers: - self.comm.send(None, dest=worker, tag=Tags.EXIT) + logger.debug(f'({self.comm.name}) - Waiting for all workers to terminate.') - logger.debug(f'({self.comm.name}) - Waiting for all workers to terminate.') + down = [False] * len(self.workers) + while True: + for i, worker in enumerate(self.workers): + if self.comm.Iprobe(source=worker, tag=Tags.EXIT): + self.comm.recv(source=worker, tag=Tags.EXIT) + down[i] = True + if all(down): + break - down = [False] * len(self.workers) - while True: - for i, worker in enumerate(self.workers): - if self.comm.Iprobe(source=worker, tag=Tags.EXIT): - self.comm.recv(source=worker, tag=Tags.EXIT) - down[i] = True - if all(down): - break - - self._up = False - logger.debug(f'({self.comm.name}) - All workers terminated.') + self._up = False + logger.debug(f'({self.comm.name}) - All workers terminated.') def submit(self, jobs, sleep=0.0): """Submits a list of jobs to the workers and returns the results. diff --git a/gprMax/updates.py b/gprMax/updates.py index cd9bab3c..75961ab3 100644 --- a/gprMax/updates.py +++ b/gprMax/updates.py @@ -378,7 +378,7 @@ class CUDAUpdates: for pml in self.grid.pmls['slabs']: pml.htod_field_arrays() pml.set_blocks_per_grid() - knl_name = 'order' + str(len(pml.CFS)) + '_' + pml.direction + knl_name = f'order{len(pml.CFS)}_{pml.direction}' self.subs_name_args['FUNC'] = knl_name knl_electric = getattr(knl_pml_updates_electric, knl_name) @@ -880,23 +880,31 @@ class OpenCLUpdates: for pml in self.grid.pmls['slabs']: pml.set_queue(self.queue) pml.htod_field_arrays() - knl_name = 'order' + str(len(pml.CFS)) + '_' + pml.direction + knl_name = f'order{len(pml.CFS)}_{pml.direction}' knl_electric_name = getattr(knl_pml_updates_electric, knl_name) knl_magnetic_name = getattr(knl_pml_updates_magnetic, knl_name) - pml.update_electric_dev = self.elwise(self.ctx, - knl_electric_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), - knl_electric_name['func'].substitute(subs), - 'pml_updates_electric_' + knl_name, - preamble=self.knl_common, - options=config.sim_config.devices['compiler_opts']) - - pml.update_magnetic_dev = self.elwise(self.ctx, - knl_magnetic_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), - knl_magnetic_name['func'].substitute(subs), - 'pml_updates_magnetic_' + knl_name, - preamble=self.knl_common, - options=config.sim_config.devices['compiler_opts']) + pml.update_electric_dev = self.elwise( + self.ctx, + knl_electric_name['args_opencl'].substitute( + {'REAL': config.sim_config.dtypes['C_float_or_double']} + ), + knl_electric_name['func'].substitute(subs), + f'pml_updates_electric_{knl_name}', + preamble=self.knl_common, + options=config.sim_config.devices['compiler_opts'], + ) + + pml.update_magnetic_dev = self.elwise( + self.ctx, + knl_magnetic_name['args_opencl'].substitute( + {'REAL': config.sim_config.dtypes['C_float_or_double']} + ), + knl_magnetic_name['func'].substitute(subs), + f'pml_updates_magnetic_{knl_name}', + preamble=self.knl_common, + options=config.sim_config.devices['compiler_opts'], + ) def _set_rx_knl(self): """Receivers - initialises arrays on compute device, prepares kernel and From 80db7bbe6716386b3a95bdaba17365bd3f2e6d52 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 12:25:22 +0530 Subject: [PATCH 08/32] Updated few parts of test_models.py file, renamed a variable from max to maxi as max is an inbuilt function name. --- testing/test_experimental.py | 10 +++-- testing/test_models.py | 73 ++++++++++++++++++++---------------- 2 files changed, 48 insertions(+), 35 deletions(-) diff --git a/testing/test_experimental.py b/testing/test_experimental.py index e954cd3e..586002df 100644 --- a/testing/test_experimental.py +++ b/testing/test_experimental.py @@ -81,8 +81,12 @@ realmax = np.where(np.abs(real[:, 1]) == 1)[0][0] difftime = - (timemodel[modelmax] - real[realmax, 0]) # Plot modelled and real data -fig, ax = plt.subplots(num=modelfile.stem + '_vs_' + realfile.stem, - figsize=(20, 10), facecolor='w', edgecolor='w') +fig, ax = plt.subplots( + num=f'{modelfile.stem}_vs_{realfile.stem}', + figsize=(20, 10), + facecolor='w', + edgecolor='w', +) ax.plot(timemodel + difftime, model, 'r', lw=2, label='Model') ax.plot(real[:, 0], real[:, 1], 'r', ls='--', lw=2, label='Experiment') ax.set_xlabel('Time [s]') @@ -93,7 +97,7 @@ ax.legend() ax.grid() # Save a PDF/PNG of the figure -savename = modelfile.stem + '_vs_' + realfile.stem +savename = f'{modelfile.stem}_vs_{realfile.stem}' savename = modelfile.parent / savename # fig.savefig(savename.with_suffix('.pdf'), dpi=None, format='pdf', # bbox_inches='tight', pad_inches=0.1) diff --git a/testing/test_models.py b/testing/test_models.py index e7e57bf2..ad864375 100644 --- a/testing/test_models.py +++ b/testing/test_models.py @@ -112,11 +112,9 @@ for i, model in enumerate(testmodels): filetest.attrs['dt'], filetest.attrs['dx_dy_dz'], rxposrelative) - filetest.close() - else: # Get output for model and reference files - fileref = file.stem + '_ref' + fileref = f'{file.stem}_ref' fileref = file.parent / Path(fileref) fileref = h5py.File(fileref.with_suffix('.h5'), 'r') filetest = h5py.File(file.with_suffix('.h5'), 'r') @@ -132,9 +130,12 @@ for i, model in enumerate(testmodels): # Check that type of float used to store fields matches if filetest[path + outputstest[0]].dtype != fileref[path + outputsref[0]].dtype: - logger.warning(f'Type of floating point number in test model ' + - f'({filetest[path + outputstest[0]].dtype}) does not ' + - f'match type in reference solution ({fileref[path + outputsref[0]].dtype})\n') + logger.warning( + ( + f'Type of floating point number in test model ({filetest[path + outputstest[0]].dtype}) does not ' + + f'match type in reference solution ({fileref[path + outputsref[0]].dtype})\n' + ) + ) float_or_doubleref = fileref[path + outputsref[0]].dtype float_or_doubletest = filetest[path + outputstest[0]].dtype @@ -159,15 +160,15 @@ for i, model in enumerate(testmodels): raise ValueError fileref.close() - filetest.close() + filetest.close() # Diffs datadiffs = np.zeros(datatest.shape, dtype=np.float64) for i in range(len(outputstest)): - max = np.amax(np.abs(dataref[:, i])) - datadiffs[:, i] = np.divide(np.abs(dataref[:, i] - datatest[:, i]), max, + maxi = np.amax(np.abs(dataref[:, i])) + datadiffs[:, i] = np.divide(np.abs(dataref[:, i] - datatest[:, i]), maxi, out=np.zeros_like(dataref[:, i]), - where=max != 0) # Replace any division by zero with zero + where=maxi != 0) # Replace any division by zero with zero # Calculate power (ignore warning from taking a log of any zero values) with np.errstate(divide='ignore'): @@ -175,30 +176,34 @@ for i, model in enumerate(testmodels): # Replace any NaNs or Infs from zero division datadiffs[:, i][np.invert(np.isfinite(datadiffs[:, i]))] = 0 - # Store max difference + # Store maxi difference maxdiff = np.amax(np.amax(datadiffs)) testresults[model]['Max diff'] = maxdiff # Plot datasets - fig1, ((ex1, hx1), (ey1, hy1), (ez1, hz1)) = plt.subplots(nrows=3, ncols=2, - sharex=False, sharey='col', - subplot_kw=dict(xlabel='Time [ns]'), - num=model + '.in', - figsize=(20, 10), - facecolor='w', - edgecolor='w') + fig1, ((ex1, hx1), (ey1, hy1), (ez1, hz1)) = plt.subplots( + nrows=3, + ncols=2, + sharex=False, + sharey='col', + subplot_kw=dict(xlabel='Time [ns]'), + num=f'{model}.in', + figsize=(20, 10), + facecolor='w', + edgecolor='w', + ) ex1.plot(timetest, datatest[:, 0], 'r', lw=2, label=model) - ex1.plot(timeref, dataref[:, 0], 'g', lw=2, ls='--', label=model + '(Ref)') + ex1.plot(timeref, dataref[:, 0], 'g', lw=2, ls='--', label=f'{model}(Ref)') ey1.plot(timetest, datatest[:, 1], 'r', lw=2, label=model) - ey1.plot(timeref, dataref[:, 1], 'g', lw=2, ls='--', label=model + '(Ref)') + ey1.plot(timeref, dataref[:, 1], 'g', lw=2, ls='--', label=f'{model}(Ref)') ez1.plot(timetest, datatest[:, 2], 'r', lw=2, label=model) - ez1.plot(timeref, dataref[:, 2], 'g', lw=2, ls='--', label=model + '(Ref)') + ez1.plot(timeref, dataref[:, 2], 'g', lw=2, ls='--', label=f'{model}(Ref)') hx1.plot(timetest, datatest[:, 3], 'r', lw=2, label=model) - hx1.plot(timeref, dataref[:, 3], 'g', lw=2, ls='--', label=model + '(Ref)') + hx1.plot(timeref, dataref[:, 3], 'g', lw=2, ls='--', label=f'{model}(Ref)') hy1.plot(timetest, datatest[:, 4], 'r', lw=2, label=model) - hy1.plot(timeref, dataref[:, 4], 'g', lw=2, ls='--', label=model + '(Ref)') + hy1.plot(timeref, dataref[:, 4], 'g', lw=2, ls='--', label=f'{model}(Ref)') hz1.plot(timetest, datatest[:, 5], 'r', lw=2, label=model) - hz1.plot(timeref, dataref[:, 5], 'g', lw=2, ls='--', label=model + '(Ref)') + hz1.plot(timeref, dataref[:, 5], 'g', lw=2, ls='--', label=f'{model}(Ref)') ylabels = ['$E_x$, field strength [V/m]', '$H_x$, field strength [A/m]', '$E_y$, field strength [V/m]', '$H_y$, field strength [A/m]', '$E_z$, field strength [V/m]', '$H_z$, field strength [A/m]'] @@ -209,13 +214,17 @@ for i, model in enumerate(testmodels): ax.legend() # Plot diffs - fig2, ((ex2, hx2), (ey2, hy2), (ez2, hz2)) = plt.subplots(nrows=3, ncols=2, - sharex=False, sharey='col', - subplot_kw=dict(xlabel='Time [ns]'), - num='Diffs: ' + model + '.in', - figsize=(20, 10), - facecolor='w', - edgecolor='w') + fig2, ((ex2, hx2), (ey2, hy2), (ez2, hz2)) = plt.subplots( + nrows=3, + ncols=2, + sharex=False, + sharey='col', + subplot_kw=dict(xlabel='Time [ns]'), + num=f'Diffs: {model}.in', + figsize=(20, 10), + facecolor='w', + edgecolor='w', + ) ex2.plot(timeref, datadiffs[:, 0], 'r', lw=2, label='Ex') ey2.plot(timeref, datadiffs[:, 1], 'r', lw=2, label='Ey') ez2.plot(timeref, datadiffs[:, 2], 'r', lw=2, label='Ez') @@ -232,7 +241,7 @@ for i, model in enumerate(testmodels): ax.grid() # Save a PDF/PNG of the figure - filediffs = file.stem + '_diffs' + filediffs = f'{file.stem}_diffs' filediffs = file.parent / Path(filediffs) # fig1.savefig(file.with_suffix('.pdf'), dpi=None, format='pdf', # bbox_inches='tight', pad_inches=0.1) From f0c6e0278106a211c9a5d3ed4c319a245dfa2527 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 15:36:57 +0530 Subject: [PATCH 09/32] Renamed a variable from max to maxi in plot_pml_comparison.py file as 'max' is an inbuilt function name. --- testing/models_pmls/plot_pml_comparison.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/models_pmls/plot_pml_comparison.py b/testing/models_pmls/plot_pml_comparison.py index 2acf1ecf..a713ebf4 100644 --- a/testing/models_pmls/plot_pml_comparison.py +++ b/testing/models_pmls/plot_pml_comparison.py @@ -93,8 +93,8 @@ for x, model in enumerate(testmodels): # Diffs datadiffs = np.zeros(datatest.shape, dtype=np.float64) for i in range(len(outputstest)): - max = np.amax(np.abs(dataref[:, i])) - datadiffs[:, i] = np.divide(np.abs(datatest[:, i] - dataref[:, i]), max, out=np.zeros_like(dataref[:, i]), where=max != 0) # Replace any division by zero with zero + maxi = np.amax(np.abs(dataref[:, i])) + datadiffs[:, i] = np.divide(np.abs(datatest[:, i] - dataref[:, i]), maxi, out=np.zeros_like(dataref[:, i]), where=maxi != 0) # Replace any division by zero with zero # Calculate power (ignore warning from taking a log of any zero values) with np.errstate(divide='ignore'): From 361bfc3115a86e277efc4251f55668d44af29143 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 15:48:19 +0530 Subject: [PATCH 10/32] Updated a few more files by reformatting some code, now they look a little better. --- gprMax/materials.py | 19 ++++++++++--------- gprMax/user_inputs.py | 2 +- .../pml_3D_pec_plate/pml_3D_pec_plate.py | 18 ++++++++++++++---- .../pml_3D_pec_plate/pml_3D_pec_plate_ref.py | 18 ++++++++++++++---- 4 files changed, 39 insertions(+), 18 deletions(-) diff --git a/gprMax/materials.py b/gprMax/materials.py index 51f5fb8b..95e07ba1 100644 --- a/gprMax/materials.py +++ b/gprMax/materials.py @@ -249,12 +249,13 @@ def process_materials(G): z += 3 # Construct information on material properties for printing table - materialtext = [] - materialtext.append(str(material.numID)) - materialtext.append(material.ID[:50] if len(material.ID) > 50 else material.ID) - materialtext.append(material.type) - materialtext.append(f'{material.er:g}') - materialtext.append(f'{material.se:g}') + materialtext = [ + str(material.numID), + material.ID[:50] if len(material.ID) > 50 else material.ID, + material.type, + f'{material.er:g}', + f'{material.se:g}', + ] if config.get_model_config().materials['maxpoles'] > 0: if 'debye' in material.type: materialtext.append('\n'.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) @@ -274,9 +275,9 @@ def process_materials(G): else: materialtext.extend(['', '', '', '', '']) - materialtext.append(f'{material.mr:g}') - materialtext.append(f'{material.sm:g}') - materialtext.append(material.averagable) + materialtext.extend( + (f'{material.mr:g}', f'{material.sm:g}', material.averagable) + ) materialsdata.append(materialtext) return materialsdata diff --git a/gprMax/user_inputs.py b/gprMax/user_inputs.py index 096ed74d..c920f5e7 100644 --- a/gprMax/user_inputs.py +++ b/gprMax/user_inputs.py @@ -65,7 +65,7 @@ class UserInput: except ValueError as err: v = ['x', 'y', 'z'] # Discretisation - dl = getattr(self.grid, 'd' + err.args[0]) + dl = getattr(self.grid, f'd{err.args[0]}') # Incorrect index i = p[v.index(err.args[0])] if name: diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py index 9e080890..eda4698f 100755 --- a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py +++ b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py @@ -29,10 +29,20 @@ rx = gprMax.Rx(p1=(0.038, 0.114, 0.013)) plate = gprMax.Plate(p1=(0.013, 0.013, 0.013), p2=(0.038, 0.113, 0.013), material_id='pec') -gv1 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), - filename=Path(*parts[:-1], parts[-1] + '_n'), output_type='n') -gv2 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), - filename=Path(*parts[:-1], parts[-1] + '_f'), output_type='f') +gv1 = gprMax.GeometryView( + p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_n'), + output_type='n', +) +gv2 = gprMax.GeometryView( + p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_f'), + output_type='f', +) pmls = {'CFS-PML': {'pml': gprMax.PMLProps(formulation='HORIPML', thickness=10), # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py index 1b0c8d85..c1a717c0 100755 --- a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py +++ b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py @@ -29,10 +29,20 @@ rx = gprMax.Rx(p1=(0.113, 0.189, 0.088)) plate = gprMax.Plate(p1=(0.088, 0.088, 0.088), p2=(0.113, 0.188, 0.088), material_id='pec') -gv1 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), - filename=Path(*parts[:-1], parts[-1] + '_n'), output_type='n') -gv2 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), - filename=Path(*parts[:-1], parts[-1] + '_f'), output_type='f') +gv1 = gprMax.GeometryView( + p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_n'), + output_type='n', +) +gv2 = gprMax.GeometryView( + p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_f'), + output_type='f', +) pml = gprMax.PMLProps(formulation='HORIPML', thickness=10) From 2f8294698d3dc2b2e01e5d8a4e4d00dbcc6268bd Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Sun, 16 Apr 2023 19:17:57 +0530 Subject: [PATCH 11/32] Reformatted some code in a few more files. --- gprMax/subgrids/precursor_nodes.py | 4 ++-- gprMax/subgrids/updates.py | 2 +- gprMax/subgrids/user_objects.py | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gprMax/subgrids/precursor_nodes.py b/gprMax/subgrids/precursor_nodes.py index ab679638..718310c9 100644 --- a/gprMax/subgrids/precursor_nodes.py +++ b/gprMax/subgrids/precursor_nodes.py @@ -218,9 +218,9 @@ class PrecursorNodesBase: def update_previous_timestep_fields(self, field_names): for fn in field_names: - val = getattr(self, fn + '_1') + val = getattr(self, f'{fn}_1') val_c = np.copy(val) - setattr(self, fn + '_0', val_c) + setattr(self, f'{fn}_0', val_c) def interpolate_to_sub_grid(self, field, coords): x, z, x_sg, z_sg = coords diff --git a/gprMax/subgrids/updates.py b/gprMax/subgrids/updates.py index 07b1a9c5..b38e3cc3 100644 --- a/gprMax/subgrids/updates.py +++ b/gprMax/subgrids/updates.py @@ -36,7 +36,7 @@ def create_updates(G): elif sg_type == SubGridHSG and not sg.filter: precursors = PrecursorNodes(G, sg) else: - logger.exception(str(sg) + ' is not a subgrid type') + logger.exception(f'{str(sg)} is not a subgrid type') raise ValueError sgu = SubgridUpdater(sg, precursors, G) diff --git a/gprMax/subgrids/user_objects.py b/gprMax/subgrids/user_objects.py index 1136ea01..586b20b1 100644 --- a/gprMax/subgrids/user_objects.py +++ b/gprMax/subgrids/user_objects.py @@ -45,7 +45,7 @@ class SubGridBase(UserObjectMulti): elif isinstance(node, UserObjectGeometry): self.children_geometry.append(node) else: - logger.exception(str(node) + ' this Object can not be added to a sub grid') + logger.exception(f'{str(node)} this Object can not be added to a sub grid') raise ValueError def set_discretisation(self, sg, grid): @@ -123,12 +123,16 @@ class SubGridBase(UserObjectMulti): self.subgrid = sg # Copy over built in materials - sg.materials = [copy(m) for m in grid.materials if m.numID in range(0, grid.n_built_in_materials + 1)] + sg.materials = [ + copy(m) + for m in grid.materials + if m.numID in range(grid.n_built_in_materials + 1) + ] # Don't mix and match different subgrid types for sg_made in grid.subgrids: if type(sg) != type(sg_made): - logger.exception(self.__str__() + ' please only use one type of subgrid') + logger.exception(f'{self.__str__()} please only use one type of subgrid') raise ValueError # Reference the subgrid under the main grid to which it belongs From cb1013155f95115a754ee164a793301567f49678 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Mon, 17 Apr 2023 09:04:44 +0100 Subject: [PATCH 12/32] Remove subgrid snapshot testing --- examples/subgrids/cylinder_fs.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/examples/subgrids/cylinder_fs.py b/examples/subgrids/cylinder_fs.py index 82d02b88..4800eb60 100644 --- a/examples/subgrids/cylinder_fs.py +++ b/examples/subgrids/cylinder_fs.py @@ -89,17 +89,10 @@ gv1 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), scene.add(gv1) # Create some snapshots of entire domain -# for i in range(5): -# s = gprMax.Snapshot(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), -# time=(i + 0.5) * 1e-9, -# filename=fn.with_suffix('').parts[-1] + '_' + str(i + 1)) -# scene.add(s) - for i in range(5): - s = gprMax.Snapshot(p1=sg1, p2=sg2, dl=(dl_sg, dl_sg, dl_sg), + s = gprMax.Snapshot(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), time=(i + 0.5) * 1e-9, - filename=fn.with_suffix('').parts[-1] + '_' + str(i + 1), - outputs=['Ez']) - subgrid.add(s) + filename=fn.with_suffix('').parts[-1] + '_' + str(i + 1)) + scene.add(s) gprMax.run(scenes=[scene], n=1, geometry_only=False, outputfile=fn, subgrid=True, autotranslate=True) From a51eb362b7432627b790832051db6c698829dcdb Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Mon, 17 Apr 2023 09:04:53 +0100 Subject: [PATCH 13/32] Added FUNDING.yml --- .github/FUNDING.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..409e993f --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: gprMax +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] \ No newline at end of file From 4a0767ce909e43d36e7edbda25713dd2f2d7af78 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Mon, 17 Apr 2023 09:34:58 +0100 Subject: [PATCH 14/32] Remove model outputs --- examples/antenna_like_GSSI_1500.vti | Bin 55000888 -> 0 bytes examples/antenna_like_GSSI_1500_fs.h5 | Bin 161848 -> 0 bytes examples/antenna_like_GSSI_1500_fs.py | 2 +- examples/heterogeneous_soil_v2.h5 | Bin 24736 -> 0 bytes 4 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 examples/antenna_like_GSSI_1500.vti delete mode 100644 examples/antenna_like_GSSI_1500_fs.h5 delete mode 100644 examples/heterogeneous_soil_v2.h5 diff --git a/examples/antenna_like_GSSI_1500.vti b/examples/antenna_like_GSSI_1500.vti deleted file mode 100644 index 56e7a0757d63ff6ab19537109ec2b43853acea97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55000888 zcmeFv-HsbI6aZilcRa=5t0HB$lXMrU&`?$7M-|<+YN1@9Dw-tD?ucY2nwdgE)pz63 zu(M0F6)I2gjWmDu@v(jUJ$Sg=tcyQl*Vk<`4dc@?JpA_a2d{tr>4$n9i($Ww)9_?d zUB>UKp$Z>H7W4fOXKlBP-84L{hhZJRZrD!2cC%(bYYrik^Kw*N zKPF}Fyr_oQ)z!Ms3Booma?({79g0_}(sgrrXfDUO@%YRN zUesy%#mBRzkjHVo&f%I004meUmKyp z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?KWfIuHN=0002; ze{F;Y4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU| z0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BP zJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj# zzyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+ z4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F z@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn+B+4?OU|0}nj#zyl9F@W2BPJn#T^>fi=I z7>I!&Jm|k=pa@H`JP*E6j?5kd3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< z3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs# zzyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d| z0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdb zFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?0 z00Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u<3^2d|0}L?000Rs#zyJdbFu(u< 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 zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k zGu>@zu5m}5>pX3u;WOQBX|8cco$EYpqTw^$ZE3D?N1f|DZKB~b-EC>EaYvo&JZ+-k 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 z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9>6Xg2mk;8008;FHbR339(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAocmTU}AOHXW0089w+6WCEc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV z;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^ z2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAo zc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCf zfd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt9(dq^2OfCffd?LV;DHAoc;JBt z9(dq^2OfCffd?LV-~sK@Aqs#n6adifWxRk424b;}^}&7+L>9b1^B9H~Uw;lb;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T zIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRg zfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q- z4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV z;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX| z0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@TIN*Q-4mjX|0}eRgfCCOV;D7@T cIN*Q-e>$*iYaSz>9(`|bOP^~wkL!*!0cL;@k^lez diff --git a/examples/antenna_like_GSSI_1500_fs.h5 b/examples/antenna_like_GSSI_1500_fs.h5 deleted file mode 100644 index 0012b8b2284562553d0f61b667a38e2e57b83bf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161848 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

TU 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℞1yRwZ-_m1?Q*x*d})uLNNt)m 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 aovE8mxDtN&=?(DSsDz{cP}DEIO86i8qiO5_ diff --git a/examples/antenna_like_GSSI_1500_fs.py b/examples/antenna_like_GSSI_1500_fs.py index 0ee0453b..7ae28dc2 100644 --- a/examples/antenna_like_GSSI_1500_fs.py +++ b/examples/antenna_like_GSSI_1500_fs.py @@ -41,7 +41,7 @@ gv2 = gprMax.GeometryView(p1=(ant_pos[0] - 0.170/2, ant_pos[1] - 0.108/2, ant_po p2=(ant_pos[0] + 0.170/2, ant_pos[1] + 0.108/2, ant_pos[2] + 0.010), dl=(dl, dl, dl), filename='antenna_like_GSSI_1500_pcb', output_type='f') -scene.add(gv1) +#scene.add(gv1) #scene.add(gv2) # Run model diff --git a/examples/heterogeneous_soil_v2.h5 b/examples/heterogeneous_soil_v2.h5 deleted file mode 100644 index a5ea069d7a6470dbace53b7fbc52e5187acff040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24736 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 Date: Mon, 17 Apr 2023 09:35:35 +0100 Subject: [PATCH 15/32] Tidy up some imports and syntax --- gprMax/__init__.py | 5 +++-- gprMax/hash_cmds_file.py | 9 +++++---- gprMax/hash_cmds_geometry.py | 27 +++++++++++++-------------- gprMax/hash_cmds_multiuse.py | 33 +++++++++++++++------------------ 4 files changed, 36 insertions(+), 38 deletions(-) diff --git a/gprMax/__init__.py b/gprMax/__init__.py index b5ccc50b..55463eeb 100644 --- a/gprMax/__init__.py +++ b/gprMax/__init__.py @@ -25,8 +25,9 @@ from .cmds_geometry.triangle import Triangle from .cmds_multiuse import (PMLCFS, AddDebyeDispersion, AddDrudeDispersion, AddLorentzDispersion, GeometryObjectsWrite, GeometryView, HertzianDipole, MagneticDipole, - Material, Rx, RxArray, Snapshot, SoilPeplinski, - TransmissionLine, VoltageSource, Waveform, MaterialRange, MaterialList) + Material, MaterialList, MaterialRange, Rx, RxArray, + Snapshot, SoilPeplinski, TransmissionLine, + VoltageSource, Waveform) from .cmds_singleuse import (Discretisation, Domain, ExcitationFile, OMPThreads, PMLProps, RxSteps, SrcSteps, TimeStepStabilityFactor, TimeWindow, Title) diff --git a/gprMax/hash_cmds_file.py b/gprMax/hash_cmds_file.py index 805835e5..caefc6a0 100644 --- a/gprMax/hash_cmds_file.py +++ b/gprMax/hash_cmds_file.py @@ -212,6 +212,7 @@ def check_cmd_names(processedlines, checkessential=True): # - these will be lists within the dictionary multiplecmds = {key: [] for key in ['#geometry_view', '#geometry_objects_write', '#material', + '#material_range', '#material_list', '#soil_peplinski', '#add_dispersion_debye', '#add_dispersion_lorentz', @@ -219,14 +220,14 @@ def check_cmd_names(processedlines, checkessential=True): '#waveform', '#voltage_source', '#hertzian_dipole', '#magnetic_dipole', '#transmission_line', '#rx', '#rx_array', - '#snapshot', '#include_file', '#material_range', '#material_list']} + '#snapshot', '#include_file']} # Geometry object building commands that there can be multiple instances # of in a model - these will be lists within the dictionary geometrycmds = ['#geometry_objects_read', '#edge', '#plate', '#triangle', - '#box', '#sphere', '#ellipsoid', '#cone', '#cylinder', '#cylindrical_sector', - '#fractal_box', '#add_surface_roughness', - '#add_surface_water', '#add_grass'] + '#box', '#sphere', '#ellipsoid', '#cone', '#cylinder', + '#cylindrical_sector', '#fractal_box', + '#add_surface_roughness', '#add_surface_water', '#add_grass'] # List to store all geometry object commands in order from input file geometry = [] diff --git a/gprMax/hash_cmds_geometry.py b/gprMax/hash_cmds_geometry.py index dbe8f9c8..b8c7da89 100644 --- a/gprMax/hash_cmds_geometry.py +++ b/gprMax/hash_cmds_geometry.py @@ -17,21 +17,22 @@ # along with gprMax. If not, see . import logging + import numpy as np from .cmds_geometry.add_grass import AddGrass from .cmds_geometry.add_surface_roughness import AddSurfaceRoughness from .cmds_geometry.add_surface_water import AddSurfaceWater from .cmds_geometry.box import Box -from .cmds_geometry.cylinder import Cylinder from .cmds_geometry.cone import Cone +from .cmds_geometry.cylinder import Cylinder from .cmds_geometry.cylindrical_sector import CylindricalSector from .cmds_geometry.edge import Edge +from .cmds_geometry.ellipsoid import Ellipsoid from .cmds_geometry.fractal_box import FractalBox from .cmds_geometry.plate import Plate from .cmds_geometry.sphere import Sphere from .cmds_geometry.triangle import Triangle -from .cmds_geometry.ellipsoid import Ellipsoid from .utilities.utilities import round_value logger = logging.getLogger(__name__) @@ -76,7 +77,8 @@ def process_geometrycmds(geometry): tmp = object.split() if tmp[0] == '#geometry_objects_read:': - from .cmds_geometry.geometry_objects_read import GeometryObjectsRead + from .cmds_geometry.geometry_objects_read import \ + GeometryObjectsRead if len(tmp) != 6: logger.exception("'" + ' '.join(tmp) + "'" + @@ -219,7 +221,6 @@ def process_geometrycmds(geometry): scene_objects.append(cylinder) - elif tmp[0] == '#cone:': if len(tmp) < 10: logger.exception("'" + ' '.join(tmp) + "'" + @@ -239,7 +240,7 @@ def process_geometrycmds(geometry): elif len(tmp) == 11: averaging = check_averaging(tmp[10].lower()) cone = Cone(p1=p1, p2=p2, r1=r1, r2=r2, material_id=tmp[9], - averaging=averaging) + averaging=averaging) # Uniaxial anisotropic case elif len(tmp) == 12: @@ -252,7 +253,6 @@ def process_geometrycmds(geometry): scene_objects.append(cone) - elif tmp[0] == '#cylindrical_sector:': if len(tmp) < 10: logger.exception("'" + ' '.join(tmp) + "'" + @@ -331,7 +331,6 @@ def process_geometrycmds(geometry): scene_objects.append(sphere) - elif tmp[0] == '#ellipsoid:': if len(tmp) < 8: logger.exception("'" + ' '.join(tmp) + "'" + @@ -345,17 +344,19 @@ def process_geometrycmds(geometry): # Isotropic case with no user specified averaging if len(tmp) == 8: - ellipsoid = Ellipsoid(p1=p1, xr=xr, yr=yr, zr=zr, material_id=tmp[7]) + ellipsoid = Ellipsoid(p1=p1, xr=xr, yr=yr, zr=zr, + material_id=tmp[7]) # Isotropic case with user specified averaging elif len(tmp) == 9: averaging = check_averaging(tmp[8].lower()) - ellipsoid = Ellipsoid(p1=p1, xr=xr, yr=yr, zr=zr, material_id=tmp[7], - averaging=averaging) + ellipsoid = Ellipsoid(p1=p1, xr=xr, yr=yr, zr=zr, + material_id=tmp[7], averaging=averaging) # Uniaxial anisotropic case elif len(tmp) == 8: - ellipsoid = Ellipsoid(p1=p1, xr=xr, yr=yr, zr=zr, material_id=tmp[7:]) + ellipsoid = Ellipsoid(p1=p1, xr=xr, yr=yr, zr=zr, + material_id=tmp[7:]) else: logger.exception("'" + ' '.join(tmp) + "'" + @@ -364,8 +365,6 @@ def process_geometrycmds(geometry): scene_objects.append(ellipsoid) - - elif tmp[0] == '#fractal_box:': # Default is no dielectric smoothing for a fractal box @@ -479,4 +478,4 @@ def process_geometrycmds(geometry): scene_objects.append(grass) - return scene_objects + return scene_objects \ No newline at end of file diff --git a/gprMax/hash_cmds_multiuse.py b/gprMax/hash_cmds_multiuse.py index a46431a4..6925ae8c 100644 --- a/gprMax/hash_cmds_multiuse.py +++ b/gprMax/hash_cmds_multiuse.py @@ -21,8 +21,9 @@ import logging from .cmds_multiuse import (AddDebyeDispersion, AddDrudeDispersion, AddLorentzDispersion, GeometryObjectsWrite, GeometryView, HertzianDipole, MagneticDipole, - Material, Rx, RxArray, Snapshot, SoilPeplinski, - TransmissionLine, VoltageSource, Waveform, MaterialRange, MaterialList) + Material, MaterialList, MaterialRange, Rx, RxArray, + Snapshot, SoilPeplinski, TransmissionLine, + VoltageSource, Waveform) logger = logging.getLogger(__name__) @@ -352,17 +353,16 @@ def process_multicmds(multicmds): ' requires at exactly nine parameters') raise ValueError material_range = MaterialRange(er_lower=float(tmp[0]), - er_upper=float(tmp[1]), - sigma_lower=float(tmp[2]), - sigma_upper=float(tmp[3]), - mr_lower=float(tmp[4]), - mr_upper=float(tmp[5]), - ro_lower=float(tmp[6]), - ro_upper=float(tmp[7]), - id=tmp[8]) + er_upper=float(tmp[1]), + sigma_lower=float(tmp[2]), + sigma_upper=float(tmp[3]), + mr_lower=float(tmp[4]), + mr_upper=float(tmp[5]), + ro_lower=float(tmp[6]), + ro_upper=float(tmp[7]), + id=tmp[8]) scene_objects.append(material_range) - cmdname = '#material_list' if multicmds[cmdname] is not None: for cmdinstance in multicmds[cmdname]: @@ -375,14 +375,11 @@ def process_multicmds(multicmds): tokens = len(tmp) lmats = [] - for iter in range(0,tokens-1): + for iter in range(tokens-1): lmats.append(tmp[iter]) - - - material_list = MaterialList(list_of_materials=lmats, - id=tmp[tokens-1]) + material_list = MaterialList(list_of_materials=lmats, + id=tmp[tokens-1]) scene_objects.append(material_list) - - return scene_objects + return scene_objects \ No newline at end of file From 5ff07b92e855cdc192aa60c89332a0667eac6869 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Mon, 17 Apr 2023 09:36:05 +0100 Subject: [PATCH 16/32] Tidy ups and remove n_built_in_materials --- gprMax/materials.py | 757 ++++++++++++++++---------------- gprMax/subgrids/user_objects.py | 2 +- 2 files changed, 369 insertions(+), 390 deletions(-) diff --git a/gprMax/materials.py b/gprMax/materials.py index 712ab373..275e8c60 100644 --- a/gprMax/materials.py +++ b/gprMax/materials.py @@ -213,6 +213,373 @@ class DispersiveMaterial(Material): er -= ersum return er + + +class PeplinskiSoil: + """Soil objects that are characterised according to a mixing model + by Peplinski (http://dx.doi.org/10.1109/36.387598). + """ + + def __init__(self, ID, sandfraction, clayfraction, bulkdensity, + sandpartdensity, watervolfraction): + """ + Args: + ID: string for name of the soil. + sandfraction: float of sand fraction of the soil. + clayfraction: float of clay fraction of the soil. + bulkdensity: float of bulk density of the soil (g/cm3). + sandpartdensity: float of density of the sand particles in the + soil (g/cm3). + watervolfraction: tuple of floats of two numbers that specify a + range for the volumetric water fraction of the + soil. + """ + + self.ID = ID + self.S = sandfraction + self.C = clayfraction + self.rb = bulkdensity + self.rs = sandpartdensity + self.mu = watervolfraction + self.startmaterialnum = 0 #This is not used anymore and code that uses it can be removed + # store all of the material IDs in a list instead of storing only the first number of the material + # and assume that all must be sequentially numbered. This allows for more general mixing models + self.matID = [] + + def calculate_properties(self, nbins, G): + """Calculates the real and imaginery part of a Debye model for the soil + as well as a conductivity. It uses an approximation to a semi-empirical + model (http://dx.doi.org/10.1109/36.387598). + + Args: + nbins: int for number of bins to use to create the different materials. + G: FDTDGrid class describing a grid in a model. + """ + + # Debye model properties of water at 25C & zero salinity + T = 25 + S = 0 + watereri, waterer, watertau, watersig = calculate_water_properties(T, S) + f = 1.3e9 + w = 2 * np.pi * f + erealw = watereri + ((waterer - watereri) / (1 + (w * watertau)**2)) + + a = 0.65 # Experimentally derived constant + es = (1.01 + 0.44 * self.rs)**2 - 0.062 #  Relative permittivity of sand particles + b1 = 1.2748 - 0.519 * self.S - 0.152 * self.C + b2 = 1.33797 - 0.603 * self.S - 0.166 * self.C + + # For frequencies in the range 0.3GHz to 1.3GHz + sigf = 0.0467 + 0.2204 * self.rb - 0.411 * self.S + 0.6614 * self.C + # For frequencies in the range 1.4GHz to 18GHz + # sigf = -1.645 + 1.939 * self.rb - 2.25622 * self.S + 1.594 * self.C + + # Generate a set of bins based on the given volumetric water fraction + # values. Changed to make sure mid points are contained completely within the ranges. + # The limiting values of the ranges are not included in this. + + #mubins = np.linspace(self.mu[0], self.mu[1], nbins) + mubins = np.linspace(self.mu[0], self.mu[1], nbins + 1) + # Generate a range of volumetric water fraction values the mid-point of + # each bin to make materials from + #mumaterials = mubins + (mubins[1] - mubins[0]) / 2 + mumaterials = 0.5 * (mubins[1:nbins+1] + mubins[0:nbins]) + + # Create an iterator + muiter = np.nditer(mumaterials, flags=['c_index']) + while not muiter.finished: + # Real part for frequencies in the range 1.4GHz to 18GHz + er = (1 + (self.rb / self.rs) * ((es**a) - 1) + (muiter[0]**b1 * erealw**a) + - muiter[0]) ** (1 / a) + # Real part for frequencies in the range 0.3GHz to 1.3GHz (linear + # correction to 1.4-18GHz value) + er = 1.15 * er - 0.68 + + # Permittivity at infinite frequency + eri = er - (muiter[0]**(b2 / a) * DispersiveMaterial.waterdeltaer) + + # Effective conductivity + sig = muiter[0]**(b2 / a) * ((sigf * (self.rs - self.rb)) / (self.rs * muiter[0])) + + # Check to see if the material already exists before creating a new one + requiredID = '|{:.4f}|'.format(float(muiter[0])) + material = next((x for x in G.materials if x.ID == requiredID), None) + if muiter.index == 0: + if material: + self.startmaterialnum = material.numID + self.matID.append(material.numID) + else: + self.startmaterialnum = len(G.materials) + if not material: + m = DispersiveMaterial(len(G.materials), requiredID) + m.type = 'debye' + m.averagable = False + m.poles = 1 + if m.poles > config.get_model_config().materials['maxpoles']: + config.get_model_config().materials['maxpoles'] = m.poles + m.er = eri + m.se = sig + m.deltaer.append(er - eri) + m.tau.append(DispersiveMaterial.watertau) + G.materials.append(m) + self.matID.append(m.numID) + + muiter.iternext() + + +class RangeMaterial: + """Material defined with a given range of parameters to be used for fractal + spatial distributions. + """ + + def __init__(self, ID, er_range, sigma_range, mu_range, ro_range): + """ + Args: + ID: string for name of the material. + er_range: tuple of floats for relative permittivity range of the + material. + sigma_range: tuple of floats for electric conductivity range of the + material. + mu_range: tuple of floats for magnetic permeability of material. + ro_range: tuple of floats for magnetic loss range of material. + """ + + self.ID = ID + self.er = er_range + self.sig = sigma_range + self.mu = mu_range + self.ro = ro_range + self.startmaterialnum = 0 #This is not really needed anymore and code that uses it can be removed. + # store all of the material IDs in a list instead of storing only the first number of the material + # and assume that all must be sequentially numbered. This allows for more general mixing models + self.matID = [] + + def calculate_properties(self, nbins, G): + """Calculates the properties of the materials. + + Args: + nbins: int for number of bins to use to create the different materials. + G: FDTDGrid class describing a grid in a model. + """ + + # Generate a set of relative permittivity bins based on the given range + erbins = np.linspace(self.er[0], self.er[1], nbins+1) + + # Generate a range of relative permittivity values the mid-point of + # each bin to make materials from + #ermaterials = erbins + np.abs((erbins[1] - erbins[0])) / 2 + ermaterials = 0.5 * (erbins[1:nbins+1] + erbins[0:nbins]) + + # Generate a set of conductivity bins based on the given range + sigmabins = np.linspace(self.sig[0], self.sig[1], nbins + 1) + + # Generate a range of conductivity values the mid-point of + # each bin to make materials from + #sigmamaterials = sigmabins + (sigmabins[1] - sigmabins[0]) / 2 + sigmamaterials = 0.5 * (sigmabins[1:nbins+1] + sigmabins[0:nbins]) + + # Generate a set of magnetic permeability bins based on the given range + mubins = np.linspace(self.mu[0], self.mu[1], nbins + 1) + + # Generate a range of magnetic permeability values the mid-point of + # each bin to make materials from + #mumaterials = mubins + np.abs((mubins[1] - mubins[0])) / 2 + mumaterials = 0.5 * (mubins[1:nbins+1] + mubins[0:nbins]) + + # Generate a set of magnetic loss bins based on the given range + robins = np.linspace(self.ro[0], self.ro[1], nbins + 1) + + # Generate a range of magnetic loss values the mid-point of each bin to + # make materials from + #romaterials = robins + np.abs((robins[1] - robins[0])) / 2 + romaterials = 0.5 * (robins[1:nbins+1] + robins[0:nbins]) + + + # Iterate over the bins + for iter in np.arange(nbins): + # Relative permittivity + er = ermaterials[iter] + # Effective conductivity + se = sigmamaterials[iter] + # Magnetic permeability + mr = mumaterials[iter] + # Magnetic loss + sm = romaterials[iter] + + # Check to see if the material already exists before creating a new one + requiredID = f'|{float(er):.4f}+{float(se):.4f}+{float(mr):.4f}+{float(sm):.4f}|' + material = next((x for x in G.materials if x.ID == requiredID), None) + if iter == 0: + if material: + self.startmaterialnum = material.numID + self.matID.append(material.numID) + else: + self.startmaterialnum = len(G.materials) + if not material: + m = Material(len(G.materials), requiredID) + m.type = '' + m.averagable = True + m.er = er + m.se = se + m.mr = mr + m.sm = sm + G.materials.append(m) + self.matID.append(m.numID) + + +class ListMaterial: + """A list of predefined materials to be used for fractal spatial + distributions. This command does not create new materials but collects + them to be used in a stochastic distribution by a fractal box. + """ + + def __init__(self, ID, listofmaterials): + """ + Args: + ID: string for name of the material. + listofmaterials: A list of material IDs. + + """ + + self.ID = ID + self.mat = listofmaterials + self.startmaterialnum = 0 #This is not really needed anymore + # store all of the material IDs in a list instead of storing only the first number of the material + # and assume that all must be sequentially numbered. This allows for more general mixing models + # this is important here as this model assumes predefined materials. + self.matID = [] + + + def calculate_properties(self, nbins, G): + """Calculates the properties of the materials. + + Args: + nbins: int for number of bins to use to create the different materials. + G: FDTDGrid class describing a grid in a model. + """ + + # Iterate over the bins + for iter in np.arange(nbins): + #requiredID = '|{:}_in_{:}|'.format((self.mat[iter]),(self.ID)) + requiredID = self.mat[iter] + # Check if the material already exists before creating a new one + material = next((x for x in G.materials if x.ID == requiredID), None) + self.matID.append(material.numID) + + #if iter == 0: + # if material: + # self.startmaterialnum = material.numID + # else: + # self.startmaterialnum = len(G.materials) + + #if not material: + # temp = next((x for x in G.materials if x.ID == self.mat[iter]), None) + # m = copy.deepcopy(temp) #This needs to import copy in order to work + # m.ID = requiredID + # m.numID = len(G.materials) + # G.materials.append(m) + + if not material: + logger.exception(self.__str__() + f' material(s) {material} do not exist') + raise ValueError + + +def create_built_in_materials(G): + """Creates pre-defined (built-in) materials. + + Args: + G: FDTDGrid class describing a grid in a model. + """ + + m = Material(0, 'pec') + m.se = float('inf') + m.type = 'builtin' + m.averagable = False + G.materials.append(m) + + m = Material(1, 'free_space') + m.type = 'builtin' + G.materials.append(m) + + +def calculate_water_properties(T=25, S=0): + """Get extended Debye model properties for water. + + Args: + T: float for emperature of water (degrees centigrade). + S: float for salinity of water (part per thousand). + + Returns: + eri: float for relative permittivity at infinite frequency. + er: float for static relative permittivity. + tau: float for relaxation time (s). + sig: float for conductivity (Siemens/m). + """ + + # Properties of water from: https://doi.org/10.1109/JOE.1977.1145319 + eri = 4.9 + er = 88.045 - 0.4147 * T + 6.295e-4 * T**2 + 1.075e-5 * T**3 + tau = (1 / (2 * np.pi)) * (1.1109e-10 - 3.824e-12 * T + 6.938e-14 * T**2 - + 5.096e-16 * T**3) + + delta = 25 - T + beta = (2.033e-2 + 1.266e-4 * delta + 2.464e-6 * delta**2 - S * + (1.849e-5 - 2.551e-7 * delta + 2.551e-8 * delta**2)) + sig_25s = S * (0.182521 - 1.46192e-3 * S + 2.09324e-5 * S**2 - 1.28205e-7 * S**3) + sig = sig_25s * np.exp(-delta * beta) + + return eri, er, tau, sig + + +def create_water(G, T=25, S=0): + """Creates single-pole Debye model for water with specified temperature and + salinity. + + Args: + T: float for temperature of water (degrees centigrade). + S: float for salinity of water (part per thousand). + G: FDTDGrid class describing a grid in a model. + """ + + eri, er, tau, sig = calculate_water_properties(T, S) + + m = DispersiveMaterial(len(G.materials), 'water') + m.averagable = False + m.type = 'builtin, debye' + m.poles = 1 + m.er = eri + m.se = sig + m.deltaer.append(er - eri) + m.tau.append(tau) + G.materials.append(m) + if config.get_model_config().materials['maxpoles'] == 0: + config.get_model_config().materials['maxpoles'] = 1 + + +def create_grass(G): + """Creates single-pole Debye model for grass + + Args: + G: FDTDGrid class describing a grid in a model. + """ + + # Properties of grass from: http://dx.doi.org/10.1007/BF00902994 + er = 18.5087 + eri = 12.7174 + tau = 1.0793e-11 + sig = 0 + + m = DispersiveMaterial(len(G.materials), 'grass') + m.averagable = False + m.type = 'builtin, debye' + m.poles = 1 + m.er = eri + m.se = sig + m.deltaer.append(er - eri) + m.tau.append(tau) + G.materials.append(m) + if config.get_model_config().materials['maxpoles'] == 0: + config.get_model_config().materials['maxpoles'] = 1 def process_materials(G): @@ -283,392 +650,4 @@ def process_materials(G): materialtext.append(material.averagable) materialsdata.append(materialtext) - return materialsdata - - -class PeplinskiSoil: - """Soil objects that are characterised according to a mixing model - by Peplinski (http://dx.doi.org/10.1109/36.387598). - """ - - def __init__(self, ID, sandfraction, clayfraction, bulkdensity, - sandpartdensity, watervolfraction): - """ - Args: - ID: string for name of the soil. - sandfraction: float of sand fraction of the soil. - clayfraction: float of clay fraction of the soil. - bulkdensity: float of bulk density of the soil (g/cm3). - sandpartdensity: float of density of the sand particles in the - soil (g/cm3). - watervolfraction: tuple of floats of two numbers that specify a - range for the volumetric water fraction of the - soil. - """ - - self.ID = ID - self.S = sandfraction - self.C = clayfraction - self.rb = bulkdensity - self.rs = sandpartdensity - self.mu = watervolfraction - self.startmaterialnum = 0 #This is not used anymore and code that uses it can be removed - # store all of the material IDs in a list instead of storing only the first number of the material - # and assume that all must be sequentially numbered. This allows for more general mixing models - self.matID = [] - - def calculate_properties(self, nbins, G): - """Calculates the real and imaginery part of a Debye model for the soil - as well as a conductivity. It uses an approximation to a semi-empirical - model (http://dx.doi.org/10.1109/36.387598). - - Args: - nbins: int for number of bins to use to create the different materials. - G: FDTDGrid class describing a grid in a model. - """ - - # Debye model properties of water at 25C & zero salinity - T = 25 - S = 0 - watereri, waterer, watertau, watersig = calculate_water_properties(T, S) - f = 1.3e9 - w = 2 * np.pi * f - erealw = watereri + ((waterer - watereri) / (1 + (w * watertau)**2)) - - a = 0.65 # Experimentally derived constant - es = (1.01 + 0.44 * self.rs)**2 - 0.062 #  Relative permittivity of sand particles - b1 = 1.2748 - 0.519 * self.S - 0.152 * self.C - b2 = 1.33797 - 0.603 * self.S - 0.166 * self.C - - # For frequencies in the range 0.3GHz to 1.3GHz - sigf = 0.0467 + 0.2204 * self.rb - 0.411 * self.S + 0.6614 * self.C - # For frequencies in the range 1.4GHz to 18GHz - # sigf = -1.645 + 1.939 * self.rb - 2.25622 * self.S + 1.594 * self.C - - # Generate a set of bins based on the given volumetric water fraction - # values. Changed to make sure mid points are contained completely within the ranges. - # The limiting values of the ranges are not included in this. - - #mubins = np.linspace(self.mu[0], self.mu[1], nbins) - mubins = np.linspace(self.mu[0], self.mu[1], nbins+1) - # Generate a range of volumetric water fraction values the mid-point of - # each bin to make materials from - #mumaterials = mubins + (mubins[1] - mubins[0]) / 2 - mumaterials = 0.5*(mubins[1:nbins+1] + mubins[0:nbins]) - - - # Create an iterator - muiter = np.nditer(mumaterials, flags=['c_index']) - while not muiter.finished: - # Real part for frequencies in the range 1.4GHz to 18GHz - er = (1 + (self.rb / self.rs) * ((es**a) - 1) + (muiter[0]**b1 * erealw**a) - - muiter[0]) ** (1 / a) - # Real part for frequencies in the range 0.3GHz to 1.3GHz (linear - # correction to 1.4-18GHz value) - er = 1.15 * er - 0.68 - - # Permittivity at infinite frequency - eri = er - (muiter[0]**(b2 / a) * DispersiveMaterial.waterdeltaer) - - # Effective conductivity - sig = muiter[0]**(b2 / a) * ((sigf * (self.rs - self.rb)) / (self.rs * muiter[0])) - - # Check to see if the material already exists before creating a new one - requiredID = '|{:.4f}|'.format(float(muiter[0])) - material = next((x for x in G.materials if x.ID == requiredID), None) - if muiter.index == 0: - if material: - self.startmaterialnum = material.numID - self.matID.append(material.numID) - else: - self.startmaterialnum = len(G.materials) - if not material: - m = DispersiveMaterial(len(G.materials), requiredID) - m.type = 'debye' - m.averagable = False - m.poles = 1 - if m.poles > config.get_model_config().materials['maxpoles']: - config.get_model_config().materials['maxpoles'] = m.poles - m.er = eri - m.se = sig - m.deltaer.append(er - eri) - m.tau.append(DispersiveMaterial.watertau) - G.materials.append(m) - self.matID.append(m.numID) - - muiter.iternext() - - - -class RangeMaterial: - """Material defined with a given range of parameters to be used for - factal spatial disttibutions - """ - - def __init__(self, ID, er_range, sigma_range, mu_range, ro_range): - """ - Args: - ID: string for name of the material. - er_range: tuple of floats for relative permittivity range of the material. - sigma_range: tuple of floats for electric conductivity range of the material. - mu_range: tuple of floats for magnetic permeability of material. - ro_range: tuple of floats for magnetic loss range of material. - """ - - self.ID = ID - self.er = er_range - self.sig = sigma_range - self.mu = mu_range - self.ro = ro_range - self.startmaterialnum = 0 #This is not really needed anymore and code that uses it can be removed. - # store all of the material IDs in a list instead of storing only the first number of the material - # and assume that all must be sequentially numbered. This allows for more general mixing models - self.matID = [] - - - def calculate_properties(self, nbins, G): - """Calculates the properties of the materials. - - Args: - nbins: int for number of bins to use to create the different materials. - G: FDTDGrid class describing a grid in a model. - """ - - # Generate a set of relative permittivity bins based on the given range - erbins = np.linspace(self.er[0], self.er[1], nbins+1) - # Generate a range of relative permittivity values the mid-point of - # each bin to make materials from - #ermaterials = erbins + np.abs((erbins[1] - erbins[0])) / 2 - ermaterials = 0.5*(erbins[1:nbins+1] + erbins[0:nbins]) - - # Generate a set of conductivity bins based on the given range - sigmabins = np.linspace(self.sig[0], self.sig[1], nbins+1) - # Generate a range of conductivity values the mid-point of - # each bin to make materials from - #sigmamaterials = sigmabins + (sigmabins[1] - sigmabins[0]) / 2 - sigmamaterials = 0.5*(sigmabins[1:nbins+1] + sigmabins[0:nbins]) - - # Generate a set of magnetic permeability bins based on the given range - mubins = np.linspace(self.mu[0], self.mu[1], nbins+1) - # Generate a range of magnetic permeability values the mid-point of - # each bin to make materials from - #mumaterials = mubins + np.abs((mubins[1] - mubins[0])) / 2 - mumaterials = 0.5*(mubins[1:nbins+1] + mubins[0:nbins]) - - # Generate a set of magnetic loss bins based on the given range - robins = np.linspace(self.ro[0], self.ro[1], nbins+1) - # Generate a range of magnetic loss values the mid-point of - # each bin to make materials from - #romaterials = robins + np.abs((robins[1] - robins[0])) / 2 - romaterials = 0.5*(robins[1:nbins+1] + robins[0:nbins]) - - - # Iterate over the bins - for iter in np.arange(0,nbins): - - # Relative permittivity - er = ermaterials[iter] - - # Effective conductivity - se = sigmamaterials[iter] - - # magnetic permeability - mr = mumaterials[iter] - - # magnetic loss - sm = romaterials[iter] - - # Check to see if the material already exists before creating a new one - requiredID = '|{:.4f}+{:.4f}+{:.4f}+{:.4f}|'.format(float(er),float(se),float(mr),float(sm)) - material = next((x for x in G.materials if x.ID == requiredID), None) - if iter == 0: - if material: - self.startmaterialnum = material.numID - self.matID.append(material.numID) - else: - self.startmaterialnum = len(G.materials) - if not material: - m = Material(len(G.materials), requiredID) - m.type = '' - m.averagable = True - m.er = er - m.se = se - m.mr = mr - m.sm = sm - G.materials.append(m) - self.matID.append(m.numID) - - - -class ListMaterial: - """A list of predefined materials to be used for - factal spatial disttibutions. This command does not create new materials but collects them to be used in a - stochastic distribution by a fractal box. - """ - - def __init__(self, ID, listofmaterials): - """ - Args: - ID: string for name of the material. - listofmaterials: A list of material IDs. - - """ - - self.ID = ID - self.mat = listofmaterials - self.startmaterialnum = 0 #This is not really needed anymore - # store all of the material IDs in a list instead of storing only the first number of the material - # and assume that all must be sequentially numbered. This allows for more general mixing models - # this is important here as this model assumes predefined materials. - self.matID = [] - - - def calculate_properties(self, nbins, G): - """Calculates the properties of the materials. No Debye is used but name kept the same as used in other - class that needs Debye - - Args: - nbins: int for number of bins to use to create the different materials. - G: FDTDGrid class describing a grid in a model. - """ - - - # Iterate over the bins - for iter in np.arange(0,nbins): - - # Check to see if the material already exists before creating a new one - #requiredID = '|{:}_in_{:}|'.format((self.mat[iter]),(self.ID)) - requiredID = self.mat[iter] - material = next((x for x in G.materials if x.ID == requiredID), None) - self.matID.append(material.numID) - - #if iter == 0: - # if material: - # self.startmaterialnum = material.numID - # else: - # self.startmaterialnum = len(G.materials) - - #if not material: - # temp = next((x for x in G.materials if x.ID == self.mat[iter]), None) - # m = copy.deepcopy(temp) #This needs to import copy in order to work - # m.ID = requiredID - # m.numID = len(G.materials) - # G.materials.append(m) - - - if not material: - logger.exception(self.__str__() + f' material(s) {material} do not exist') - raise ValueError - - - - - -def create_built_in_materials(G): - """Creates pre-defined (built-in) materials. - - Args: - G: FDTDGrid class describing a grid in a model. - """ - - G.n_built_in_materials = len(G.materials) - - m = Material(0, 'pec') - m.se = float('inf') - m.type = 'builtin' - m.averagable = False - G.materials.append(m) - - m = Material(1, 'free_space') - m.type = 'builtin' - G.materials.append(m) - - G.n_built_in_materials = len(G.materials) - - -def calculate_water_properties(T=25, S=0): - """Get extended Debye model properties for water. - - Args: - T: float for emperature of water (degrees centigrade). - S: float for salinity of water (part per thousand). - - Returns: - eri: float for relative permittivity at infinite frequency. - er: float for static relative permittivity. - tau: float for relaxation time (s). - sig: float for conductivity (Siemens/m). - """ - - # Properties of water from: https://doi.org/10.1109/JOE.1977.1145319 - eri = 4.9 - er = 88.045 - 0.4147 * T + 6.295e-4 * T**2 + 1.075e-5 * T**3 - tau = (1 / (2 * np.pi)) * (1.1109e-10 - 3.824e-12 * T + 6.938e-14 * T**2 - - 5.096e-16 * T**3) - - delta = 25 - T - beta = (2.033e-2 + 1.266e-4 * delta + 2.464e-6 * delta**2 - S * - (1.849e-5 - 2.551e-7 * delta + 2.551e-8 * delta**2)) - sig_25s = S * (0.182521 - 1.46192e-3 * S + 2.09324e-5 * S**2 - 1.28205e-7 * S**3) - sig = sig_25s * np.exp(-delta * beta) - - return eri, er, tau, sig - - -def create_water(G, T=25, S=0): - """Creates single-pole Debye model for water with specified temperature and - salinity. - - Args: - T: float for temperature of water (degrees centigrade). - S: float for salinity of water (part per thousand). - G: FDTDGrid class describing a grid in a model. - """ - - eri, er, tau, sig = calculate_water_properties(T, S) - - G.n_built_in_materials = len(G.materials) - - m = DispersiveMaterial(len(G.materials), 'water') - m.averagable = False - m.type = 'builtin, debye' - m.poles = 1 - m.er = eri - m.se = sig - m.deltaer.append(er - eri) - m.tau.append(tau) - G.materials.append(m) - if config.get_model_config().materials['maxpoles'] == 0: - config.get_model_config().materials['maxpoles'] = 1 - - G.n_built_in_materials = len(G.materials) - - -def create_grass(G): - """Creates single-pole Debye model for grass - - Args: - G: FDTDGrid class describing a grid in a model. - """ - - # Properties of grass from: http://dx.doi.org/10.1007/BF00902994 - er = 18.5087 - eri = 12.7174 - tau = 1.0793e-11 - sig = 0 - - G.n_built_in_materials = len(G.materials) - - m = DispersiveMaterial(len(G.materials), 'grass') - m.averagable = False - m.type = 'builtin, debye' - m.poles = 1 - m.er = eri - m.se = sig - m.deltaer.append(er - eri) - m.tau.append(tau) - G.materials.append(m) - if config.get_model_config().materials['maxpoles'] == 0: - config.get_model_config().materials['maxpoles'] = 1 - - G.n_built_in_materials = len(G.materials) \ No newline at end of file + return materialsdata \ No newline at end of file diff --git a/gprMax/subgrids/user_objects.py b/gprMax/subgrids/user_objects.py index 1136ea01..1e700fc9 100644 --- a/gprMax/subgrids/user_objects.py +++ b/gprMax/subgrids/user_objects.py @@ -123,7 +123,7 @@ class SubGridBase(UserObjectMulti): self.subgrid = sg # Copy over built in materials - sg.materials = [copy(m) for m in grid.materials if m.numID in range(0, grid.n_built_in_materials + 1)] + sg.materials = [copy(m) for m in grid.materials if m.type == 'builtin'] # Don't mix and match different subgrid types for sg_made in grid.subgrids: From d95364a815ebb5f5632130e1c17ae6f9f9f53c5b Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Mon, 17 Apr 2023 14:35:05 +0100 Subject: [PATCH 17/32] Revert some of the style changes from PR341 --- gprMax/cmds_multiuse.py | 94 +++++++++++++++++++------------------- gprMax/cmds_singleuse.py | 55 ++++++++-------------- gprMax/config.py | 15 +++--- gprMax/geometry_outputs.py | 9 ++-- gprMax/hash_cmds_file.py | 5 +- gprMax/materials.py | 16 +++---- gprMax/waveforms.py | 12 ++--- setup.py | 73 +++++++++++++---------------- 8 files changed, 124 insertions(+), 155 deletions(-) diff --git a/gprMax/cmds_multiuse.py b/gprMax/cmds_multiuse.py index d2d005e7..3a8515e2 100644 --- a/gprMax/cmds_multiuse.py +++ b/gprMax/cmds_multiuse.py @@ -114,14 +114,12 @@ class Waveform(UserObjectMulti): try: wavetype = self.kwargs['wave_type'].lower() except KeyError: - logger.exception( - f"{self.params_str()} must have one of the following types {','.join(WaveformUser.types)}." - ) + logger.exception(f"{self.params_str()} must have one of the " + + f"following types {','.join(WaveformUser.types)}.") raise if wavetype not in WaveformUser.types: - logger.exception( - f"{self.params_str()} must have one of the following types {','.join(WaveformUser.types)}." - ) + logger.exception(f"{self.params_str()} must have one of the " + + f"following types {','.join(WaveformUser.types)}.") raise ValueError if wavetype != 'user': @@ -836,14 +834,15 @@ class Rx(UserObjectMulti): r.outputs[field] = np.zeros(grid.iterations, dtype=config.sim_config.dtypes['float_or_double']) else: - logger.exception( - f'{self.params_str()} contains an output type that is not allowable. Allowable outputs in current context are {allowableoutputs}.' - ) + logger.exception(f'{self.params_str()} contains an output ' + f'type that is not allowable. Allowable ' + f'outputs in current context are ' + f'{allowableoutputs}.') raise ValueError - logger.info( - f"{self.grid_name(grid)}Receiver at {p2[0]:g}m, {p2[1]:g}m, {p2[2]:g}m with output component(s) {', '.join(r.outputs)} created." - ) + logger.info(f"{self.grid_name(grid)}Receiver at {p2[0]:g}m, {p2[1]:g}m, " + f"{p2[2]:g}m with output component(s) " + f"{', '.join(r.outputs)} created.") grid.rxs.append(r) @@ -910,9 +909,10 @@ class RxArray(UserObjectMulti): 'not be less than the spatial discretisation.') raise ValueError - logger.info( - f'{self.grid_name(grid)}Receiver array {p3[0]:g}m, {p3[1]:g}m, {p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m with steps {dx * grid.dx:g}m, {dy * grid.dy:g}m, {dz * grid.dz:g}m' - ) + logger.info(f'{self.grid_name(grid)}Receiver array ' + f'{p3[0]:g}m, {p3[1]:g}m, {p3[2]:g}m, to ' + f'{p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m with steps ' + f'{dx * grid.dx:g}m, {dy * grid.dy:g}m, {dz * grid.dz:g}m') for x in range(xs, xf + 1, dx): for y in range(ys, yf + 1, dy): @@ -1024,9 +1024,10 @@ class Snapshot(UserObjectMulti): # Check and set output names for output in tmp: if output not in SnapshotUser.allowableoutputs.keys(): - logger.exception( - f"{self.params_str()} contains an output type that is not allowable. Allowable outputs in current context are {', '.join(SnapshotUser.allowableoutputs.keys())}." - ) + logger.exception(f"{self.params_str()} contains an output " + f"type that is not allowable. Allowable " + f"outputs in current context are " + f"{', '.join(SnapshotUser.allowableoutputs.keys())}.") raise ValueError else: outputs[output] = True @@ -1084,35 +1085,33 @@ class Material(UserObjectMulti): sm = self.kwargs['sm'] material_id = self.kwargs['id'] except KeyError: - logger.exception(f'{self.params_str()} requires exactly five parameters.') + logger.exception(f'{self.params_str()} requires exactly five ' + f'parameters.') raise if er < 1: - logger.exception( - f'{self.params_str()} requires a positive value of one or greater for static (DC) permittivity.' - ) + logger.exception(f'{self.params_str()} requires a positive value of ' + f'one or greater for static (DC) permittivity.') raise ValueError if se != 'inf': se = float(se) if se < 0: - logger.exception( - f'{self.params_str()} requires a positive value for electric conductivity.' - ) + logger.exception(f'{self.params_str()} requires a positive ' + f'value for electric conductivity.') raise ValueError else: se = float('inf') if mr < 1: - logger.exception( - f'{self.params_str()} requires a positive value of one or greater for magnetic permeability.' - ) + logger.exception(f'{self.params_str()} requires a positive value of ' + f'one or greater for magnetic permeability.') raise ValueError if sm < 0: - logger.exception( - f'{self.params_str()} requires a positive value for magnetic loss.' - ) + logger.exception(f'{self.params_str()} requires a positive value ' + f'for magnetic loss.') raise ValueError if any(x.ID == material_id for x in grid.materials): - logger.exception(f'{self.params_str()} with ID {material_id} already exists') + logger.exception(f'{self.params_str()} with ID {material_id} ' + f'already exists') raise ValueError # Create a new instance of the Material class material @@ -1127,9 +1126,9 @@ class Material(UserObjectMulti): m.averagable = False m.er = er - logger.info( - f'{self.grid_name(grid)}Material {m.ID} with eps_r={m.er:g}, sigma={m.se:g} S/m; mu_r={m.mr:g}, sigma*={m.sm:g} Ohm/m created.' - ) + logger.info(f'{self.grid_name(grid)}Material {m.ID} with eps_r={m.er:g}, ' + f'sigma={m.se:g} S/m; mu_r={m.mr:g}, sigma*={m.sm:g} Ohm/m ' + f'created.') grid.materials.append(m) @@ -1202,9 +1201,9 @@ class AddDebyeDispersion(UserObjectMulti): # Replace original material with newly created DispersiveMaterial grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] - logger.info( - f"{self.grid_name(grid)}Debye disperion added to {disp_material.ID} with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, and tau={', '.join('%4.3e' % tau for tau in disp_material.tau)} secs created." - ) + logger.info(f"{self.grid_name(grid)}Debye disperion added to {disp_material.ID} " + f"with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, " + f"and tau={', '.join('%4.3e' % tau for tau in disp_material.tau)} secs created.") class AddLorentzDispersion(UserObjectMulti): @@ -1280,8 +1279,10 @@ class AddLorentzDispersion(UserObjectMulti): grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] logger.info( - f"{self.grid_name(grid)}Lorentz disperion added to {disp_material.ID} with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, and gamma={', '.join('%4.3e' % delta for delta in disp_material.alpha)} created." - ) + f"{self.grid_name(grid)}Lorentz disperion added to {disp_material.ID} " + f"with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, " + f"omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, " + f"and gamma={', '.join('%4.3e' % delta for delta in disp_material.alpha)} created.") class AddDrudeDispersion(UserObjectMulti): @@ -1351,8 +1352,9 @@ class AddDrudeDispersion(UserObjectMulti): grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] logger.info( - f"{self.grid_name(grid)}Drude disperion added to {disp_material.ID} with omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, and gamma={', '.join('%4.3e' % alpha for alpha in disp_material.alpha)} secs created." - ) + f"{self.grid_name(grid)}Drude disperion added to {disp_material.ID} " + f"with omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, " + f"and gamma={', '.join('%4.3e' % alpha for alpha in disp_material.alpha)} secs created.") class SoilPeplinski(UserObjectMulti): @@ -1513,7 +1515,8 @@ class MaterialRange(UserObjectMulti): # Create a new instance of the Material class material # (start index after pec & free_space) - s = RangeMaterialUser(ID, (er_lower, er_upper), (sigma_lower, sigma_upper), (mr_lower, mr_upper), (ro_lower, ro_upper)) + s = RangeMaterialUser(ID, (er_lower, er_upper), (sigma_lower, sigma_upper), + (mr_lower, mr_upper), (ro_lower, ro_upper)) logger.info(self.grid_name(grid) + 'Material properties used to ' f'create {s.ID} with range(s) {s.er[0]:g} to {s.er[1]:g}, relative permittivity ' @@ -1547,8 +1550,7 @@ class MaterialList(UserObjectMulti): logger.exception(self.params_str() + ' requires at at least 2 ' 'parameters.') raise - - + if any(x.ID == ID for x in grid.mixingmodels): logger.exception(self.params_str() + f' with ID {ID} already exists') raise ValueError @@ -1564,7 +1566,6 @@ class MaterialList(UserObjectMulti): grid.mixingmodels.append(s) - class GeometryView(UserObjectMulti): """Outputs to file(s) information about the geometry (mesh) of model. @@ -1625,7 +1626,6 @@ class GeometryView(UserObjectMulti): dx, dy, dz = uip.discretise_static_point(dl) - if dx < 0 or dy < 0 or dz < 0: logger.exception(self.params_str() + ' the step size should not be ' 'less than zero.') diff --git a/gprMax/cmds_singleuse.py b/gprMax/cmds_singleuse.py index debc4e61..c0de561d 100644 --- a/gprMax/cmds_singleuse.py +++ b/gprMax/cmds_singleuse.py @@ -97,19 +97,16 @@ class Discretisation(UserObjectSingle): raise if G.dl[0] <= 0: - logger.exception( - f'{self.__str__()} discretisation requires the x-direction spatial step to be greater than zero' - ) + logger.exception(f'{self.__str__()} discretisation requires the ' + f'x-direction spatial step to be greater than zero') raise ValueError if G.dl[1] <= 0: - logger.exception( - f'{self.__str__()} discretisation requires the y-direction spatial step to be greater than zero' - ) + logger.exception(f'{self.__str__()} discretisation requires the ' + f'y-direction spatial step to be greater than zero') raise ValueError if G.dl[2] <= 0: - logger.exception( - f'{self.__str__()} discretisation requires the z-direction spatial step to be greater than zero' - ) + logger.exception(f'{self.__str__()} discretisation requires the ' + f'z-direction spatial step to be greater than zero') raise ValueError logger.info(f'Spatial discretisation: {G.dl[0]:g} x {G.dl[1]:g} x {G.dl[2]:g}m') @@ -134,9 +131,8 @@ class Domain(UserObjectSingle): raise if G.nx == 0 or G.ny == 0 or G.nz == 0: - logger.exception( - f'{self.__str__()} requires at least one cell in every dimension' - ) + logger.exception(f'{self.__str__()} requires at least one cell in ' + f'every dimension') raise ValueError logger.info(f"Domain size: {self.kwargs['p1'][0]:g} x {self.kwargs['p1'][1]:g} x " + @@ -190,9 +186,8 @@ class TimeStepStabilityFactor(UserObjectSingle): raise if f <= 0 or f > 1: - logger.exception( - f'{self.__str__()} requires the value of the time step stability factor to be between zero and one' - ) + logger.exception(f'{self.__str__()} requires the value of the time ' + f'step stability factor to be between zero and one') raise ValueError G.dt = G.dt * f @@ -256,14 +251,12 @@ class OMPThreads(UserObjectSingle): try: n = self.kwargs['n'] except KeyError: - logger.exception( - f'{self.__str__()} requires exactly one parameter to specify the number of CPU OpenMP threads to use' - ) + logger.exception(f'{self.__str__()} requires exactly one parameter ' + f'to specify the number of CPU OpenMP threads to use') raise if n < 1: - logger.exception( - f'{self.__str__()} requires the value to be an integer not less than one' - ) + logger.exception(f'{self.__str__()} requires the value to be an ' + f'integer not less than one') raise ValueError config.get_model_config().ompthreads = set_omp_threads(n) @@ -341,13 +334,9 @@ class SrcSteps(UserObjectSingle): logger.exception(f'{self.__str__()} requires exactly three parameters') raise - logger.info( - ( - f'Simple sources will step {G.srcsteps[0] * G.dx:g}m, ' - + f'{G.srcsteps[1] * G.dy:g}m, {G.srcsteps[2] * G.dz:g}m ' - + 'for each model run.' - ) - ) + logger.info(f'Simple sources will step {G.srcsteps[0] * G.dx:g}m, ' + + f'{G.srcsteps[1] * G.dy:g}m, {G.srcsteps[2] * G.dz:g}m ' + + 'for each model run.') class RxSteps(UserObjectSingle): @@ -368,13 +357,9 @@ class RxSteps(UserObjectSingle): logger.exception(f'{self.__str__()} requires exactly three parameters') raise - logger.info( - ( - f'All receivers will step {G.rxsteps[0] * G.dx:g}m, ' - + f'{G.rxsteps[1] * G.dy:g}m, {G.rxsteps[2] * G.dz:g}m ' - + 'for each model run.' - ) - ) + logger.info(f'All receivers will step {G.rxsteps[0] * G.dx:g}m, ' + + f'{G.rxsteps[1] * G.dy:g}m, {G.rxsteps[2] * G.dz:g}m ' + + 'for each model run.') class ExcitationFile(UserObjectSingle): diff --git a/gprMax/config.py b/gprMax/config.py index 5525b85b..19564d92 100644 --- a/gprMax/config.py +++ b/gprMax/config.py @@ -224,15 +224,14 @@ class SimulationConfig: # solver: cpu, cuda, opencl. # subgrid: whether the simulation uses sub-grids. # precision: data type for electromagnetic field output (single/double). + # progressbars: progress bars on stdoout or not - switch off + # progressbars when logging level is greater than + # info (20) - self.general = { - 'solver': 'cpu', - 'subgrid': False, - 'precision': 'single', - 'progressbars': args.log_level <= 20, - } - # Progress bars on stdoout or not - switch off progressbars when - # logging level is greater than info (20) + self.general = {'solver': 'cpu', + 'subgrid': False, + 'precision': 'single', + 'progressbars': args.log_level <= 20} self.em_consts = {'c': c, # Speed of light in free space (m/s) 'e0': e0, # Permittivity of free space (F/m) diff --git a/gprMax/geometry_outputs.py b/gprMax/geometry_outputs.py index 471c0221..62e05fca 100644 --- a/gprMax/geometry_outputs.py +++ b/gprMax/geometry_outputs.py @@ -277,11 +277,10 @@ class Comments(): """ # Comments for Paraview macro - comments = {'gprMax_version': __version__, 'dx_dy_dz': self.dx_dy_dz_comment()} - comments['nx_ny_nz'] = self.nx_ny_nz_comment() - - # Write the name and numeric ID for each material - comments['Materials'] = self.materials_comment() + comments = {'gprMax_version': __version__, + 'dx_dy_dz': self.dx_dy_dz_comment(), + 'nx_ny_nz': self.nx_ny_nz_comment(), + 'Materials': self.materials_comment()} # Write the name and numeric ID for each material # Write information on PMLs, sources, and receivers if not self.materials_only: diff --git a/gprMax/hash_cmds_file.py b/gprMax/hash_cmds_file.py index b4a60826..9dac055d 100644 --- a/gprMax/hash_cmds_file.py +++ b/gprMax/hash_cmds_file.py @@ -178,9 +178,8 @@ def write_processed_file(processedlines): for item in processedlines: f.write(f'{item}') - logger.info( - f'Written input commands, after processing any Python code and include commands, to file: {processedfile}\n' - ) + logger.info(f'Written input commands, after processing any Python code and ' + f'include commands, to file: {processedfile}\n') def check_cmd_names(processedlines, checkessential=True): diff --git a/gprMax/materials.py b/gprMax/materials.py index b58ec8f0..a16a905d 100644 --- a/gprMax/materials.py +++ b/gprMax/materials.py @@ -620,13 +620,11 @@ def process_materials(G): z += 3 # Construct information on material properties for printing table - materialtext = [ - str(material.numID), - material.ID[:50] if len(material.ID) > 50 else material.ID, - material.type, - f'{material.er:g}', - f'{material.se:g}', - ] + materialtext = [str(material.numID), + material.ID[:50] if len(material.ID) > 50 else material.ID, + material.type, + f'{material.er:g}', + f'{material.se:g}'] if config.get_model_config().materials['maxpoles'] > 0: if 'debye' in material.type: materialtext.append('\n'.join('{:g}'.format(deltaer) for deltaer in material.deltaer)) @@ -646,9 +644,7 @@ def process_materials(G): else: materialtext.extend(['', '', '', '', '']) - materialtext.extend( - (f'{material.mr:g}', f'{material.sm:g}', material.averagable) - ) + materialtext.extend((f'{material.mr:g}', f'{material.sm:g}', material.averagable)) materialsdata.append(materialtext) return materialsdata \ No newline at end of file diff --git a/gprMax/waveforms.py b/gprMax/waveforms.py index b6fbfeca..84c65f4e 100644 --- a/gprMax/waveforms.py +++ b/gprMax/waveforms.py @@ -56,13 +56,11 @@ class Waveform: if self.freq is None: raise ValueError("Frequency is not specified") - if self.type in [ - 'gaussian', - 'gaussiandot', - 'gaussiandotnorm', - 'gaussianprime', - 'gaussiandoubleprime', - ]: + if self.type in ['gaussian', + 'gaussiandot', + 'gaussiandotnorm', + 'gaussianprime', + 'gaussiandoubleprime']: self.chi = 1 / self.freq self.zeta = 2 * np.pi**2 * self.freq**2 elif self.type in ['gaussiandotdot', 'gaussiandotdotnorm', 'ricker']: diff --git a/setup.py b/setup.py index 540b7c92..44bfa294 100644 --- a/setup.py +++ b/setup.py @@ -216,13 +216,11 @@ else: pass os.environ['MIN_SUPPORTED_MACOSX_DEPLOYMENT_TARGET'] = MIN_MACOS_VERSION # Sometimes worth testing with '-fstrict-aliasing', '-fno-common' - compile_args = [ - '-O3', - '-w', - '-fopenmp', - '-march=native', - f'-mmacosx-version-min={MIN_MACOS_VERSION}', - ] + compile_args = ['-O3', + '-w', + '-fopenmp', + '-march=native', + f'-mmacosx-version-min={MIN_MACOS_VERSION}'] linker_args = ['-fopenmp', f'-mmacosx-version-min={MIN_MACOS_VERSION}'] libraries=['gomp'] @@ -258,42 +256,37 @@ else: with open('README.rst','r') as fd: long_description = fd.read() - setup( - name='gprMax', - version=version, - author='Craig Warren, Antonis Giannopoulos, and John Hartley', - url='http://www.gprmax.com', - description='Electromagnetic Modelling Software based on the ' - + 'Finite-Difference Time-Domain (FDTD) method', - long_description=long_description, - long_description_content_type="text/x-rst", - license='GPLv3+', - python_requires=f'>{str(MIN_PYTHON_VERSION[0])}.{str(MIN_PYTHON_VERSION[1])}', - install_requires=[ - 'colorama', - 'cython', - 'h5py', - 'jinja2', - 'matplotlib', - 'numpy', - 'psutil', - 'scipy', - 'terminaltables', - 'tqdm', - ], + setup(name='gprMax', + version=version, + author='Craig Warren, Antonis Giannopoulos, and John Hartley', + url='http://www.gprmax.com', + description='Electromagnetic Modelling Software based on the ' + + 'Finite-Difference Time-Domain (FDTD) method', + long_description=long_description, + long_description_content_type="text/x-rst", + license='GPLv3+', + python_requires=f'>{str(MIN_PYTHON_VERSION[0])}.{str(MIN_PYTHON_VERSION[1])}', + install_requires=['colorama', + 'cython', + 'h5py', + 'jinja2', + 'matplotlib', + 'numpy', + 'psutil', + 'scipy', + 'terminaltables', + 'tqdm'], ext_modules=extensions, packages=find_packages(), include_package_data=True, include_dirs=[np.get_include()], zip_safe=False, - classifiers=[ - 'Environment :: Console', - 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', - 'Operating System :: MacOS', - 'Operating System :: Microsoft :: Windows', - 'Operating System :: POSIX :: Linux', - 'Programming Language :: Cython', - 'Programming Language :: Python :: 3', - 'Topic :: Scientific/Engineering', - ], + classifiers=['Environment :: Console', + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + 'Operating System :: MacOS', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Cython', + 'Programming Language :: Python :: 3', + 'Topic :: Scientific/Engineering'], ) From 72c85b29d6aff54182ce6d12ace28ef140250cad Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 02:06:25 +0530 Subject: [PATCH 18/32] Made changes to the reformatted code as per the suggestions given. --- gprMax/hash_cmds_file.py | 4 +- gprMax/hash_cmds_singleuse.py | 4 +- gprMax/updates.py | 32 +++++-------- .../pml_3D_pec_plate/pml_3D_pec_plate.py | 24 ++++------ .../pml_3D_pec_plate/pml_3D_pec_plate_ref.py | 24 ++++------ testing/test_experimental.py | 10 ++-- testing/test_models.py | 47 +++++++------------ 7 files changed, 58 insertions(+), 87 deletions(-) diff --git a/gprMax/hash_cmds_file.py b/gprMax/hash_cmds_file.py index 9dac055d..845b21d5 100644 --- a/gprMax/hash_cmds_file.py +++ b/gprMax/hash_cmds_file.py @@ -178,8 +178,8 @@ def write_processed_file(processedlines): for item in processedlines: f.write(f'{item}') - logger.info(f'Written input commands, after processing any Python code and ' - f'include commands, to file: {processedfile}\n') + logger.info(f'Written input commands, after processing any Python ' + + f'code and include commands, to file: {processedfile}\n') def check_cmd_names(processedlines, checkessential=True): diff --git a/gprMax/hash_cmds_singleuse.py b/gprMax/hash_cmds_singleuse.py index 8edc496d..86ac37cc 100644 --- a/gprMax/hash_cmds_singleuse.py +++ b/gprMax/hash_cmds_singleuse.py @@ -55,7 +55,7 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = tuple(int(x) for x in singlecmds[cmd].split()) if len(tmp) != 1: - logger.exception(f'{cmd} requires exactly one parameter to specify ' + logger.exception(f'{cmd} requires exactly one parameter to specify ' + f'the number of CPU OpenMP threads to use') raise ValueError @@ -94,7 +94,7 @@ def process_singlecmds(singlecmds): if singlecmds[cmd] is not None: tmp = singlecmds[cmd].split() if len(tmp) != 1: - logger.exception(f'{cmd} requires exactly one parameter to specify the ' + logger.exception(f'{cmd} requires exactly one parameter to specify the ' + f'time window. Either in seconds or number of iterations.') raise ValueError tmp = tmp[0].lower() diff --git a/gprMax/updates.py b/gprMax/updates.py index 75961ab3..fa063e74 100644 --- a/gprMax/updates.py +++ b/gprMax/updates.py @@ -884,27 +884,19 @@ class OpenCLUpdates: knl_electric_name = getattr(knl_pml_updates_electric, knl_name) knl_magnetic_name = getattr(knl_pml_updates_magnetic, knl_name) - pml.update_electric_dev = self.elwise( - self.ctx, - knl_electric_name['args_opencl'].substitute( - {'REAL': config.sim_config.dtypes['C_float_or_double']} - ), - knl_electric_name['func'].substitute(subs), - f'pml_updates_electric_{knl_name}', - preamble=self.knl_common, - options=config.sim_config.devices['compiler_opts'], - ) + pml.update_electric_dev = self.elwise(self.ctx, + knl_electric_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), + knl_electric_name['func'].substitute(subs), + 'pml_updates_electric_' + knl_name, + preamble=self.knl_common, + options=config.sim_config.devices['compiler_opts']) - pml.update_magnetic_dev = self.elwise( - self.ctx, - knl_magnetic_name['args_opencl'].substitute( - {'REAL': config.sim_config.dtypes['C_float_or_double']} - ), - knl_magnetic_name['func'].substitute(subs), - f'pml_updates_magnetic_{knl_name}', - preamble=self.knl_common, - options=config.sim_config.devices['compiler_opts'], - ) + pml.update_magnetic_dev = self.elwise(self.ctx, + knl_magnetic_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), + knl_magnetic_name['func'].substitute(subs), + 'pml_updates_magnetic_' + knl_name, + preamble=self.knl_common, + options=config.sim_config.devices['compiler_opts']) def _set_rx_knl(self): """Receivers - initialises arrays on compute device, prepares kernel and diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py index eda4698f..e87751e5 100755 --- a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py +++ b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py @@ -29,20 +29,16 @@ rx = gprMax.Rx(p1=(0.038, 0.114, 0.013)) plate = gprMax.Plate(p1=(0.013, 0.013, 0.013), p2=(0.038, 0.113, 0.013), material_id='pec') -gv1 = gprMax.GeometryView( - p1=(0, 0, 0), - p2=(x, y, z), - dl=(dl, dl, dl), - filename=Path(*parts[:-1], f'{parts[-1]}_n'), - output_type='n', -) -gv2 = gprMax.GeometryView( - p1=(0, 0, 0), - p2=(x, y, z), - dl=(dl, dl, dl), - filename=Path(*parts[:-1], f'{parts[-1]}_f'), - output_type='f', -) +gv1 = gprMax.GeometryView(p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_n'), + output_type='n',) +gv2 = gprMax.GeometryView(p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_f'), + output_type='f',) pmls = {'CFS-PML': {'pml': gprMax.PMLProps(formulation='HORIPML', thickness=10), # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py index c1a717c0..f9f42c9f 100755 --- a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py +++ b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py @@ -29,20 +29,16 @@ rx = gprMax.Rx(p1=(0.113, 0.189, 0.088)) plate = gprMax.Plate(p1=(0.088, 0.088, 0.088), p2=(0.113, 0.188, 0.088), material_id='pec') -gv1 = gprMax.GeometryView( - p1=(0, 0, 0), - p2=(x, y, z), - dl=(dl, dl, dl), - filename=Path(*parts[:-1], f'{parts[-1]}_n'), - output_type='n', -) -gv2 = gprMax.GeometryView( - p1=(0, 0, 0), - p2=(x, y, z), - dl=(dl, dl, dl), - filename=Path(*parts[:-1], f'{parts[-1]}_f'), - output_type='f', -) +gv1 = gprMax.GeometryView(p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_n'), + output_type='n',) +gv2 = gprMax.GeometryView(p1=(0, 0, 0), + p2=(x, y, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_f'), + output_type='f',) pml = gprMax.PMLProps(formulation='HORIPML', thickness=10) diff --git a/testing/test_experimental.py b/testing/test_experimental.py index 586002df..1146f935 100644 --- a/testing/test_experimental.py +++ b/testing/test_experimental.py @@ -81,12 +81,10 @@ realmax = np.where(np.abs(real[:, 1]) == 1)[0][0] difftime = - (timemodel[modelmax] - real[realmax, 0]) # Plot modelled and real data -fig, ax = plt.subplots( - num=f'{modelfile.stem}_vs_{realfile.stem}', - figsize=(20, 10), - facecolor='w', - edgecolor='w', -) +fig, ax = plt.subplots(num=f'{modelfile.stem}_vs_{realfile.stem}', + figsize=(20, 10), + facecolor='w', + edgecolor='w',) ax.plot(timemodel + difftime, model, 'r', lw=2, label='Model') ax.plot(real[:, 0], real[:, 1], 'r', ls='--', lw=2, label='Experiment') ax.set_xlabel('Time [s]') diff --git a/testing/test_models.py b/testing/test_models.py index ad864375..f21bc144 100644 --- a/testing/test_models.py +++ b/testing/test_models.py @@ -130,12 +130,9 @@ for i, model in enumerate(testmodels): # Check that type of float used to store fields matches if filetest[path + outputstest[0]].dtype != fileref[path + outputsref[0]].dtype: - logger.warning( - ( - f'Type of floating point number in test model ({filetest[path + outputstest[0]].dtype}) does not ' - + f'match type in reference solution ({fileref[path + outputsref[0]].dtype})\n' - ) - ) + logger.warning(f'Type of floating point number in test model ' + + f'({filetest[path + outputstest[0]].dtype}) does not ' + + f'match type in reference solution ({fileref[path + outputsref[0]].dtype})\n') float_or_doubleref = fileref[path + outputsref[0]].dtype float_or_doubletest = filetest[path + outputstest[0]].dtype @@ -176,22 +173,18 @@ for i, model in enumerate(testmodels): # Replace any NaNs or Infs from zero division datadiffs[:, i][np.invert(np.isfinite(datadiffs[:, i]))] = 0 - # Store maxi difference + # Store max difference maxdiff = np.amax(np.amax(datadiffs)) testresults[model]['Max diff'] = maxdiff # Plot datasets - fig1, ((ex1, hx1), (ey1, hy1), (ez1, hz1)) = plt.subplots( - nrows=3, - ncols=2, - sharex=False, - sharey='col', - subplot_kw=dict(xlabel='Time [ns]'), - num=f'{model}.in', - figsize=(20, 10), - facecolor='w', - edgecolor='w', - ) + fig1, ((ex1, hx1), (ey1, hy1), (ez1, hz1)) = plt.subplots(nrows=3, ncols=2, + sharex=False, sharey='col', + subplot_kw=dict(xlabel='Time [ns]'), + num=model + '.in', + figsize=(20, 10), + facecolor='w', + edgecolor='w') ex1.plot(timetest, datatest[:, 0], 'r', lw=2, label=model) ex1.plot(timeref, dataref[:, 0], 'g', lw=2, ls='--', label=f'{model}(Ref)') ey1.plot(timetest, datatest[:, 1], 'r', lw=2, label=model) @@ -214,17 +207,13 @@ for i, model in enumerate(testmodels): ax.legend() # Plot diffs - fig2, ((ex2, hx2), (ey2, hy2), (ez2, hz2)) = plt.subplots( - nrows=3, - ncols=2, - sharex=False, - sharey='col', - subplot_kw=dict(xlabel='Time [ns]'), - num=f'Diffs: {model}.in', - figsize=(20, 10), - facecolor='w', - edgecolor='w', - ) + fig2, ((ex2, hx2), (ey2, hy2), (ez2, hz2)) = plt.subplots(nrows=3, ncols=2, + sharex=False, sharey='col', + subplot_kw=dict(xlabel='Time [ns]'), + num='Diffs: ' + model + '.in', + figsize=(20, 10), + facecolor='w', + edgecolor='w') ex2.plot(timeref, datadiffs[:, 0], 'r', lw=2, label='Ex') ey2.plot(timeref, datadiffs[:, 1], 'r', lw=2, label='Ey') ez2.plot(timeref, datadiffs[:, 2], 'r', lw=2, label='Ez') From 3ba49bfd1473a781db9aab4bf46cfdc1a500f858 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 12:43:33 +0530 Subject: [PATCH 19/32] updated a few lines of code to make them more cleaner. --- gprMax/fields_outputs.py | 2 +- gprMax/geometry_outputs.py | 3 +-- gprMax/scene.py | 2 +- gprMax/sources.py | 49 +++++++++++++++++++------------------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/gprMax/fields_outputs.py b/gprMax/fields_outputs.py index 7ddc9a5d..39d306d4 100644 --- a/gprMax/fields_outputs.py +++ b/gprMax/fields_outputs.py @@ -76,7 +76,7 @@ def write_hdf5_outputfile(outputfile, G): # Write meta data and data for any subgrids if sg_rxs: for sg in G.subgrids: - grp = f.create_group('/subgrids/' + sg.name) + grp = f.create_group(f'/subgrids/{sg.name}') write_hd5_data(grp, sg, is_subgrid=True) if G.rxs or sg_rxs: diff --git a/gprMax/geometry_outputs.py b/gprMax/geometry_outputs.py index 62e05fca..b1e387cb 100644 --- a/gprMax/geometry_outputs.py +++ b/gprMax/geometry_outputs.py @@ -371,8 +371,7 @@ class GeometryObjects: parts = config.sim_config.input_file_path.with_suffix('').parts self.filename_hdf5 = Path(*parts[:-1], self.basefilename) self.filename_hdf5 = self.filename_hdf5.with_suffix('.h5') - self.filename_materials = Path( - *parts[:-1], self.basefilename + '_materials') + self.filename_materials = Path(*parts[:-1], f'{self.basefilename}_materials') self.filename_materials = self.filename_materials.with_suffix('.txt') # Sizes of arrays to write necessary to update progress bar diff --git a/gprMax/scene.py b/gprMax/scene.py index 9f6f37a4..363cad5e 100644 --- a/gprMax/scene.py +++ b/gprMax/scene.py @@ -105,7 +105,7 @@ class Scene: # Check essential commands and warn user if missing for cmd_type in self.essential_cmds: - d = any([isinstance(cmd, cmd_type) for cmd in cmds_unique]) + d = any(isinstance(cmd, cmd_type) for cmd in cmds_unique) if not d: logger.exception('Your input file is missing essential commands ' + 'required to run a model. Essential commands ' + diff --git a/gprMax/sources.py b/gprMax/sources.py index d44e1434..88d3ac6b 100644 --- a/gprMax/sources.py +++ b/gprMax/sources.py @@ -96,7 +96,7 @@ class VoltageSource(Source): i = self.xcoord j = self.ycoord k = self.zcoord - componentID = 'E' + self.polarisation + componentID = f'E{self.polarisation}' if self.polarisation == 'x': if self.resistance != 0: @@ -130,30 +130,31 @@ class VoltageSource(Source): G: FDTDGrid class describing a grid in a model. """ - if self.resistance != 0: - i = self.xcoord - j = self.ycoord - k = self.zcoord + if self.resistance == 0: + return + i = self.xcoord + j = self.ycoord + k = self.zcoord - componentID = 'E' + self.polarisation - requirednumID = G.ID[G.IDlookup[componentID], i, j, k] - material = next(x for x in G.materials if x.numID == requirednumID) - newmaterial = deepcopy(material) - newmaterial.ID = material.ID + '+' + self.ID - newmaterial.numID = len(G.materials) - newmaterial.averagable = False - newmaterial.type += ',\nvoltage-source' if newmaterial.type else 'voltage-source' + componentID = f'E{self.polarisation}' + requirednumID = G.ID[G.IDlookup[componentID], i, j, k] + material = next(x for x in G.materials if x.numID == requirednumID) + newmaterial = deepcopy(material) + newmaterial.ID = f'{material.ID}+{self.ID}' + newmaterial.numID = len(G.materials) + newmaterial.averagable = False + newmaterial.type += ',\nvoltage-source' if newmaterial.type else 'voltage-source' - # Add conductivity of voltage source to underlying conductivity - if self.polarisation == 'x': - newmaterial.se += G.dx / (self.resistance * G.dy * G.dz) - elif self.polarisation == 'y': - newmaterial.se += G.dy / (self.resistance * G.dx * G.dz) - elif self.polarisation == 'z': - newmaterial.se += G.dz / (self.resistance * G.dx * G.dy) + # Add conductivity of voltage source to underlying conductivity + if self.polarisation == 'x': + newmaterial.se += G.dx / (self.resistance * G.dy * G.dz) + elif self.polarisation == 'y': + newmaterial.se += G.dy / (self.resistance * G.dx * G.dz) + elif self.polarisation == 'z': + newmaterial.se += G.dz / (self.resistance * G.dx * G.dy) - G.ID[G.IDlookup[componentID], i, j, k] = newmaterial.numID - G.materials.append(newmaterial) + G.ID[G.IDlookup[componentID], i, j, k] = newmaterial.numID + G.materials.append(newmaterial) class HertzianDipole(Source): @@ -180,7 +181,7 @@ class HertzianDipole(Source): i = self.xcoord j = self.ycoord k = self.zcoord - componentID = 'E' + self.polarisation + componentID = f'E{self.polarisation}' if self.polarisation == 'x': Ex[i, j, k] -= (updatecoeffsE[ID[G.IDlookup[componentID], i, j, k], 4] * self.waveformvalues_halfdt[iteration] * self.dl * @@ -217,7 +218,7 @@ class MagneticDipole(Source): i = self.xcoord j = self.ycoord k = self.zcoord - componentID = 'H' + self.polarisation + componentID = f'H{self.polarisation}' if self.polarisation == 'x': Hx[i, j, k] -= (updatecoeffsH[ID[G.IDlookup[componentID], i, j, k], 4] * From 9e37e5864a359d75caf27d0e3aca3f85a302c4ad Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 18:12:16 +0530 Subject: [PATCH 20/32] Reformatted some code in a few more files. --- .../gssi_400_over_fractal_subsurface.py | 8 ++++--- gprMax/contexts.py | 22 ++++++++----------- gprMax/model_build_run.py | 15 ++++++------- setup.py | 8 +++---- 4 files changed, 25 insertions(+), 28 deletions(-) diff --git a/examples/subgrids/gssi_400_over_fractal_subsurface.py b/examples/subgrids/gssi_400_over_fractal_subsurface.py index 0ed7ae67..9a4546a8 100644 --- a/examples/subgrids/gssi_400_over_fractal_subsurface.py +++ b/examples/subgrids/gssi_400_over_fractal_subsurface.py @@ -102,9 +102,11 @@ halfspace = gprMax.Box(p1=(0, 0, 0), p2=(x, y, antenna_p[2]), material_id='soil' scene.add(halfspace) for i in range(1, 51): - snap = gprMax.Snapshot(p1=(0, y / 2, 0), p2=(x, y / 2 + dl, z), dl=(dl, dl, dl), - filename=Path(*parts[:-1], parts[-1] + '_' + str(i)).name, - time=i * tw / 50) + snap = gprMax.Snapshot(p1=(0, y / 2, 0), + p2=(x, y / 2 + dl, z), + dl=(dl, dl, dl), + filename=Path(*parts[:-1], f'{parts[-1]}_{str(i)}').name, + time=i * tw / 50,) scene.add(snap) # create a geometry view of the main grid and the sub grid stitched together diff --git a/gprMax/contexts.py b/gprMax/contexts.py index f0e3c952..fbde3698 100644 --- a/gprMax/contexts.py +++ b/gprMax/contexts.py @@ -92,7 +92,7 @@ class Context: def print_logo_copyright(self): """Prints gprMax logo, version, and copyright/licencing information.""" - logo_copyright = logo(__version__ + ' (' + codename + ')') + logo_copyright = logo(f'{__version__} ({codename})') logger.basic(logo_copyright) def print_sim_time_taken(self): @@ -164,19 +164,15 @@ class MPIContext(Context): executor = self.MPIExecutor(self._run_model, comm=self.comm) # Check GPU resources versus number of MPI tasks - if executor.is_master(): - if config.sim_config.general['solver'] == 'cuda': - if executor.size - 1 > len(config.sim_config.devices['devs']): - logger.exception('Not enough GPU resources for number of ' - 'MPI tasks requested. Number of MPI tasks ' - 'should be equal to number of GPUs + 1.') - raise ValueError - - # Create job list - jobs = [] - for i in self.model_range: - jobs.append({'i': i}) + if (executor.is_master() and + config.sim_config.general['solver'] == 'cuda' and + executor.size - 1 > len(config.sim_config.devices['devs'])): + logger.exception('Not enough GPU resources for number of ' + 'MPI tasks requested. Number of MPI tasks ' + 'should be equal to number of GPUs + 1.') + raise ValueError + jobs = [{'i': i} for i in self.model_range] # Send the workers to their work loop executor.start() if executor.is_master(): diff --git a/gprMax/model_build_run.py b/gprMax/model_build_run.py index 4fd1191d..19a4753d 100644 --- a/gprMax/model_build_run.py +++ b/gprMax/model_build_run.py @@ -73,7 +73,7 @@ class ModelBuildRun: self.p = psutil.Process() # Normal model reading/building process; bypassed if geometry information to be reused - self.build_geometry() if not config.get_model_config().reuse_geometry else self.reuse_geometry() + self.reuse_geometry() if config.get_model_config().reuse_geometry else self.build_geometry() logger.info(f'\nOutput directory: {config.get_model_config().output_file_path.parent.resolve()}') @@ -109,11 +109,11 @@ class ModelBuildRun: # Write files for any geometry views and geometry object outputs gvs = G.geometryviews + [gv for sg in G.subgrids for gv in sg.geometryviews] - if not (gvs or G.geometryobjectswrite) and config.sim_config.args.geometry_only: + if (not gvs and not G.geometryobjectswrite and config.sim_config.args.geometry_only): logger.exception('\nNo geometry views or geometry objects found.') raise ValueError save_geometry_views(gvs) - + if G.geometryobjectswrite: logger.info('') for i, go in enumerate(G.geometryobjectswrite): @@ -271,8 +271,7 @@ class ModelBuildRun: logger.warning(f"You have specified more threads ({config.get_model_config().ompthreads}) " f"than available physical CPU cores ({config.sim_config.hostinfo['physicalcores']}). " f"This may lead to degraded performance.") - # Print information about any compute device, e.g. GPU, in use - elif config.sim_config.general['solver'] == 'cuda' or config.sim_config.general['solver'] == 'opencl': + elif config.sim_config.general['solver'] in ['cuda', 'opencl']: if config.sim_config.general['solver'] == 'opencl': solvername = 'OpenCL' platformname = ' on ' + ' '.join(config.get_model_config().device['dev'].platform.name.split()) @@ -338,11 +337,11 @@ class GridBuilder: pbar.close() def tm_grid_update(self): - if '2D TMx' == config.get_model_config().mode: + if config.get_model_config().mode == '2D TMx': self.grid.tmx() - elif '2D TMy' == config.get_model_config().mode: + elif config.get_model_config().mode == '2D TMy': self.grid.tmy() - elif '2D TMz' == config.get_model_config().mode: + elif config.get_model_config().mode == '2D TMz': self.grid.tmz() def update_voltage_source_materials(self): diff --git a/setup.py b/setup.py index 44bfa294..8f3acf4f 100644 --- a/setup.py +++ b/setup.py @@ -134,12 +134,12 @@ if 'cleanall' in sys.argv: for file in cythonfiles: filebase = os.path.splitext(file)[0] # Remove Cython C files - if os.path.isfile(filebase + '.c'): + if os.path.isfile(f'{filebase}.c'): try: - os.remove(filebase + '.c') - print(f'Removed: {filebase + ".c"}') + os.remove(f'{filebase}.c') + print(f'Removed: {filebase}.c') except OSError: - print(f'Could not remove: {filebase + ".c"}') + print(f'Could not remove: {filebase}.c') # Remove compiled Cython modules libfile = (glob.glob(os.path.join(os.getcwd(), os.path.splitext(file)[0]) + '*.pyd') + From 0363f176f8495d8cb45ed798a6abb755d32a9b36 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 19:40:49 +0530 Subject: [PATCH 21/32] updated a few lines of code to make them more cleaner. --- gprMax/cmds_geometry/add_grass.py | 2 +- gprMax/cmds_geometry/add_surface_water.py | 62 ++++++++++------------- gprMax/cmds_geometry/box.py | 6 +-- gprMax/contexts.py | 6 ++- 4 files changed, 36 insertions(+), 40 deletions(-) diff --git a/gprMax/cmds_geometry/add_grass.py b/gprMax/cmds_geometry/add_grass.py index d932f680..7350853c 100644 --- a/gprMax/cmds_geometry/add_grass.py +++ b/gprMax/cmds_geometry/add_grass.py @@ -74,7 +74,7 @@ class AddGrass(UserObjectGeometry): limits = self.kwargs['limits'] n_blades = self.kwargs['n_blades'] except KeyError: - logger.exception(self.__str__() + ' requires at least eleven parameters') + logger.exception(f'{self.__str__()} requires at least eleven parameters') raise try: diff --git a/gprMax/cmds_geometry/add_surface_water.py b/gprMax/cmds_geometry/add_surface_water.py index 4e8960ea..00d33a48 100644 --- a/gprMax/cmds_geometry/add_surface_water.py +++ b/gprMax/cmds_geometry/add_surface_water.py @@ -68,18 +68,16 @@ class AddSurfaceWater(UserObjectGeometry): fractal_box_id = self.kwargs['fractal_box_id'] depth = self.kwargs['depth'] except KeyError: - logger.exception(self.__str__() + ' requires exactly eight parameters') + logger.exception(f'{self.__str__()} requires exactly eight parameters') raise if self.do_rotate: self._do_rotate() - # Get the correct fractal volume - volumes = [volume for volume in grid.fractalvolumes if volume.ID == fractal_box_id] - if volumes: + if volumes := [volume for volume in grid.fractalvolumes if volume.ID == fractal_box_id]: volume = volumes[0] else: - logger.exception(self.__str__() + f' cannot find FractalBox {fractal_box_id}') + logger.exception(f'{self.__str__()} cannot find FractalBox {fractal_box_id}') raise ValueError p1, p2 = uip.check_box_points(p1, p2, self.__str__()) @@ -87,18 +85,18 @@ class AddSurfaceWater(UserObjectGeometry): xf, yf, zf = p2 if depth <= 0: - logger.exception(self.__str__() + ' requires a positive value for ' + - 'the depth of water') + logger.exception(f'{self.__str__()} requires a positive value for the ' + + f'depth of water') raise ValueError # Check for valid orientations if xs == xf: if ys == yf or zs == zf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError - if xs != volume.xs and xs != volume.xf: - logger.exception(self.__str__() + ' can only be used on the ' + - 'external surfaces of a fractal box') + if xs not in [volume.xs, volume.xf]: + logger.exception(f'{self.__str__()} can only be used on the external surfaces ' + f'of a fractal box') raise ValueError # xminus surface if xs == volume.xs: @@ -110,12 +108,12 @@ class AddSurfaceWater(UserObjectGeometry): filldepth = filldepthcells * grid.dx elif ys == yf: - if xs == xf or zs == zf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + if zs == zf: + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError - if ys != volume.ys and ys != volume.yf: - logger.exception(self.__str__() + ' can only be used on the ' + - 'external surfaces of a fractal box') + if ys not in [volume.ys, volume.yf]: + logger.exception(f'{self.__str__()} can only be used on the external surfaces ' + + f'of a fractal box') raise ValueError # yminus surface if ys == volume.ys: @@ -127,12 +125,9 @@ class AddSurfaceWater(UserObjectGeometry): filldepth = filldepthcells * grid.dy elif zs == zf: - if xs == xf or ys == yf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') - raise ValueError - if zs != volume.zs and zs != volume.zf: - logger.exception(self.__str__() + ' can only be used on the ' + - 'external surfaces of a fractal box') + if zs not in [volume.zs, volume.zf]: + logger.exception(f'{self.__str__()} can only be used on the external surfaces ' + f'of a fractal box') raise ValueError # zminus surface if zs == volume.zs: @@ -144,38 +139,35 @@ class AddSurfaceWater(UserObjectGeometry): filldepth = filldepthcells * grid.dz else: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError surface = next((x for x in volume.fractalsurfaces if x.surfaceID == requestedsurface), None) if not surface: - logger.exception(self.__str__() + f' specified surface {requestedsurface} ' + - 'does not have a rough surface applied') + logger.exception(f'{self.__str__()} specified surface {requestedsurface} ' + + f'does not have a rough surface applied') raise ValueError surface.filldepth = filldepthcells # Check that requested fill depth falls within range of surface roughness if surface.filldepth < surface.fractalrange[0] or surface.filldepth > surface.fractalrange[1]: - logger.exception(self.__str__() + ' requires a value for the depth ' + - 'of water that lies with the range of the requested ' + - 'surface roughness') + logger.exception(f'{self.__str__()} requires a value for the depth of water that lies with the ' + + f'range of the requested surface roughness') raise ValueError # Check to see if water has been already defined as a material - if not any(x.ID == 'water' for x in grid.materials): + if all(x.ID != 'water' for x in grid.materials): create_water(grid) # Check if time step for model is suitable for using water water = next((x for x in grid.materials if x.ID == 'water')) - testwater = next((x for x in water.tau if x < grid.dt), None) - if testwater: - logger.exception(self.__str__() + ' requires the time step for the ' + - 'model to be less than the relaxation time required ' + - 'to model water.') + if testwater := next((x for x in water.tau if x < grid.dt), None): + logger.exception(f'{self.__str__()} requires the time step for the model ' + f'to be less than the relaxation time required to model water.') raise ValueError - logger.info(self.grid_name(grid) + f'Water on surface from {xs * grid.dx:g}m, ' + + logger.info(f'{self.grid_name(grid)}Water on surface from {xs * grid.dx:g}m, ' + f'{ys * grid.dy:g}m, {zs * grid.dz:g}m, to {xf * grid.dx:g}m, ' + f'{yf * grid.dy:g}m, {zf * grid.dz:g}m with depth {filldepth:g}m, ' + f'added to {surface.operatingonID}.') diff --git a/gprMax/cmds_geometry/box.py b/gprMax/cmds_geometry/box.py index aa509bf7..1ab3459f 100644 --- a/gprMax/cmds_geometry/box.py +++ b/gprMax/cmds_geometry/box.py @@ -65,7 +65,7 @@ class Box(UserObjectGeometry): p1 = self.kwargs['p1'] p2 = self.kwargs['p2'] except KeyError: - logger.exception(self.__str__() + ' Please specify two points.') + logger.exception(f'{self.__str__()} Please specify two points.') raise if self.do_rotate: @@ -80,7 +80,7 @@ class Box(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' No materials have been specified') + logger.exception(f'{self.__str__()} No materials have been specified') raise # Check averaging @@ -103,7 +103,7 @@ class Box(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError # Isotropic case diff --git a/gprMax/contexts.py b/gprMax/contexts.py index fbde3698..f011af77 100644 --- a/gprMax/contexts.py +++ b/gprMax/contexts.py @@ -172,7 +172,11 @@ class MPIContext(Context): 'should be equal to number of GPUs + 1.') raise ValueError - jobs = [{'i': i} for i in self.model_range] + # Create job list + jobs = [] + for i in self.model_range: + jobs.append({'i': i}) + # Send the workers to their work loop executor.start() if executor.is_master(): From 7457f8fec04cb0db57a2c524fcaf4817c552470e Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 19:53:46 +0530 Subject: [PATCH 22/32] Updated a few more files to make their code much cleaner and better. --- gprMax/cmds_geometry/cylindrical_sector.py | 22 ++++++------ gprMax/cmds_geometry/edge.py | 41 +++++++++------------- gprMax/cmds_geometry/ellipsoid.py | 6 ++-- 3 files changed, 31 insertions(+), 38 deletions(-) diff --git a/gprMax/cmds_geometry/cylindrical_sector.py b/gprMax/cmds_geometry/cylindrical_sector.py index 42005250..71d57c77 100644 --- a/gprMax/cmds_geometry/cylindrical_sector.py +++ b/gprMax/cmds_geometry/cylindrical_sector.py @@ -88,24 +88,25 @@ class CylindricalSector(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' No materials have been specified') + logger.exception(f'{self.__str__()} No materials have been specified') raise sectorstartangle = 2 * np.pi * (start / 360) sectorangle = 2 * np.pi * (end / 360) - if normal != 'x' and normal != 'y' and normal != 'z': - logger.exception(self.__str__() + ' the normal direction must be either x, y or z.') + if normal not in ['x', 'y', 'z']: + logger.exception(f'{self.__str__()} the normal direction must be either ' + + f'x, y or z.') raise ValueError if r <= 0: - logger.exception(self.__str__() + f' the radius {r:g} should be a positive value.') + logger.exception(f'{self.__str__()} the radius {r:g} should be a positive value.') if sectorstartangle < 0 or sectorangle <= 0: - logger.exception(self.__str__() + ' the starting angle and sector ' + - 'angle should be a positive values.') + logger.exception(f'{self.__str__()} the starting angle and sector angle should be ' + + f'a positive values.') raise ValueError if sectorstartangle >= 2 * np.pi or sectorangle >= 2 * np.pi: - logger.exception(self.__str__() + ' the starting angle and sector ' + - 'angle must be less than 360 degrees.') + logger.exception(f'{self.__str__()} the starting angle and sector angle must be ' + + f'less than 360 degrees.') raise ValueError # Look up requested materials in existing list of material instances @@ -113,7 +114,7 @@ class CylindricalSector(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError if thickness > 0: @@ -122,13 +123,12 @@ class CylindricalSector(UserObjectGeometry): averaging = materials[0].averagable and averagecylindricalsector numID = numIDx = numIDy = numIDz = materials[0].numID - # Uniaxial anisotropic case elif len(materials) == 3: averaging = False numIDx = materials[0].numID numIDy = materials[1].numID numIDz = materials[2].numID - requiredID = materials[0].ID + '+' + materials[1].ID + '+' + materials[2].ID + requiredID = f'{materials[0].ID}+{materials[1].ID}+{materials[2].ID}' averagedmaterial = [x for x in grid.materials if x.ID == requiredID] if averagedmaterial: numID = averagedmaterial.numID diff --git a/gprMax/cmds_geometry/edge.py b/gprMax/cmds_geometry/edge.py index acba61db..ed24dd66 100644 --- a/gprMax/cmds_geometry/edge.py +++ b/gprMax/cmds_geometry/edge.py @@ -62,15 +62,15 @@ class Edge(UserObjectGeometry): p2 = self.kwargs['p2'] material_id = self.kwargs['material_id'] except KeyError: - logger.exception(self.__str__() + ' requires exactly 3 parameters') + logger.exception(f'{self.__str__()} requires exactly 3 parameters') raise if self.do_rotate: self._do_rotate() - + p3 = uip.round_to_grid_static_point(p1) p4 = uip.round_to_grid_static_point(p2) - + p1, p2 = uip.check_box_points(p1, p2, self.__str__()) xs, ys, zs = p1 xf, yf, zf = p2 @@ -83,31 +83,24 @@ class Edge(UserObjectGeometry): # Check for valid orientations # x-orientated edge - if xs != xf: - if ys != yf or zs != zf: - logger.exception(self.__str__() + ' the edge is not specified correctly') - raise ValueError - else: - for i in range(xs, xf): - build_edge_x(i, ys, zs, material.numID, grid.rigidE, grid.rigidH, grid.ID) + if (xs != xf + and (ys != yf or zs != zf) + or xs == xf + and ys != yf + and zs != zf): + logger.exception(f'{self.__str__()} the edge is not specified correctly') + raise ValueError + elif xs != xf: + for i in range(xs, xf): + build_edge_x(i, ys, zs, material.numID, grid.rigidE, grid.rigidH, grid.ID) - # y-orientated edge elif ys != yf: - if xs != xf or zs != zf: - logger.exception(self.__str__() + ' the edge is not specified correctly') - raise ValueError - else: - for j in range(ys, yf): - build_edge_y(xs, j, zs, material.numID, grid.rigidE, grid.rigidH, grid.ID) + for j in range(ys, yf): + build_edge_y(xs, j, zs, material.numID, grid.rigidE, grid.rigidH, grid.ID) - # z-orientated edge elif zs != zf: - if xs != xf or ys != yf: - logger.exception(self.__str__() + ' the edge is not specified correctly') - raise ValueError - else: - for k in range(zs, zf): - build_edge_z(xs, ys, k, material.numID, grid.rigidE, grid.rigidH, grid.ID) + for k in range(zs, zf): + build_edge_z(xs, ys, k, material.numID, grid.rigidE, grid.rigidH, grid.ID) logger.info(self.grid_name(grid) + f'Edge from {p3[0]:g}m, {p3[1]:g}m, ' + f'{p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m of ' + diff --git a/gprMax/cmds_geometry/ellipsoid.py b/gprMax/cmds_geometry/ellipsoid.py index 115ee10c..74fae808 100644 --- a/gprMax/cmds_geometry/ellipsoid.py +++ b/gprMax/cmds_geometry/ellipsoid.py @@ -53,7 +53,7 @@ class Ellipsoid(UserObjectGeometry): zr = self.kwargs['zr'] except KeyError: - logger.exception(self.__str__() + ' please specify a point and the three semiaxes.') + logger.exception(f'{self.__str__()} please specify a point and the three semiaxes.') raise # Check averaging @@ -73,7 +73,7 @@ class Ellipsoid(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' no materials have been specified') + logger.exception(f'{self.__str__()} no materials have been specified') raise # Centre of sphere @@ -86,7 +86,7 @@ class Ellipsoid(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError # Isotropic case From fe56f5fd2ffad6c1eebd8d9bac678c5e2fc3517c Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Tue, 18 Apr 2023 15:58:59 +0100 Subject: [PATCH 23/32] Fixed issue when material name contained a plus sign --- gprMax/geometry_outputs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gprMax/geometry_outputs.py b/gprMax/geometry_outputs.py index 62e05fca..cd563d57 100644 --- a/gprMax/geometry_outputs.py +++ b/gprMax/geometry_outputs.py @@ -341,7 +341,7 @@ class Comments(): def materials_comment(self): if not self.averaged_materials: - return [m.ID for m in self.grid.materials if '+' not in m.ID] + return [m.ID for m in self.grid.materials if m.type is not 'dielectric-smoothed'] else: return [m.ID for m in self.grid.materials] From 10bdc3ed819ac32cafa4fec6c76754146d3f7303 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Tue, 18 Apr 2023 16:32:00 +0100 Subject: [PATCH 24/32] Cythonised the calc of PML er and mr averages --- gprMax/cython/pml_build.pyx | 70 +++++++++++++++++++++++++++++++++++++ gprMax/pml.py | 32 +++-------------- 2 files changed, 75 insertions(+), 27 deletions(-) create mode 100644 gprMax/cython/pml_build.pyx diff --git a/gprMax/cython/pml_build.pyx b/gprMax/cython/pml_build.pyx new file mode 100644 index 00000000..421ca1a0 --- /dev/null +++ b/gprMax/cython/pml_build.pyx @@ -0,0 +1,70 @@ +# Copyright (C) 2015-2023: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + + +cpdef pml_average_er_mr( + str dir, + int s, + G +): + """Calculates average permittivity and permeability for building PML + (based on underlying material er and mr from solid array). + + Args: + dir: string identifier for direction of PML. + s: int for starting cell of PML. + G: FDTDGrid class describing a grid in a model. + """ + + sumer = 0 # Sum of relative permittivities in PML slab + summr = 0 # Sum of relative permeabilities in PML slab + + if dir == 'x': + for j in range(G.ny): + for k in range(G.nz): + numID = G.solid[s, j, k] + material = [x for x in G.materials if x.numID == numID] + material = material[0] + sumer += material.er + summr += material.mr + averageer = sumer / (G.ny * G.nz) + averagemr = summr / (G.ny * G.nz) + + elif dir == 'y': + for i in range(G.nx): + for k in range(G.nz): + numID = G.solid[i, s, k] + material = [x for x in G.materials if x.numID == numID] + material = material[0] + sumer += material.er + summr += material.mr + averageer = sumer / (G.nx * G.nz) + averagemr = summr / (G.nx * G.nz) + + elif dir == 'z': + for i in range(G.nx): + for j in range(G.ny): + numID = G.solid[i, j, s] + material = [x for x in G.materials if x.numID == numID] + material = material[0] + sumer += material.er + summr += material.mr + averageer = sumer / (G.nx * G.ny) + averagemr = summr / (G.nx * G.ny) + + return averageer, averagemr diff --git a/gprMax/pml.py b/gprMax/pml.py index d92cb69e..a320c271 100644 --- a/gprMax/pml.py +++ b/gprMax/pml.py @@ -22,6 +22,8 @@ import numpy as np import gprMax.config as config +from .cython.pml_build import pml_average_er_mr + class CFSParameter: """Individual CFS parameter (e.g. alpha, kappa, or sigma).""" @@ -609,9 +611,6 @@ def build_pml(G, key, value): elif config.sim_config.general['solver'] == 'opencl': pml_type = OpenCLPML - sumer = 0 # Sum of relative permittivities in PML slab - summr = 0 # Sum of relative permeabilities in PML slab - if key[0] == 'x': if key == 'x0': pml = pml_type(G, ID=key, direction='xminus', @@ -621,14 +620,7 @@ def build_pml(G, key, value): xs=G.nx - value, xf=G.nx, yf=G.ny, zf=G.nz) pml.CFS = G.pmls['cfs'] G.pmls['slabs'].append(pml) - for j in range(G.ny): - for k in range(G.nz): - numID = G.solid[pml.xs, j, k] - material = next(x for x in G.materials if x.numID == numID) - sumer += material.er - summr += material.mr - averageer = sumer / (G.ny * G.nz) - averagemr = summr / (G.ny * G.nz) + averageer, averagemr = pml_average_er_mr('x', pml.xs, G) elif key[0] == 'y': if key == 'y0': @@ -639,14 +631,7 @@ def build_pml(G, key, value): ys=G.ny - value, xf=G.nx, yf=G.ny, zf=G.nz) pml.CFS = G.pmls['cfs'] G.pmls['slabs'].append(pml) - for i in range(G.nx): - for k in range(G.nz): - numID = G.solid[i, pml.ys, k] - material = next(x for x in G.materials if x.numID == numID) - sumer += material.er - summr += material.mr - averageer = sumer / (G.nx * G.nz) - averagemr = summr / (G.nx * G.nz) + averageer, averagemr = pml_average_er_mr('y', pml.ys, G) elif key[0] == 'z': if key == 'z0': @@ -657,13 +642,6 @@ def build_pml(G, key, value): zs=G.nz - value, xf=G.nx, yf=G.ny, zf=G.nz) pml.CFS = G.pmls['cfs'] G.pmls['slabs'].append(pml) - for i in range(G.nx): - for j in range(G.ny): - numID = G.solid[i, j, pml.zs] - material = next(x for x in G.materials if x.numID == numID) - sumer += material.er - summr += material.mr - averageer = sumer / (G.nx * G.ny) - averagemr = summr / (G.nx * G.ny) + averageer, averagemr = pml_average_er_mr('z', pml.zs, G) pml.calculate_update_coeffs(averageer, averagemr) From 839c5ba9ff7f0bc6e46f71062b0435d8b1fd7f9a Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 22:03:22 +0530 Subject: [PATCH 25/32] Reformatted some code in a few more files. --- gprMax/cmds_geometry/geometry_objects_read.py | 4 +-- gprMax/cmds_geometry/plate.py | 32 +++++++------------ gprMax/cmds_geometry/sphere.py | 6 ++-- gprMax/cmds_geometry/triangle.py | 16 +++++----- 4 files changed, 25 insertions(+), 33 deletions(-) diff --git a/gprMax/cmds_geometry/geometry_objects_read.py b/gprMax/cmds_geometry/geometry_objects_read.py index 936d7349..6c8efff6 100644 --- a/gprMax/cmds_geometry/geometry_objects_read.py +++ b/gprMax/cmds_geometry/geometry_objects_read.py @@ -46,7 +46,7 @@ class GeometryObjectsRead(UserObjectGeometry): geofile = self.kwargs['geofile'] matfile = self.kwargs['matfile'] except KeyError: - logger.exception(self.__str__() + 'requires exactly five parameters') + logger.exception(f'{self.__str__()} requires exactly five parameters') raise # Discretise the point using uip object. This has different behaviour @@ -100,7 +100,7 @@ class GeometryObjectsRead(UserObjectGeometry): if round_value((dx_dy_dz[0] / grid.dx) != 1 or round_value(dx_dy_dz[1] / grid.dy) != 1 or round_value(dx_dy_dz[2] / grid.dz) != 1): - logger.exception(self.__str__() + ' requires the spatial resolution ' + + logger.exception(f'{self.__str__()} requires the spatial resolution ' + 'of the geometry objects file to match the spatial ' + 'resolution of the model') raise ValueError diff --git a/gprMax/cmds_geometry/plate.py b/gprMax/cmds_geometry/plate.py index cd157604..9881a747 100644 --- a/gprMax/cmds_geometry/plate.py +++ b/gprMax/cmds_geometry/plate.py @@ -61,7 +61,7 @@ class Plate(UserObjectGeometry): p1 = self.kwargs['p1'] p2 = self.kwargs['p2'] except KeyError: - logger.exception(self.__str__() + ' 2 points must be specified') + logger.exception(f'{self.__str__()} 2 points must be specified') raise # isotropic @@ -72,7 +72,7 @@ class Plate(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' No materials have been specified') + logger.exception(f'{self.__str__()} No materials have been specified') raise if self.do_rotate: @@ -86,23 +86,15 @@ class Plate(UserObjectGeometry): xf, yf, zf = p2 # Check for valid orientations - if xs == xf: - if ys == yf or zs == zf: - logger.exception(self.__str__() + ' the plate is not specified correctly') - raise ValueError - - elif ys == yf: - if xs == xf or zs == zf: - logger.exception(self.__str__() + ' the plate is not specified correctly') - raise ValueError - - elif zs == zf: - if xs == xf or ys == yf: - logger.exception(self.__str__() + ' the plate is not specified correctly') - raise ValueError - - else: - logger.exception(self.__str__() + ' the plate is not specified correctly') + if (xs == xf + and (ys == yf or zs == zf) + or (xs != xf + and ys == yf + and zs == zf) + or (xs != xf + and ys != yf + and zs != zf)): + logger.exception(f'{self.__str__()} the plate is not specified correctly') raise ValueError # Look up requested materials in existing list of material instances @@ -110,7 +102,7 @@ class Plate(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError # yz-plane plate diff --git a/gprMax/cmds_geometry/sphere.py b/gprMax/cmds_geometry/sphere.py index 014ec3b0..96694862 100644 --- a/gprMax/cmds_geometry/sphere.py +++ b/gprMax/cmds_geometry/sphere.py @@ -48,7 +48,7 @@ class Sphere(UserObjectGeometry): p1 = self.kwargs['p1'] r = self.kwargs['r'] except KeyError: - logger.exception(self.__str__() + ' please specify a point and a radius.') + logger.exception(f'{self.__str__()} please specify a point and a radius.') raise # Check averaging @@ -68,7 +68,7 @@ class Sphere(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' no materials have been specified') + logger.exception(f'{self.__str__()} no materials have been specified') raise # Centre of sphere @@ -85,7 +85,7 @@ class Sphere(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError # Isotropic case diff --git a/gprMax/cmds_geometry/triangle.py b/gprMax/cmds_geometry/triangle.py index 17ab6077..5d8ae17f 100644 --- a/gprMax/cmds_geometry/triangle.py +++ b/gprMax/cmds_geometry/triangle.py @@ -70,7 +70,7 @@ class Triangle(UserObjectGeometry): up3 = self.kwargs['p3'] thickness = self.kwargs['thickness'] except KeyError: - logger.exception(self.__str__() + ' specify 3 points and a thickness') + logger.exception(f'{self.__str__()} specify 3 points and a thickness') raise if self.do_rotate: @@ -93,7 +93,7 @@ class Triangle(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' no materials have been specified') + logger.exception(f'{self.__str__()} no materials have been specified') raise p4 = uip.round_to_grid_static_point(up1) @@ -108,21 +108,21 @@ class Triangle(UserObjectGeometry): x3, y3, z3 = uip.round_to_grid(up3) if thickness < 0: - logger.exception(self.__str__() + ' requires a positive value for thickness') + logger.exception(f'{self.__str__()} requires a positive value for thickness') raise ValueError # Check for valid orientations # yz-plane triangle - if x1 == x2 and x2 == x3: + if x1 == x2 == x3: normal = 'x' # xz-plane triangle - elif y1 == y2 and y2 == y3: + elif y1 == y2 == y3: normal = 'y' # xy-plane triangle - elif z1 == z2 and z2 == z3: + elif z1 == z2 == z3: normal = 'z' else: - logger.exception(self.__str__() + ' the triangle is not specified correctly') + logger.exception(f'{self.__str__()} the triangle is not specified correctly') raise ValueError # Look up requested materials in existing list of material instances @@ -130,7 +130,7 @@ class Triangle(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError if thickness > 0: From f5c8c374ca2106032b15ac8289b44e67ccac9d6d Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 22:29:10 +0530 Subject: [PATCH 26/32] Reformatted some code in many files where an f-string could have been used but was not used. --- gprMax/cmds_geometry/cylinder.py | 10 +++++----- gprMax/cmds_geometry/cylindrical_sector.py | 4 ++-- gprMax/cmds_geometry/edge.py | 10 ++++------ gprMax/cmds_geometry/ellipsoid.py | 2 +- gprMax/cmds_geometry/fractal_box.py | 20 +++++++++---------- gprMax/cmds_geometry/fractal_box_builder.py | 2 +- gprMax/cmds_geometry/geometry_objects_read.py | 4 ++-- gprMax/cmds_geometry/plate.py | 13 ++++-------- gprMax/cmds_geometry/sphere.py | 2 +- gprMax/cmds_geometry/triangle.py | 4 ++-- 10 files changed, 32 insertions(+), 39 deletions(-) diff --git a/gprMax/cmds_geometry/cylinder.py b/gprMax/cmds_geometry/cylinder.py index d70b824a..006b46a4 100644 --- a/gprMax/cmds_geometry/cylinder.py +++ b/gprMax/cmds_geometry/cylinder.py @@ -52,7 +52,7 @@ class Cylinder(UserObjectGeometry): p2 = self.kwargs['p2'] r = self.kwargs['r'] except KeyError: - logger.exception(self.__str__() + ' please specify 2 points and a radius') + logger.exception(f'{self.__str__()} please specify 2 points and a radius') raise # Check averaging @@ -72,7 +72,7 @@ class Cylinder(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' no materials have been specified') + logger.exception(f'{self.__str__()} no materials have been specified') raise p3 = uip.round_to_grid_static_point(p1) @@ -82,7 +82,7 @@ class Cylinder(UserObjectGeometry): x2, y2, z2 = uip.round_to_grid(p2) if r <= 0: - logger.exception(self.__str__() + f' the radius {r:g} should be a positive value.') + logger.exception(f'{self.__str__()} the radius {r:g} should be a positive value.') raise ValueError # Look up requested materials in existing list of material instances @@ -90,7 +90,7 @@ class Cylinder(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError # Isotropic case @@ -130,7 +130,7 @@ class Cylinder(UserObjectGeometry): grid.rigidE, grid.rigidH, grid.ID) dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Cylinder with face centres {p3[0]:g}m, " + + logger.info(f"{self.grid_name(grid)}Cylinder with face centres {p3[0]:g}m, " + f"{p3[1]:g}m, {p3[2]:g}m and {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m, " + f"with radius {r:g}m, of material(s) {', '.join(materialsrequested)} " + f"created, dielectric smoothing is {dielectricsmoothing}.") diff --git a/gprMax/cmds_geometry/cylindrical_sector.py b/gprMax/cmds_geometry/cylindrical_sector.py index 71d57c77..8fa52c6c 100644 --- a/gprMax/cmds_geometry/cylindrical_sector.py +++ b/gprMax/cmds_geometry/cylindrical_sector.py @@ -181,14 +181,14 @@ class CylindricalSector(UserObjectGeometry): if thickness > 0: dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Cylindrical sector with centre " + + logger.info(f"{self.grid_name(grid)}Cylindrical sector with centre " + f"{ctr1:g}m, {ctr2:g}m, radius {r:g}m, starting angle " + f"{(sectorstartangle / (2 * np.pi)) * 360:.1f} degrees, " + f"sector angle {(sectorangle / (2 * np.pi)) * 360:.1f} degrees, " + f"thickness {thickness:g}m, of material(s) {', '.join(materialsrequested)} " + f"created, dielectric smoothing is {dielectricsmoothing}.") else: - logger.info(self.grid_name(grid) + f"Cylindrical sector with centre " + + logger.info(f"{self.grid_name(grid)}Cylindrical sector with centre " + f"{ctr1:g}m, {ctr2:g}m, radius {r:g}m, starting angle " + f"{(sectorstartangle / (2 * np.pi)) * 360:.1f} degrees, " + f"sector angle {(sectorangle / (2 * np.pi)) * 360:.1f} " + diff --git a/gprMax/cmds_geometry/edge.py b/gprMax/cmds_geometry/edge.py index ed24dd66..e1af273e 100644 --- a/gprMax/cmds_geometry/edge.py +++ b/gprMax/cmds_geometry/edge.py @@ -83,11 +83,9 @@ class Edge(UserObjectGeometry): # Check for valid orientations # x-orientated edge - if (xs != xf - and (ys != yf or zs != zf) - or xs == xf - and ys != yf - and zs != zf): + if ((xs != xf and (ys != yf or zs != zf)) + or (ys != yf and (xs != xf or zs != zf)) + or (zs != zf and (xs != xf or ys != yf))): logger.exception(f'{self.__str__()} the edge is not specified correctly') raise ValueError elif xs != xf: @@ -102,6 +100,6 @@ class Edge(UserObjectGeometry): for k in range(zs, zf): build_edge_z(xs, ys, k, material.numID, grid.rigidE, grid.rigidH, grid.ID) - logger.info(self.grid_name(grid) + f'Edge from {p3[0]:g}m, {p3[1]:g}m, ' + + logger.info(f'{self.grid_name(grid)}Edge from {p3[0]:g}m, {p3[1]:g}m, ' + f'{p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m of ' + f'material {material_id} created.') diff --git a/gprMax/cmds_geometry/ellipsoid.py b/gprMax/cmds_geometry/ellipsoid.py index 74fae808..ba5e7264 100644 --- a/gprMax/cmds_geometry/ellipsoid.py +++ b/gprMax/cmds_geometry/ellipsoid.py @@ -126,7 +126,7 @@ class Ellipsoid(UserObjectGeometry): grid.rigidE, grid.rigidH, grid.ID) dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Ellipsoid with centre {p2[0]:g}m, " + + logger.info(f"{self.grid_name(grid)}Ellipsoid with centre {p2[0]:g}m, " + f"{p2[1]:g}m, {p2[2]:g}m, x-semiaxis {xr:g}m, y-semiaxis {yr:g}m and z-semiaxis {zr:g}m of material(s) " + f"{', '.join(materialsrequested)} created, dielectric " + f"smoothing is {dielectricsmoothing}.") diff --git a/gprMax/cmds_geometry/fractal_box.py b/gprMax/cmds_geometry/fractal_box.py index 55d18277..2195ed3e 100644 --- a/gprMax/cmds_geometry/fractal_box.py +++ b/gprMax/cmds_geometry/fractal_box.py @@ -78,13 +78,13 @@ class FractalBox(UserObjectGeometry): mixing_model_id = self.kwargs['mixing_model_id'] ID = self.kwargs['id'] except KeyError: - logger.exception(self.__str__() + ' Incorrect parameters') + logger.exception(f'{self.__str__()} Incorrect parameters') raise try: seed = self.kwargs['seed'] except KeyError: - logger.warning(self.__str__() + ' no value for seed detected. This ' + + logger.warning(f'{self.__str__()} no value for seed detected. This ' + 'means you will get a different fractal distribution ' + 'every time the model runs.') seed = None @@ -107,24 +107,24 @@ class FractalBox(UserObjectGeometry): p1, p2 = uip.check_box_points(p1, p2, self.__str__()) xs, ys, zs = p1 xf, yf, zf = p2 - + if frac_dim < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal dimension') raise ValueError if weighting[0] < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal weighting in the x direction') raise ValueError if weighting[1] < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal weighting in the y direction') raise ValueError if weighting[2] < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal weighting in the z direction') if n_materials < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'number of bins') raise ValueError @@ -136,14 +136,14 @@ class FractalBox(UserObjectGeometry): if mixingmodel: if nbins == 1: - logger.exception(self.__str__() + ' must be used with more than ' + + logger.exception(f'{self.__str__()} must be used with more than ' + 'one material from the mixing model.') raise ValueError # Create materials from mixing model as number of bins now known # from fractal_box command. mixingmodel.calculate_properties(nbins, grid) elif not material: - logger.exception(self.__str__() + f' mixing model or material with ' + + logger.exception(f'{self.__str__()} mixing model or material with ' + 'ID {mixing_model_id} does not exist') raise ValueError diff --git a/gprMax/cmds_geometry/fractal_box_builder.py b/gprMax/cmds_geometry/fractal_box_builder.py index 5c804f71..f2243fa5 100644 --- a/gprMax/cmds_geometry/fractal_box_builder.py +++ b/gprMax/cmds_geometry/fractal_box_builder.py @@ -319,7 +319,7 @@ class FractalBoxBuilder(UserObjectGeometry): else: if volume.nbins == 1: - logger.exception(self.__str__() + ' is being used with a ' + + logger.exception(f'{self.__str__()} is being used with a ' + 'single material and no modifications, ' + 'therefore please use a #box command instead.') raise ValueError diff --git a/gprMax/cmds_geometry/geometry_objects_read.py b/gprMax/cmds_geometry/geometry_objects_read.py index 6c8efff6..a53f84af 100644 --- a/gprMax/cmds_geometry/geometry_objects_read.py +++ b/gprMax/cmds_geometry/geometry_objects_read.py @@ -122,7 +122,7 @@ class GeometryObjectsRead(UserObjectGeometry): grid.rigidE[:, xs:xs + rigidE.shape[1], ys:ys + rigidE.shape[2], zs:zs + rigidE.shape[3]] = rigidE grid.rigidH[:, xs:xs + rigidH.shape[1], ys:ys + rigidH.shape[2], zs:zs + rigidH.shape[3]] = rigidH grid.ID[:, xs:xs + ID.shape[1], ys:ys + ID.shape[2], zs:zs + ID.shape[3]] = ID + numexistmaterials - logger.info(self.grid_name(grid) + f'Geometry objects from file {geofile} ' + + logger.info(f'{self.grid_name(grid)}Geometry objects from file {geofile} ' + f'inserted at {xs * grid.dx:g}m, {ys * grid.dy:g}m, ' + f'{zs * grid.dz:g}m, with corresponding materials file ' + f'{matfile}.') @@ -131,7 +131,7 @@ class GeometryObjectsRead(UserObjectGeometry): build_voxels_from_array(xs, ys, zs, config.get_model_config().ompthreads, numexistmaterials, averaging, data, grid.solid, grid.rigidE, grid.rigidH, grid.ID) - logger.info(self.grid_name(grid) + f'Geometry objects from file ' + + logger.info(f'{self.grid_name(grid)}Geometry objects from file ' + f'(voxels only){geofile} inserted at {xs * grid.dx:g}m, ' + f'{ys * grid.dy:g}m, {zs * grid.dz:g}m, with corresponding ' + f'materials file {matfile}.') diff --git a/gprMax/cmds_geometry/plate.py b/gprMax/cmds_geometry/plate.py index 9881a747..9a4b9313 100644 --- a/gprMax/cmds_geometry/plate.py +++ b/gprMax/cmds_geometry/plate.py @@ -86,14 +86,9 @@ class Plate(UserObjectGeometry): xf, yf, zf = p2 # Check for valid orientations - if (xs == xf - and (ys == yf or zs == zf) - or (xs != xf - and ys == yf - and zs == zf) - or (xs != xf - and ys != yf - and zs != zf)): + if ((xs == xf and (ys == yf or zs == zf)) + or (ys == yf and (xs == xf or zs == zf)) + or (zs == zf and (ys != yf and xs != xf))): logger.exception(f'{self.__str__()} the plate is not specified correctly') raise ValueError @@ -153,6 +148,6 @@ class Plate(UserObjectGeometry): build_face_xy(i, j, zs, numIDx, numIDy, grid.rigidE, grid.rigidH, grid.ID) - logger.info(self.grid_name(grid) + f"Plate from {p3[0]:g}m, {p3[1]:g}m, " + + logger.info(f"{self.grid_name(grid)}Plate from {p3[0]:g}m, {p3[1]:g}m, " + f"{p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m of " + f"material(s) {', '.join(materialsrequested)} created.") diff --git a/gprMax/cmds_geometry/sphere.py b/gprMax/cmds_geometry/sphere.py index 96694862..31e7c465 100644 --- a/gprMax/cmds_geometry/sphere.py +++ b/gprMax/cmds_geometry/sphere.py @@ -125,7 +125,7 @@ class Sphere(UserObjectGeometry): grid.rigidE, grid.rigidH, grid.ID) dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Sphere with centre {p2[0]:g}m, " + + logger.info(f"{self.grid_name(grid)}Sphere with centre {p2[0]:g}m, " + f"{p2[1]:g}m, {p2[2]:g}m, radius {r:g}m, of material(s) " + f"{', '.join(materialsrequested)} created, dielectric " + f"smoothing is {dielectricsmoothing}.") diff --git a/gprMax/cmds_geometry/triangle.py b/gprMax/cmds_geometry/triangle.py index 5d8ae17f..77a334db 100644 --- a/gprMax/cmds_geometry/triangle.py +++ b/gprMax/cmds_geometry/triangle.py @@ -185,13 +185,13 @@ class Triangle(UserObjectGeometry): if thickness > 0: dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Triangle with coordinates " + + logger.info(f"{self.grid_name(grid)}Triangle with coordinates " + f"{p4[0]:g}m {p4[1]:g}m {p4[2]:g}m, {p5[0]:g}m {p5[1]:g}m " + f"{p5[2]:g}m, {p6[0]:g}m {p6[1]:g}m {p6[2]:g}m and thickness " + f"{thickness:g}m of material(s) {', '.join(materialsrequested)} " + f"created, dielectric smoothing is {dielectricsmoothing}.") else: - logger.info(self.grid_name(grid) + f"Triangle with coordinates " + + logger.info(f"{self.grid_name(grid)}Triangle with coordinates " + f"{p4[0]:g}m {p4[1]:g}m {p4[2]:g}m, {p5[0]:g}m {p5[1]:g}m " + f"{p5[2]:g}m, {p6[0]:g}m {p6[1]:g}m {p6[2]:g}m of material(s) " + f"{', '.join(materialsrequested)} created.") From 132a4d39ad13d91c794aafb33c1290669c877696 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Tue, 18 Apr 2023 22:41:55 +0530 Subject: [PATCH 27/32] updated a few more similar lines of code to make them more cleaner. --- gprMax/cmds_geometry/add_grass.py | 38 ++++++++--------- gprMax/cmds_geometry/add_surface_roughness.py | 42 +++++++++---------- gprMax/cmds_geometry/box.py | 2 +- gprMax/cmds_geometry/build_templates.py | 5 +-- gprMax/cmds_geometry/cmds_geometry.py | 8 ++-- gprMax/cmds_geometry/cone.py | 14 +++---- 6 files changed, 54 insertions(+), 55 deletions(-) diff --git a/gprMax/cmds_geometry/add_grass.py b/gprMax/cmds_geometry/add_grass.py index 7350853c..43b80f25 100644 --- a/gprMax/cmds_geometry/add_grass.py +++ b/gprMax/cmds_geometry/add_grass.py @@ -90,7 +90,7 @@ class AddGrass(UserObjectGeometry): try: volume = volumes[0] except NameError: - logger.exception(self.__str__() + f' cannot find FractalBox {fractal_box_id}') + logger.exception(f'{self.__str__()} cannot find FractalBox {fractal_box_id}') raise p1, p2 = uip.check_box_points(p1, p2, self.__str__()) @@ -98,32 +98,32 @@ class AddGrass(UserObjectGeometry): xf, yf, zf = p2 if frac_dim < 0: - logger.exception(self.__str__() + ' requires a positive value for ' + + logger.exception(f'{self.__str__()} requires a positive value for ' + 'the fractal dimension') raise ValueError if limits[0] < 0 or limits[1] < 0: - logger.exception(self.__str__() + ' requires a positive value for ' + + logger.exception(f'{self.__str__()} requires a positive value for ' + 'the minimum and maximum heights for grass blades') raise ValueError # Check for valid orientations if xs == xf: if ys == yf or zs == zf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError if xs != volume.xs and xs != volume.xf: - logger.exception(self.__str__() + ' must specify external surfaces on a fractal box') + logger.exception(f'{self.__str__()} must specify external surfaces on a fractal box') raise ValueError fractalrange = (round_value(limits[0] / grid.dx), round_value(limits[1] / grid.dx)) # xminus surface if xs == volume.xs: - logger.exception(self.__str__() + ' grass can only be specified ' + + logger.exception(f'{self.__str__()} grass can only be specified ' + 'on surfaces in the positive axis direction') raise ValueError # xplus surface elif xf == volume.xf: if fractalrange[1] > grid.nx: - logger.exception(self.__str__() + ' cannot apply grass to ' + + logger.exception(f'{self.__str__()} cannot apply grass to ' + 'fractal box as it would exceed the domain ' + 'size in the x direction') raise ValueError @@ -131,21 +131,21 @@ class AddGrass(UserObjectGeometry): elif ys == yf: if xs == xf or zs == zf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError if ys != volume.ys and ys != volume.yf: - logger.exception(self.__str__() + ' must specify external surfaces on a fractal box') + logger.exception(f'{self.__str__()} must specify external surfaces on a fractal box') raise ValueError fractalrange = (round_value(limits[0] / grid.dy), round_value(limits[1] / grid.dy)) # yminus surface if ys == volume.ys: - logger.exception(self.__str__() + ' grass can only be specified ' + + logger.exception(f'{self.__str__()} grass can only be specified ' + 'on surfaces in the positive axis direction') raise ValueError # yplus surface elif yf == volume.yf: if fractalrange[1] > grid.ny: - logger.exception(self.__str__() + ' cannot apply grass to ' + + logger.exception(f'{self.__str__()} cannot apply grass to ' + 'fractal box as it would exceed the domain ' + 'size in the y direction') raise ValueError @@ -153,28 +153,28 @@ class AddGrass(UserObjectGeometry): elif zs == zf: if xs == xf or ys == yf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError if zs != volume.zs and zs != volume.zf: - logger.exception(self.__str__() + ' must specify external surfaces on a fractal box') + logger.exception(f'{self.__str__()} must specify external surfaces on a fractal box') raise ValueError fractalrange = (round_value(limits[0] / grid.dz), round_value(limits[1] / grid.dz)) # zminus surface if zs == volume.zs: - logger.exception(self.__str__() + ' grass can only be specified ' + + logger.exception(f'{self.__str__()} grass can only be specified ' + 'on surfaces in the positive axis direction') raise ValueError # zplus surface elif zf == volume.zf: if fractalrange[1] > grid.nz: - logger.exception(self.__str__() + ' cannot apply grass to ' + + logger.exception(f'{self.__str__()} cannot apply grass to ' + 'fractal box as it would exceed the domain ' + 'size in the z direction') raise ValueError requestedsurface = 'zplus' else: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError surface = FractalSurface(xs, xf, ys, yf, zs, zf, frac_dim) @@ -187,7 +187,7 @@ class AddGrass(UserObjectGeometry): surface.operatingonID = volume.ID surface.generate_fractal_surface() if n_blades > surface.fractalsurface.shape[0] * surface.fractalsurface.shape[1]: - logger.exception(self.__str__() + ' the specified surface is not large ' + + logger.exception(f'{self.__str__()} the specified surface is not large ' + 'enough for the number of grass blades/roots specified') raise ValueError @@ -234,13 +234,13 @@ class AddGrass(UserObjectGeometry): grass = next((x for x in grid.materials if x.ID == 'grass')) testgrass = next((x for x in grass.tau if x < grid.dt), None) if testgrass: - logger.exception(self.__str__() + ' requires the time step for the ' + + logger.exception(f'{self.__str__()} requires the time step for the ' + 'model to be less than the relaxation time required to model grass.') raise ValueError volume.fractalsurfaces.append(surface) - logger.info(self.grid_name(grid) + f'{n_blades} blades of grass on surface from ' + + logger.info(f'{self.grid_name(grid)}{n_blades} blades of grass on surface from ' + f'{xs * grid.dx:g}m, {ys * grid.dy:g}m, {zs * grid.dz:g}m, ' + f'to {xf * grid.dx:g}m, {yf * grid.dy:g}m, {zf * grid.dz:g}m ' + f'with fractal dimension {surface.dimension:g}, fractal seeding ' + diff --git a/gprMax/cmds_geometry/add_surface_roughness.py b/gprMax/cmds_geometry/add_surface_roughness.py index 0a9f0443..df4b02da 100644 --- a/gprMax/cmds_geometry/add_surface_roughness.py +++ b/gprMax/cmds_geometry/add_surface_roughness.py @@ -74,13 +74,13 @@ class AddSurfaceRoughness(UserObjectGeometry): limits = np.array(self.kwargs['limits']) fractal_box_id = self.kwargs['fractal_box_id'] except KeyError: - logger.exception(self.__str__() + ' incorrect parameters') + logger.exception(f'{self.__str__()} incorrect parameters') raise try: seed = self.kwargs['seed'] except KeyError: - logger.warning(self.__str__() + ' no value for seed detected. This ' + + logger.warning(f'{self.__str__()} no value for seed detected. This ' + 'means you will get a different fractal distribution ' + 'every time the model runs.') seed = None @@ -93,7 +93,7 @@ class AddSurfaceRoughness(UserObjectGeometry): if volumes: volume = volumes[0] else: - logger.exception(self.__str__() + f' cannot find FractalBox {fractal_box_id}') + logger.exception(f'{self.__str__()} cannot find FractalBox {fractal_box_id}') raise ValueError p1, p2 = uip.check_box_points(p1, p2, self.__str__()) @@ -101,25 +101,25 @@ class AddSurfaceRoughness(UserObjectGeometry): xf, yf, zf = p2 if frac_dim < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal dimension') raise ValueError if weighting[0] < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal weighting in the first direction of the surface') raise ValueError if weighting[1] < 0: - logger.exception(self.__str__() + ' requires a positive value for the ' + + logger.exception(f'{self.__str__()} requires a positive value for the ' + 'fractal weighting in the second direction of the surface') raise ValueError # Check for valid orientations if xs == xf: if ys == yf or zs == zf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError if xs != volume.xs and xs != volume.xf: - logger.exception(self.__str__() + ' can only be used on the external ' + + logger.exception(f'{self.__str__()} can only be used on the external ' + 'surfaces of a fractal box') raise ValueError fractalrange = (round_value(limits[0] / grid.dx), @@ -127,7 +127,7 @@ class AddSurfaceRoughness(UserObjectGeometry): # xminus surface if xs == volume.xs: if fractalrange[0] < 0 or fractalrange[1] > volume.xf: - logger.exception(self.__str__() + ' cannot apply fractal surface ' + + logger.exception(f'{self.__str__()} cannot apply fractal surface ' + 'to fractal box as it would exceed either the ' + 'upper coordinates of the fractal box or the ' + 'domain in the x direction') @@ -136,7 +136,7 @@ class AddSurfaceRoughness(UserObjectGeometry): # xplus surface elif xf == volume.xf: if fractalrange[0] < volume.xs or fractalrange[1] > grid.nx: - logger.exception(self.__str__() + ' cannot apply fractal surface ' + + logger.exception(f'{self.__str__()} cannot apply fractal surface ' + 'to fractal box as it would exceed either the ' + 'lower coordinates of the fractal box or the ' + 'domain in the x direction') @@ -145,10 +145,10 @@ class AddSurfaceRoughness(UserObjectGeometry): elif ys == yf: if xs == xf or zs == zf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError if ys != volume.ys and ys != volume.yf: - logger.exception(self.__str__() + ' can only be used on the external ' + + logger.exception(f'{self.__str__()} can only be used on the external ' + 'surfaces of a fractal box') raise ValueError fractalrange = (round_value(limits[0] / grid.dy), @@ -156,7 +156,7 @@ class AddSurfaceRoughness(UserObjectGeometry): # yminus surface if ys == volume.ys: if fractalrange[0] < 0 or fractalrange[1] > volume.yf: - logger.exception(self.__str__() + ' cannot apply fractal surface ' + + logger.exception(f'{self.__str__()} cannot apply fractal surface ' + 'to fractal box as it would exceed either the ' + 'upper coordinates of the fractal box or the ' + 'domain in the y direction') @@ -165,7 +165,7 @@ class AddSurfaceRoughness(UserObjectGeometry): # yplus surface elif yf == volume.yf: if fractalrange[0] < volume.ys or fractalrange[1] > grid.ny: - logger.exception(self.__str__() + ' cannot apply fractal surface ' + + logger.exception(f'{self.__str__()} cannot apply fractal surface ' + 'to fractal box as it would exceed either the ' + 'lower coordinates of the fractal box or the ' + 'domain in the y direction') @@ -174,10 +174,10 @@ class AddSurfaceRoughness(UserObjectGeometry): elif zs == zf: if xs == xf or ys == yf: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError if zs != volume.zs and zs != volume.zf: - logger.exception(self.__str__() + ' can only be used on the external ' + + logger.exception(f'{self.__str__()} can only be used on the external ' + 'surfaces of a fractal box') raise ValueError fractalrange = (round_value(limits[0] / grid.dz), @@ -185,7 +185,7 @@ class AddSurfaceRoughness(UserObjectGeometry): # zminus surface if zs == volume.zs: if fractalrange[0] < 0 or fractalrange[1] > volume.zf: - logger.exception(self.__str__() + ' cannot apply fractal surface ' + + logger.exception(f'{self.__str__()} cannot apply fractal surface ' + 'to fractal box as it would exceed either the ' + 'upper coordinates of the fractal box or the ' + 'domain in the x direction') @@ -194,7 +194,7 @@ class AddSurfaceRoughness(UserObjectGeometry): # zplus surface elif zf == volume.zf: if fractalrange[0] < volume.zs or fractalrange[1] > grid.nz: - logger.exception(self.__str__() + ' cannot apply fractal surface ' + + logger.exception(f'{self.__str__()} cannot apply fractal surface ' + 'to fractal box as it would exceed either the ' + 'lower coordinates of the fractal box or the ' + 'domain in the z direction') @@ -202,7 +202,7 @@ class AddSurfaceRoughness(UserObjectGeometry): requestedsurface = 'zplus' else: - logger.exception(self.__str__() + ' dimensions are not specified correctly') + logger.exception(f'{self.__str__()} dimensions are not specified correctly') raise ValueError surface = FractalSurface(xs, xf, ys, yf, zs, zf, frac_dim) @@ -218,14 +218,14 @@ class AddSurfaceRoughness(UserObjectGeometry): # List of existing surfaces IDs existingsurfaceIDs = [x.surfaceID for x in volume.fractalsurfaces] if surface.surfaceID in existingsurfaceIDs: - logger.exception(self.__str__() + f' has already been used on the ' + + logger.exception(f'{self.__str__()} has already been used on the ' + f'{surface.surfaceID} surface') raise ValueError surface.generate_fractal_surface() volume.fractalsurfaces.append(surface) - logger.info(self.grid_name(grid) + f'Fractal surface from {xs * grid.dx:g}m, ' + + logger.info(f'{self.grid_name(grid)}Fractal surface from {xs * grid.dx:g}m, ' + f'{ys * grid.dy:g}m, {zs * grid.dz:g}m, to {xf * grid.dx:g}m, ' + f'{yf * grid.dy:g}m, {zf * grid.dz:g}m with fractal dimension ' + f'{surface.dimension:g}, fractal weightings {surface.weighting[0]:g}, ' + diff --git a/gprMax/cmds_geometry/box.py b/gprMax/cmds_geometry/box.py index 1ab3459f..de07b862 100644 --- a/gprMax/cmds_geometry/box.py +++ b/gprMax/cmds_geometry/box.py @@ -144,7 +144,7 @@ class Box(UserObjectGeometry): dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Box from {p5[0]:g}m, {p5[1]:g}m, " + + logger.info(f"{self.grid_name(grid)}Box from {p5[0]:g}m, {p5[1]:g}m, " + f"{p5[2]:g}m, to {p6[0]:g}m, {p6[1]:g}m, {p6[2]:g}m of " + f"material(s) {', '.join(materialsrequested)} created, " + f"dielectric smoothing is {dielectricsmoothing}.") diff --git a/gprMax/cmds_geometry/build_templates.py b/gprMax/cmds_geometry/build_templates.py index b78543e6..7f0cbd2b 100644 --- a/gprMax/cmds_geometry/build_templates.py +++ b/gprMax/cmds_geometry/build_templates.py @@ -66,6 +66,5 @@ r = template.render( }] ) -f = open('cython/dispersive_updates_test.pyx', 'w') -f.write(r) -f.close() +with open('cython/dispersive_updates_test.pyx', 'w') as f: + f.write(r) diff --git a/gprMax/cmds_geometry/cmds_geometry.py b/gprMax/cmds_geometry/cmds_geometry.py index 0ad5bc3d..63980390 100644 --- a/gprMax/cmds_geometry/cmds_geometry.py +++ b/gprMax/cmds_geometry/cmds_geometry.py @@ -38,9 +38,9 @@ class UserObjectGeometry: """Readable string of parameters given to object.""" s = '' for _, v in self.kwargs.items(): - if isinstance(v, tuple) or isinstance(v, list): + if isinstance(v, (tuple, list)): v = ' '.join([str(el) for el in v]) - s += str(v) + ' ' + s += f'{str(v)} ' return f'{self.hash}: {s[:-1]}' @@ -109,7 +109,7 @@ def rotate_2point_object(pts, axis, angle, origin=None): # Use origin at centre of object if not given if not origin: origin = pts[0,:] + (pts[1,:] - pts[0,:]) / 2 - + # Check angle value is suitable angle = int(angle) if angle < 0 or angle > 360: @@ -120,7 +120,7 @@ def rotate_2point_object(pts, axis, angle, origin=None): raise ValueError # Check axis is valid - if axis != 'x' and axis != 'y' and axis != 'z': + if axis not in ['x', 'y', 'z']: logger.exception('Axis of rotation must be x, y, or z') raise ValueError diff --git a/gprMax/cmds_geometry/cone.py b/gprMax/cmds_geometry/cone.py index 34e5ec13..609505a1 100644 --- a/gprMax/cmds_geometry/cone.py +++ b/gprMax/cmds_geometry/cone.py @@ -55,7 +55,7 @@ class Cone(UserObjectGeometry): r1 = self.kwargs['r1'] r2 = self.kwargs['r2'] except KeyError: - logger.exception(self.__str__() + ' please specify 2 points and two radii') + logger.exception(f'{self.__str__()} please specify 2 points and two radii') raise # Check averaging @@ -75,7 +75,7 @@ class Cone(UserObjectGeometry): try: materialsrequested = self.kwargs['material_ids'] except KeyError: - logger.exception(self.__str__() + ' no materials have been specified') + logger.exception(f'{self.__str__()} no materials have been specified') raise p3 = uip.round_to_grid_static_point(p1) @@ -85,15 +85,15 @@ class Cone(UserObjectGeometry): x2, y2, z2 = uip.round_to_grid(p2) if r1 < 0: - logger.exception(self.__str__() + f' the radius of the first face {r1:g} should be a positive value.') + logger.exception(f'{self.__str__()} the radius of the first face {r1:g} should be a positive value.') raise ValueError if r2 < 0: - logger.exception(self.__str__() + f' the radius of the second face {r2:g} should be a positive value.') + logger.exception(f'{self.__str__()} the radius of the second face {r2:g} should be a positive value.') raise ValueError if r1 == 0 and r2 == 0: - logger.exception(self.__str__() + f' not both radii can be zero.') + logger.exception(f'{self.__str__()} not both radii can be zero.') raise ValueError # Look up requested materials in existing list of material instances @@ -101,7 +101,7 @@ class Cone(UserObjectGeometry): if len(materials) != len(materialsrequested): notfound = [x for x in materialsrequested if x not in materials] - logger.exception(self.__str__() + f' material(s) {notfound} do not exist') + logger.exception(f'{self.__str__()} material(s) {notfound} do not exist') raise ValueError # Isotropic case @@ -141,7 +141,7 @@ class Cone(UserObjectGeometry): grid.rigidE, grid.rigidH, grid.ID) dielectricsmoothing = 'on' if averaging else 'off' - logger.info(self.grid_name(grid) + f"Cone with face centres {p3[0]:g}m, " + + logger.info(f"{self.grid_name(grid)}Cone with face centres {p3[0]:g}m, " + f"{p3[1]:g}m, {p3[2]:g}m and {p4[0]:g}m, {p4[1]:g}m, {p4[2]:g}m, " + f"with radii {r1:g}m and {r2:g}, of material(s) {', '.join(materialsrequested)} " + f"created, dielectric smoothing is {dielectricsmoothing}.") From 4ea065196ef63abef3a534d89092e715daca1044 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Wed, 19 Apr 2023 11:49:34 +0530 Subject: [PATCH 28/32] updated a few more similar lines of code to make them more cleaner. --- gprMax/contexts.py | 6 +----- gprMax/fields_outputs.py | 2 +- gprMax/subgrids/precursor_nodes.py | 4 ++-- gprMax/subgrids/updates.py | 2 +- gprMax/utilities/host_info.py | 4 ++-- gprMax/utilities/utilities.py | 2 +- 6 files changed, 8 insertions(+), 12 deletions(-) diff --git a/gprMax/contexts.py b/gprMax/contexts.py index f011af77..fbde3698 100644 --- a/gprMax/contexts.py +++ b/gprMax/contexts.py @@ -172,11 +172,7 @@ class MPIContext(Context): 'should be equal to number of GPUs + 1.') raise ValueError - # Create job list - jobs = [] - for i in self.model_range: - jobs.append({'i': i}) - + jobs = [{'i': i} for i in self.model_range] # Send the workers to their work loop executor.start() if executor.is_master(): diff --git a/gprMax/fields_outputs.py b/gprMax/fields_outputs.py index 39d306d4..d8050c9a 100644 --- a/gprMax/fields_outputs.py +++ b/gprMax/fields_outputs.py @@ -115,7 +115,7 @@ def write_hd5_data(basegrp, G, is_subgrid=False): # Create group for sources (except transmission lines); add type and positional data attributes srclist = G.voltagesources + G.hertziandipoles + G.magneticdipoles for srcindex, src in enumerate(srclist): - grp = basegrp.create_group('srcs/src' + str(srcindex + 1)) + grp = basegrp.create_group(f'srcs/src{str(srcindex + 1)}') grp.attrs['Type'] = type(src).__name__ grp.attrs['Position'] = (src.xcoord * G.dx, src.ycoord * G.dy, src.zcoord * G.dz) diff --git a/gprMax/subgrids/precursor_nodes.py b/gprMax/subgrids/precursor_nodes.py index 718310c9..f5e85ece 100644 --- a/gprMax/subgrids/precursor_nodes.py +++ b/gprMax/subgrids/precursor_nodes.py @@ -174,7 +174,7 @@ class PrecursorNodesBase: for f in field_names: try: - val = c1 * getattr(self, f + '_0') + c2 * getattr(self, f + '_1') + val = c1 * getattr(self, f'{f}_0') + c2 * getattr(self, f'{f}_1') except ValueError: raise setattr(self, f, val) @@ -184,7 +184,7 @@ class PrecursorNodesBase: current main time step, i.e. ey_left = copy.ey_left_1 """ for f in field_names: - val = np.copy(getattr(self, f + '_1')) + val = np.copy(getattr(self, f'{f}_1')) setattr(self, f, val) def calc_exact_magnetic_in_time(self): diff --git a/gprMax/subgrids/updates.py b/gprMax/subgrids/updates.py index b38e3cc3..fc7f5d69 100644 --- a/gprMax/subgrids/updates.py +++ b/gprMax/subgrids/updates.py @@ -33,7 +33,7 @@ def create_updates(G): sg_type = type(sg) if sg_type == SubGridHSG and sg.filter: precursors = PrecursorNodesFiltered(G, sg) - elif sg_type == SubGridHSG and not sg.filter: + elif sg_type == SubGridHSG: precursors = PrecursorNodes(G, sg) else: logger.exception(f'{str(sg)} is not a subgrid type') diff --git a/gprMax/utilities/host_info.py b/gprMax/utilities/host_info.py index 9d1ecb33..ebaca218 100644 --- a/gprMax/utilities/host_info.py +++ b/gprMax/utilities/host_info.py @@ -508,14 +508,14 @@ def print_opencl_info(devs): import pyopencl as cl - logger.basic('|--->OpenCL:') + logger.basic('|--->OpenCL:') logger.debug(f'PyOpenCL: {cl.VERSION_TEXT}') for i, (ID, dev) in enumerate(devs.items()): if i == 0: platform = dev.platform.name logger.basic(f' |--->Platform: {platform}') - if not platform == dev.platform.name: + if platform != dev.platform.name: logger.basic(f' |--->Platform: {dev.platform.name}') types = cl.device_type.to_string(dev.type) if 'CPU' in types: diff --git a/gprMax/utilities/utilities.py b/gprMax/utilities/utilities.py index 048aefad..c8b53bdc 100644 --- a/gprMax/utilities/utilities.py +++ b/gprMax/utilities/utilities.py @@ -91,7 +91,7 @@ def logo(version): v""" + version + '\n\n' str = f"{description} {'=' * (get_terminal_width() - len(description) - 1)}\n\n" - str += Fore.CYAN + f'{logo}' + str += f'{Fore.CYAN}{logo}' str += Style.RESET_ALL + textwrap.fill(copyright, width=get_terminal_width() - 1, initial_indent=' ') + '\n' From ff1f558d551e7d8a1799741afca603a85a993a43 Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Wed, 19 Apr 2023 13:22:15 +0530 Subject: [PATCH 29/32] Updated cmds_multiuse.py file made several small changes that make code simpler and cleaner. --- gprMax/cmds_multiuse.py | 283 +++++++++++++++++----------------------- 1 file changed, 122 insertions(+), 161 deletions(-) diff --git a/gprMax/cmds_multiuse.py b/gprMax/cmds_multiuse.py index 3a8515e2..b9f26adc 100644 --- a/gprMax/cmds_multiuse.py +++ b/gprMax/cmds_multiuse.py @@ -243,18 +243,15 @@ class VoltageSource(UserObjectMulti): logger.exception(self.params_str() + (' polarisation must be ' 'x, y, or z.')) raise ValueError - if ('2D TMx' in config.get_model_config().mode and - (polarisation == 'y' or polarisation == 'z')): + if '2D TMx' in config.get_model_config().mode and polarisation in ['y','z',]: logger.exception(self.params_str() + (' polarisation must be x in ' '2D TMx mode.')) raise ValueError - elif ('2D TMy' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'z')): + elif '2D TMy' in config.get_model_config().mode and polarisation in ['x','z',]: logger.exception(self.params_str() + (' polarisation must be y in ' '2D TMy mode.')) raise ValueError - elif ('2D TMz' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'y')): + elif '2D TMz' in config.get_model_config().mode and polarisation in ['x','y',]: logger.exception(self.params_str() + (' polarisation must be z in ' '2D TMz mode.')) raise ValueError @@ -305,10 +302,7 @@ class VoltageSource(UserObjectMulti): 'less.')) raise ValueError v.start = start - if stop > grid.timewindow: - v.stop = grid.timewindow - else: - v.stop = stop + v.stop = min(stop, grid.timewindow) startstop = (f' start time {v.start:g} secs, finish time ' f'{v.stop:g} secs ') except KeyError: @@ -318,7 +312,7 @@ class VoltageSource(UserObjectMulti): v.calculate_waveform_values(grid) - logger.info(self.grid_name(grid) + f'Voltage source with polarity ' + logger.info(f'{self.grid_name(grid)}Voltage source with polarity ' f'{v.polarisation} at {p2[0]:g}m, {p2[1]:g}m, {p2[2]:g}m, ' f'resistance {v.resistance:.1f} Ohms,' + startstop + f'using waveform {v.waveformID} created.') @@ -367,8 +361,7 @@ class HertzianDipole(UserObjectMulti): p1 = self.kwargs['p1'] waveform_id = self.kwargs['waveform_id'] except KeyError: - logger.exception(self.params_str() + ' requires at least 3 ' + - 'parameters.') + logger.exception(f'{self.params_str()} requires at least 3 parameters.') raise if self.do_rotate: @@ -379,18 +372,15 @@ class HertzianDipole(UserObjectMulti): logger.exception(self.params_str() + (' polarisation must be ' 'x, y, or z.')) raise ValueError - if ('2D TMx' in config.get_model_config().mode and - (polarisation == 'y' or polarisation == 'z')): + if '2D TMx' in config.get_model_config().mode and polarisation in ['y','z',]: logger.exception(self.params_str() + (' polarisation must be x in ' '2D TMx mode.')) raise ValueError - elif ('2D TMy' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'z')): + elif '2D TMy' in config.get_model_config().mode and polarisation in ['x','z',]: logger.exception(self.params_str() + (' polarisation must be y in ' '2D TMy mode.')) raise ValueError - elif ('2D TMz' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'y')): + elif '2D TMz' in config.get_model_config().mode and polarisation in ['x','y',]: logger.exception(self.params_str() + (' polarisation must be z in ' '2D TMz mode.')) raise ValueError @@ -401,7 +391,7 @@ class HertzianDipole(UserObjectMulti): # Check if there is a waveformID in the waveforms list if not any(x.ID == waveform_id for x in grid.waveforms): - logger.exception(self.params_str() + ' there is no waveform ' + + logger.exception(f'{self.params_str()} there is no waveform ' + f'with the identifier {waveform_id}.') raise ValueError @@ -422,8 +412,7 @@ class HertzianDipole(UserObjectMulti): h.xcoordorigin = xcoord h.ycoordorigin = ycoord h.zcoordorigin = zcoord - h.ID = (h.__class__.__name__ + '(' + str(h.xcoord) + ',' + - str(h.ycoord) + ',' + str(h.zcoord) + ')') + h.ID = f'{h.__class__.__name__}({str(h.xcoord)},{str(h.ycoord)},{str(h.zcoord)})' h.waveformID = waveform_id try: @@ -431,25 +420,19 @@ class HertzianDipole(UserObjectMulti): start = self.kwargs['start'] stop = self.kwargs['stop'] if start < 0: - logger.exception(self.params_str() + (' delay of the initiation ' - 'of the source should not ' - 'be less than zero.')) + logger.exception(f'{self.params_str()} delay of the initiation of the ' + + f'source should not be less than zero.') raise ValueError if stop < 0: - logger.exception(self.params_str() + (' time to remove the ' - 'source should not be ' - 'less than zero.')) + logger.exception(f'{self.params_str()} time to remove the source ' + + f'should not be less than zero.') raise ValueError if stop - start <= 0: - logger.exception(self.params_str() + (' duration of the source ' - 'should not be zero or ' - 'less.')) + logger.exception( + f'{self.params_str()} duration of the source should not be zero or less.') raise ValueError h.start = start - if stop > grid.timewindow: - h.stop = grid.timewindow - else: - h.stop = stop + h.stop = min(stop, grid.timewindow) startstop = (f' start time {h.start:g} secs, finish time ' f'{h.stop:g} secs ') except KeyError: @@ -460,12 +443,12 @@ class HertzianDipole(UserObjectMulti): h.calculate_waveform_values(grid) if config.get_model_config().mode == '2D': - logger.info(self.grid_name(grid) + f'Hertzian dipole is a line ' + + logger.info(f'{self.grid_name(grid)}Hertzian dipole is a line ' + f'source in 2D with polarity {h.polarisation} at ' + f'{p2[0]:g}m, {p2[1]:g}m, {p2[2]:g}m,' + startstop + f'using waveform {h.waveformID} created.') else: - logger.info(self.grid_name(grid) + f'Hertzian dipole with ' + + logger.info(f'{self.grid_name(grid)}Hertzian dipole with ' + f'polarity {h.polarisation} at {p2[0]:g}m, ' + f'{p2[1]:g}m, {p2[2]:g}m,' + startstop + f'using waveform {h.waveformID} created.') @@ -514,8 +497,7 @@ class MagneticDipole(UserObjectMulti): p1 = self.kwargs['p1'] waveform_id = self.kwargs['waveform_id'] except KeyError: - logger.exception(self.params_str() + ' requires at least five ' - 'parameters.') + logger.exception(f'{self.params_str()} requires at least five parameters.') raise if self.do_rotate: @@ -526,18 +508,15 @@ class MagneticDipole(UserObjectMulti): logger.exception(self.params_str() + (' polarisation must be ' 'x, y, or z.')) raise ValueError - if ('2D TMx' in config.get_model_config().mode and - (polarisation == 'y' or polarisation == 'z')): + if '2D TMx' in config.get_model_config().mode and polarisation in ['y','z',]: logger.exception(self.params_str() + (' polarisation must be x in ' '2D TMx mode.')) raise ValueError - elif ('2D TMy' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'z')): + elif '2D TMy' in config.get_model_config().mode and polarisation in ['x','z',]: logger.exception(self.params_str() + (' polarisation must be y in ' '2D TMy mode.')) raise ValueError - elif ('2D TMz' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'y')): + elif '2D TMz' in config.get_model_config().mode and polarisation in ['x','y',]: logger.exception(self.params_str() + (' polarisation must be z in ' '2D TMz mode.')) raise ValueError @@ -548,7 +527,7 @@ class MagneticDipole(UserObjectMulti): # Check if there is a waveformID in the waveforms list if not any(x.ID == waveform_id for x in grid.waveforms): - logger.exception(self.params_str() + ' there is no waveform ' + + logger.exception(f'{self.params_str()} there is no waveform ' + f'with the identifier {waveform_id}.') raise ValueError @@ -584,10 +563,7 @@ class MagneticDipole(UserObjectMulti): 'less.')) raise ValueError m.start = start - if stop > grid.timewindow: - m.stop = grid.timewindow - else: - m.stop = stop + m.stop = min(stop, grid.timewindow) startstop = (f' start time {m.start:g} secs, ' f'finish time {m.stop:g} secs ') except KeyError: @@ -597,7 +573,7 @@ class MagneticDipole(UserObjectMulti): m.calculate_waveform_values(grid) - logger.info(self.grid_name(grid) + f'Magnetic dipole with polarity ' + + logger.info(f'{self.grid_name(grid)}Magnetic dipole with polarity ' + f'{m.polarisation} at {p2[0]:g}m, {p2[1]:g}m, {p2[2]:g}m,' + startstop + f'using waveform {m.waveformID} created.') @@ -647,17 +623,15 @@ class TransmissionLine(UserObjectMulti): waveform_id = self.kwargs['waveform_id'] resistance = self.kwargs['resistance'] except KeyError: - logger.exception(self.params_str() + ' requires at least six ' - 'parameters.') + logger.exception(f'{self.params_str()} requires at least six parameters.') raise if self.do_rotate: self._do_rotate(grid) # Warn about using a transmission line on GPU - if (config.sim_config.general['solver'] == 'cuda' or - config.sim_config.general['solver'] == 'opencl'): - logger.exception(self.params_str() + ' cannot currently be used ' + + if (config.sim_config.general['solver'] in ['cuda', 'opencl']): + logger.exception(f'{self.params_str()} cannot currently be used ' + 'with the CUDA or OpenCL-based solver. Consider ' + 'using a #voltage_source instead.') raise ValueError @@ -667,18 +641,15 @@ class TransmissionLine(UserObjectMulti): logger.exception(self.params_str() + (' polarisation must be ' 'x, y, or z.')) raise ValueError - if ('2D TMx' in config.get_model_config().mode and - (polarisation == 'y' or polarisation == 'z')): + if '2D TMx' in config.get_model_config().mode and polarisation in ['y','z',]: logger.exception(self.params_str() + (' polarisation must be x in ' '2D TMx mode.')) raise ValueError - elif ('2D TMy' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'z')): + elif '2D TMy' in config.get_model_config().mode and polarisation in ['x','z',]: logger.exception(self.params_str() + (' polarisation must be y in ' '2D TMy mode.')) raise ValueError - elif ('2D TMz' in config.get_model_config().mode and - (polarisation == 'x' or polarisation == 'y')): + elif '2D TMz' in config.get_model_config().mode and polarisation in ['x','y',]: logger.exception(self.params_str() + (' polarisation must be z in ' '2D TMz mode.')) raise ValueError @@ -688,14 +659,14 @@ class TransmissionLine(UserObjectMulti): if resistance <= 0 or resistance >= config.sim_config.em_consts['z0']: - logger.exception(self.params_str() + ' requires a resistance ' + + logger.exception(f'{self.params_str()} requires a resistance ' + 'greater than zero and less than the impedance ' + 'of free space, i.e. 376.73 Ohms.') raise ValueError # Check if there is a waveformID in the waveforms list if not any(x.ID == waveform_id for x in grid.waveforms): - logger.exception(self.params_str() + ' there is no waveform ' + + logger.exception(f'{self.params_str()} there is no waveform ' + f'with the identifier {waveform_id}.') raise ValueError @@ -729,11 +700,8 @@ class TransmissionLine(UserObjectMulti): 'less.')) raise ValueError t.start = start - if stop > grid.timewindow: - t.stop = grid.timewindow - else: - t.stop = stop - startstop = (f' start time {t.start:g} secs, finish time ' + t.stop = min(stop, grid.timewindow) + startstop = (f' start time {t.start:g} secs, finish time ' + f'{t.stop:g} secs ') except KeyError: t.start = 0 @@ -743,7 +711,7 @@ class TransmissionLine(UserObjectMulti): t.calculate_waveform_values(grid) t.calculate_incident_V_I(grid) - logger.info(self.grid_name(grid) + f'Transmission line with polarity ' + + logger.info(f'{self.grid_name(grid)}Transmission line with polarity ' + f'{t.polarisation} at {p2[0]:g}m, {p2[1]:g}m, ' + f'{p2[2]:g}m, resistance {t.resistance:.1f} Ohms,' + startstop + f'using waveform {t.waveformID} created.') @@ -869,8 +837,7 @@ class RxArray(UserObjectMulti): p2 = self.kwargs['p2'] dl = self.kwargs['dl'] except KeyError: - logger.exception(self.params_str() + ' requires exactly 9 ' - 'parameters') + logger.exception(f'{self.params_str()} requires exactly 9 parameters') raise xs, ys, zs = uip.check_src_rx_point(p1, self.params_str(), 'lower') @@ -880,32 +847,32 @@ class RxArray(UserObjectMulti): dx, dy, dz = uip.discretise_point(dl) if xs > xf or ys > yf or zs > zf: - logger.exception(self.params_str() + ' the lower coordinates ' + logger.exception(f'{self.params_str()} the lower coordinates ' + 'should be less than the upper coordinates.') raise ValueError if dx < 0 or dy < 0 or dz < 0: - logger.exception(self.params_str() + ' the step size should not ' + logger.exception(f'{self.params_str()} the step size should not ' + 'be less than zero.') raise ValueError if dx < 1: if dx == 0: dx = 1 else: - logger.exception(self.params_str() + ' the step size should ' + logger.exception(f'{self.params_str()} the step size should ' + 'not be less than the spatial discretisation.') raise ValueError if dy < 1: if dy == 0: dy = 1 else: - logger.exception(self.params_str() + ' the step size should ' + logger.exception(f'{self.params_str()} the step size should ' + 'not be less than the spatial discretisation.') raise ValueError if dz < 1: if dz == 0: dz = 1 else: - logger.exception(self.params_str() + ' the step size should ' + logger.exception(f'{self.params_str()} the step size should ' + 'not be less than the spatial discretisation.') raise ValueError @@ -965,8 +932,7 @@ class Snapshot(UserObjectMulti): def create(self, grid, uip): if isinstance(grid, SubGridBaseGrid): - logger.exception(self.params_str() + ' do not add snapshots to ' - 'subgrids.') + logger.exception(f'{self.params_str()} do not add snapshots to subgrids.') raise ValueError try: p1 = self.kwargs['p1'] @@ -974,8 +940,7 @@ class Snapshot(UserObjectMulti): dl = self.kwargs['dl'] filename = self.kwargs['filename'] except KeyError: - logger.exception(self.params_str() + ' requires exactly 11 ' - 'parameters.') + logger.exception(f'{self.params_str()} requires exactly 11 parameters.') raise try: @@ -998,13 +963,12 @@ class Snapshot(UserObjectMulti): try: time = self.kwargs['time'] except KeyError: - logger.exception(self.params_str() + ' requires exactly 5 ' - 'parameters.') + logger.exception(f'{self.params_str()} requires exactly 5 parameters.') raise if time > 0: iterations = round_value((time / grid.dt)) + 1 else: - logger.exception(self.params_str() + ' time value must be ' + logger.exception(f'{self.params_str()} time value must be ' + 'greater than zero.') raise ValueError @@ -1036,11 +1000,11 @@ class Snapshot(UserObjectMulti): outputs = dict.fromkeys(SnapshotUser.allowableoutputs, True) if dx < 0 or dy < 0 or dz < 0: - logger.exception(self.params_str() + ' the step size should not ' + logger.exception(f'{self.params_str()} the step size should not ' + 'be less than zero.') raise ValueError if dx < 1 or dy < 1 or dz < 1: - logger.exception(self.params_str() + ' the step size should not ' + logger.exception(f'{self.params_str()} the step size should not ' + 'be less than the spatial discretisation.') raise ValueError if iterations <= 0 or iterations > grid.iterations: @@ -1085,32 +1049,31 @@ class Material(UserObjectMulti): sm = self.kwargs['sm'] material_id = self.kwargs['id'] except KeyError: - logger.exception(f'{self.params_str()} requires exactly five ' - f'parameters.') + logger.exception(f'{self.params_str()} requires exactly five parameters.') raise if er < 1: - logger.exception(f'{self.params_str()} requires a positive value of ' + logger.exception(f'{self.params_str()} requires a positive value of ' + f'one or greater for static (DC) permittivity.') raise ValueError if se != 'inf': se = float(se) if se < 0: - logger.exception(f'{self.params_str()} requires a positive ' + logger.exception(f'{self.params_str()} requires a positive ' + f'value for electric conductivity.') raise ValueError else: se = float('inf') if mr < 1: - logger.exception(f'{self.params_str()} requires a positive value of ' + logger.exception(f'{self.params_str()} requires a positive value of ' + f'one or greater for magnetic permeability.') raise ValueError if sm < 0: - logger.exception(f'{self.params_str()} requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + f'for magnetic loss.') raise ValueError if any(x.ID == material_id for x in grid.materials): - logger.exception(f'{self.params_str()} with ID {material_id} ' + logger.exception(f'{self.params_str()} with ID {material_id} ' + f'already exists') raise ValueError @@ -1159,12 +1122,11 @@ class AddDebyeDispersion(UserObjectMulti): tau = self.kwargs['tau'] material_ids = self.kwargs['material_ids'] except KeyError: - logger.exception(self.params_str() + ' requires at least four ' - 'parameters.') + logger.exception(f'{self.params_str()} requires at least four parameters.') raise if poles < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for number of poles.') raise ValueError @@ -1192,7 +1154,7 @@ class AddDebyeDispersion(UserObjectMulti): disp_material.deltaer.append(er_delta[i]) disp_material.tau.append(tau[i]) else: - logger.exception(self.params_str() + ' requires positive ' + logger.exception(f'{self.params_str()} requires positive ' + 'values for the permittivity difference.') raise ValueError if disp_material.poles > config.get_model_config().materials['maxpoles']: @@ -1234,12 +1196,11 @@ class AddLorentzDispersion(UserObjectMulti): delta = self.kwargs['delta'] material_ids = self.kwargs['material_ids'] except KeyError: - logger.exception(self.params_str() + ' requires at least five ' - 'parameters.') + logger.exception(f'{self.params_str()} requires at least five parameters.') raise if poles < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for number of poles.') raise ValueError @@ -1266,7 +1227,7 @@ class AddLorentzDispersion(UserObjectMulti): disp_material.tau.append(omega[i]) disp_material.alpha.append(delta[i]) else: - logger.exception(self.params_str() + ' requires positive ' + logger.exception(f'{self.params_str()} requires positive ' 'values for the permittivity difference ' 'and frequencies, and associated times ' 'that are greater than the time step for ' @@ -1279,9 +1240,9 @@ class AddLorentzDispersion(UserObjectMulti): grid.materials = [disp_material if mat.numID==material.numID else mat for mat in grid.materials] logger.info( - f"{self.grid_name(grid)}Lorentz disperion added to {disp_material.ID} " - f"with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, " - f"omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, " + f"{self.grid_name(grid)}Lorentz disperion added to {disp_material.ID} " + + f"with delta_eps_r={', '.join('%4.2f' % deltaer for deltaer in disp_material.deltaer)}, " + + f"omega={', '.join('%4.3e' % omega for omega in disp_material.tau)} secs, " + f"and gamma={', '.join('%4.3e' % delta for delta in disp_material.alpha)} created.") @@ -1309,12 +1270,12 @@ class AddDrudeDispersion(UserObjectMulti): alpha = self.kwargs['alpha'] material_ids = self.kwargs['material_ids'] except KeyError: - logger.exception(self.params_str() + ' requires at least four ' + logger.exception(f'{self.params_str()} requires at least four ' + 'parameters.') raise if poles < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for number of poles.') raise ValueError @@ -1340,9 +1301,9 @@ class AddDrudeDispersion(UserObjectMulti): disp_material.tau.append(omega[i]) disp_material.alpha.append(alpha[i]) else: - logger.exception(self.params_str() + ' requires positive ' - 'values for the frequencies, and ' - 'associated times that are greater than ' + logger.exception(f'{self.params_str()} requires positive ' + + 'values for the frequencies, and ' + + 'associated times that are greater than ' + 'the time step for the model.') raise ValueError if disp_material.poles > config.get_model_config().materials['maxpoles']: @@ -1388,33 +1349,33 @@ class SoilPeplinski(UserObjectMulti): water_fraction_upper = self.kwargs['water_fraction_upper'] ID = self.kwargs['id'] except KeyError: - logger.exception(self.params_str() + ' requires at exactly seven ' + logger.exception(f'{self.params_str()} requires at exactly seven ' + 'parameters.') raise if sand_fraction < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the sand fraction.') raise ValueError if clay_fraction < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the clay fraction.') raise ValueError if bulk_density < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the bulk density.') raise ValueError if sand_density < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the sand particle density.') raise ValueError if water_fraction_lower < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the lower limit of the water volumetric ' 'fraction.') raise ValueError if water_fraction_upper < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the upper limit of the water volumetric ' 'fraction.') raise ValueError @@ -1427,10 +1388,10 @@ class SoilPeplinski(UserObjectMulti): s = PeplinskiSoilUser(ID, sand_fraction, clay_fraction, bulk_density, sand_density, (water_fraction_lower, water_fraction_upper)) - logger.info(self.grid_name(grid) + 'Mixing model (Peplinski) used to ' - f'create {s.ID} with sand fraction {s.S:g}, clay fraction ' - f'{s.C:g}, bulk density {s.rb:g}g/cm3, sand particle ' - f'density {s.rs:g}g/cm3, and water volumetric fraction ' + logger.info(f'{self.grid_name(grid)}Mixing model (Peplinski) used to ' + + f'create {s.ID} with sand fraction {s.S:g}, clay fraction ' + + f'{s.C:g}, bulk density {s.rb:g}g/cm3, sand particle ' + + f'density {s.rs:g}g/cm3, and water volumetric fraction ' + f'{s.mu[0]:g} to {s.mu[1]:g} created.') grid.mixingmodels.append(s) @@ -1470,47 +1431,47 @@ class MaterialRange(UserObjectMulti): ro_upper = self.kwargs['ro_upper'] ID = self.kwargs['id'] except KeyError: - logger.exception(self.params_str() + ' requires at exactly nine ' + logger.exception(f'{self.params_str()} requires at exactly nine ' + 'parameters.') raise if er_lower < 1: - logger.exception(self.params_str() + ' requires a value greater or equal to 1 ' + logger.exception(f'{self.params_str()} requires a value greater or equal to 1 ' + 'for the lower range of relative permittivity.') raise ValueError if mr_lower < 1: - logger.exception(self.params_str() + ' requires a value greater or equal to 1 ' + logger.exception(f'{self.params_str()} requires a value greater or equal to 1 ' + 'for the lower range of relative magnetic permeability.') raise ValueError if sigma_lower < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the lower limit of conductivity.') raise ValueError if ro_lower < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the lower range magnetic loss.') raise ValueError if er_upper < 1: - logger.exception(self.params_str() + ' requires a value greater or equal to 1' + logger.exception(f'{self.params_str()} requires a value greater or equal to 1' + 'for the upper range of relative permittivity.') raise ValueError - + if mr_upper < 1: - logger.exception(self.params_str() + ' requires a value greater or equal to 1' + logger.exception(f'{self.params_str()} requires a value greater or equal to 1' + 'for the upper range of relative magnetic permeability') raise ValueError - + if sigma_upper < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the upper range of conductivity.') raise ValueError if ro_upper < 0: - logger.exception(self.params_str() + ' requires a positive value ' + logger.exception(f'{self.params_str()} requires a positive value ' + 'for the upper range of magnetic loss.') - + if any(x.ID == ID for x in grid.mixingmodels): - logger.exception(self.params_str() + f' with ID {ID} already exists') + logger.exception(f'{self.params_str()} with ID {ID} already exists') raise ValueError # Create a new instance of the Material class material @@ -1518,11 +1479,11 @@ class MaterialRange(UserObjectMulti): s = RangeMaterialUser(ID, (er_lower, er_upper), (sigma_lower, sigma_upper), (mr_lower, mr_upper), (ro_lower, ro_upper)) - logger.info(self.grid_name(grid) + 'Material properties used to ' - f'create {s.ID} with range(s) {s.er[0]:g} to {s.er[1]:g}, relative permittivity ' - f'{s.sig[0]:g} to {s.sig[1]:g}, S/m conductivity, {s.mu[0]:g} to {s.mu[1]:g} relative magnetic permeability ' + logger.info(f'{self.grid_name(grid)}Material properties used to ' + + f'create {s.ID} with range(s) {s.er[0]:g} to {s.er[1]:g}, relative permittivity ' + + f'{s.sig[0]:g} to {s.sig[1]:g}, S/m conductivity, {s.mu[0]:g} to {s.mu[1]:g} relative magnetic permeability ' + f'{s.ro[0]:g} to {s.ro[1]:g} Ohm/m magnetic loss, created') - + grid.mixingmodels.append(s) @@ -1547,21 +1508,21 @@ class MaterialList(UserObjectMulti): list_of_materials = self.kwargs['list_of_materials'] ID = self.kwargs['id'] except KeyError: - logger.exception(self.params_str() + ' requires at at least 2 ' + logger.exception(f'{self.params_str()} requires at at least 2 ' + 'parameters.') raise - + if any(x.ID == ID for x in grid.mixingmodels): - logger.exception(self.params_str() + f' with ID {ID} already exists') + logger.exception(f'{self.params_str()} with ID {ID} already exists') raise ValueError # Create a new instance of the Material class material # (start index after pec & free_space) s = ListMaterialUser(ID, list_of_materials) - logger.info(self.grid_name(grid) + 'A list of materials used to ' + logger.info(f'{self.grid_name(grid)}A list of materials used to ' + f'create {s.ID} that includes {s.mat}, created') - + grid.mixingmodels.append(s) @@ -1608,7 +1569,7 @@ class GeometryView(UserObjectMulti): output_type = self.kwargs['output_type'].lower() filename = self.kwargs['filename'] except KeyError: - logger.exception(self.params_str() + ' requires exactly eleven ' + logger.exception(f'{self.params_str()} requires exactly eleven ' + 'parameters.') raise @@ -1627,36 +1588,36 @@ class GeometryView(UserObjectMulti): dx, dy, dz = uip.discretise_static_point(dl) if dx < 0 or dy < 0 or dz < 0: - logger.exception(self.params_str() + ' the step size should not be ' + logger.exception(f'{self.params_str()} the step size should not be ' + 'less than zero.') raise ValueError if dx > grid.nx or dy > grid.ny or dz > grid.nz: - logger.exception(self.params_str() + ' the step size should be ' + logger.exception(f'{self.params_str()} the step size should be ' + 'less than the domain size.') raise ValueError if dx < 1 or dy < 1 or dz < 1: - logger.exception(self.params_str() + ' the step size should not ' + logger.exception(f'{self.params_str()} the step size should not ' + 'be less than the spatial discretisation.') raise ValueError if output_type not in ['n', 'f']: - logger.exception(self.params_str() + ' requires type to be either ' + logger.exception(f'{self.params_str()} requires type to be either ' + 'n (normal) or f (fine).') raise ValueError if output_type == 'f' and (dx * grid.dx != grid.dx or dy * grid.dy != grid.dy or dz * grid.dz != grid.dz): - logger.exception(self.params_str() + ' requires the spatial ' - 'discretisation for the geometry view to be the ' - 'same as the model for geometry view of ' + logger.exception(f'{self.params_str()} requires the spatial ' + + 'discretisation for the geometry view to be the ' + + 'same as the model for geometry view of ' + 'type f (fine)') raise ValueError g = GeometryViewUser(xs, ys, zs, xf, yf, zf, dx, dy, dz, filename, grid) - logger.info(self.grid_name(grid) + f'Geometry view from {p3[0]:g}m, ' - f'{p3[1]:g}m, {p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, ' - f'{p4[2]:g}m, discretisation {dx * grid.dx:g}m, ' - f'{dy * grid.dy:g}m, {dz * grid.dz:g}m, with filename ' + logger.info(f'{self.grid_name(grid)}Geometry view from {p3[0]:g}m, ' + + f'{p3[1]:g}m, {p3[2]:g}m, to {p4[0]:g}m, {p4[1]:g}m, ' + + f'{p4[2]:g}m, discretisation {dx * grid.dx:g}m, ' + + f'{dy * grid.dy:g}m, {dz * grid.dz:g}m, with filename ' + f'base {g.filename} created.') grid.geometryviews.append(g) @@ -1686,7 +1647,7 @@ class GeometryObjectsWrite(UserObjectMulti): p2 = self.kwargs['p2'] basefilename = self.kwargs['filename'] except KeyError: - logger.exception(self.params_str() + ' requires exactly seven ' + logger.exception(f'{self.params_str()} requires exactly seven ' + 'parameters.') raise @@ -1750,30 +1711,30 @@ class PMLCFS(UserObjectMulti): sigmamin = self.kwargs['sigmamin'] sigmamax = self.kwargs['sigmamax'] except KeyError: - logger.exception(self.params_str() + ' requires exactly twelve ' + logger.exception(f'{self.params_str()} requires exactly twelve ' + 'parameters.') raise if (alphascalingprofile not in CFSParameter.scalingprofiles.keys() or kappascalingprofile not in CFSParameter.scalingprofiles.keys() or sigmascalingprofile not in CFSParameter.scalingprofiles.keys()): - logger.exception(self.params_str() + ' must have scaling type ' + logger.exception(f'{self.params_str()} must have scaling type ' + f"{','.join(CFSParameter.scalingprofiles.keys())}") raise ValueError if (alphascalingdirection not in CFSParameter.scalingdirections or kappascalingdirection not in CFSParameter.scalingdirections or sigmascalingdirection not in CFSParameter.scalingdirections): - logger.exception(self.params_str() + ' must have scaling type ' + logger.exception(f'{self.params_str()} must have scaling type ' + f"{','.join(CFSParameter.scalingdirections)}") raise ValueError if (float(alphamin) < 0 or float(alphamax) < 0 or float(kappamin) < 0 or float(kappamax) < 0 or float(sigmamin) < 0): - logger.exception(self.params_str() + ' minimum and maximum scaling ' + logger.exception(f'{self.params_str()} minimum and maximum scaling ' + 'values must be greater than zero.') raise ValueError # TODO: Fix handling of kappa for 2nd order PMLs # if float(kappamin) < 1: - # logger.exception(self.params_str() + ' minimum scaling value for ' + # logger.exception(f'{self.params_str()} minimum scaling value for ' # 'kappa must be greater than or equal to one.') # raise ValueError @@ -1813,7 +1774,7 @@ class PMLCFS(UserObjectMulti): grid.pmls['cfs'].append(cfs) if len(grid.pmls['cfs']) > 2: - logger.exception(self.params_str() + ' can only be used up to two ' + logger.exception(f'{self.params_str()} can only be used up to two ' + 'times, for up to a 2nd order PML.') raise ValueError From a03460ca0ea399b73052688d70f862ad62df862d Mon Sep 17 00:00:00 2001 From: Sai Suraj Date: Thu, 20 Apr 2023 12:10:25 +0530 Subject: [PATCH 30/32] updated a few more similar lines of code to make them more cleaner. --- gprMax/cmds_geometry/fractal_box.py | 2 +- gprMax/updates.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gprMax/cmds_geometry/fractal_box.py b/gprMax/cmds_geometry/fractal_box.py index 2195ed3e..37306ec7 100644 --- a/gprMax/cmds_geometry/fractal_box.py +++ b/gprMax/cmds_geometry/fractal_box.py @@ -160,7 +160,7 @@ class FractalBox(UserObjectGeometry): volume.mixingmodel = mixingmodel dielectricsmoothing = 'on' if volume.averaging else 'off' - logger.info(self.grid_name(grid) + f'Fractal box {volume.ID} from ' + + logger.info(f'{self.grid_name(grid)}Fractal box {volume.ID} from ' + f'{p3[0]:g}m, {p3[1]:g}m, {p3[2]:g}m, to {p4[0]:g}m, ' + f'{p4[1]:g}m, {p4[2]:g}m with {volume.operatingonID}, ' + f'fractal dimension {volume.dimension:g}, fractal weightings ' + diff --git a/gprMax/updates.py b/gprMax/updates.py index fa063e74..8c05f560 100644 --- a/gprMax/updates.py +++ b/gprMax/updates.py @@ -884,17 +884,17 @@ class OpenCLUpdates: knl_electric_name = getattr(knl_pml_updates_electric, knl_name) knl_magnetic_name = getattr(knl_pml_updates_magnetic, knl_name) - pml.update_electric_dev = self.elwise(self.ctx, - knl_electric_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), + pml.update_electric_dev = self.elwise(self.ctx, + knl_electric_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), knl_electric_name['func'].substitute(subs), - 'pml_updates_electric_' + knl_name, + f'pml_updates_electric_{knl_name}', preamble=self.knl_common, - options=config.sim_config.devices['compiler_opts']) + options=config.sim_config.devices['compiler_opts'],) pml.update_magnetic_dev = self.elwise(self.ctx, knl_magnetic_name['args_opencl'].substitute({'REAL': config.sim_config.dtypes['C_float_or_double']}), knl_magnetic_name['func'].substitute(subs), - 'pml_updates_magnetic_' + knl_name, + f'pml_updates_magnetic_{knl_name}', preamble=self.knl_common, options=config.sim_config.devices['compiler_opts']) From bf7440e3c09249b11aaf65813c34cf611e36eab8 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 21 Apr 2023 13:19:17 +0100 Subject: [PATCH 31/32] Revert freq equals none check as not set with user waveform --- gprMax/waveforms.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/gprMax/waveforms.py b/gprMax/waveforms.py index 84c65f4e..65e52d40 100644 --- a/gprMax/waveforms.py +++ b/gprMax/waveforms.py @@ -53,8 +53,6 @@ class Waveform: """Calculates coefficients (used to calculate values) for specific waveforms. """ - if self.freq is None: - raise ValueError("Frequency is not specified") if self.type in ['gaussian', 'gaussiandot', From 19bb9ee474b421865a517387bc55f4f3aebfdb5f Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 21 Apr 2023 13:23:28 +0100 Subject: [PATCH 32/32] Removed vtk byte order as now using pyvtk --- gprMax/config.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/gprMax/config.py b/gprMax/config.py index 19564d92..162b06c8 100644 --- a/gprMax/config.py +++ b/gprMax/config.py @@ -289,7 +289,6 @@ class SimulationConfig: # Set more complex parameters self._set_precision() - self._get_byteorder() self._set_input_file_path() self._set_model_start_end() @@ -348,12 +347,6 @@ class SimulationConfig: elif self.general['solver'] == 'opencl': self.dtypes['C_complex'] = 'cdouble' - def _get_byteorder(self): - """Checks the byte order of system to use for VTK files, i.e. geometry - views and snapshots. - """ - self.vtk_byteorder = 'LittleEndian' if sys.byteorder == 'little' else 'BigEndian' - def _set_model_start_end(self): """Sets range for number of models to run (internally 0 index).""" if self.args.i: